使用OpenCV c++模块扩展python

Extending python with a OpenCV C++ module

本文关键字:扩展 python 模块 c++ OpenCV 使用      更新时间:2023-10-16

我一直在尝试用c++编写的OpenCV模块扩展python。在此过程中,我遇到了两个问题。

1) Setup.py -如何在这里包含cv.h库?

libraries = ['opencv'],
library_dirs = ['/usr/local/lib'],

2)导入c++模块文件中的cv.h ?

#include "cv.h"
using namespace cv;

抛出编译时错误-t1.cpp:3:16: fatal error: cv.h: No such file or directory

让它工作

1)在Setup.py

include_dirs = ['/usr/local/include'],
libraries = ['opencv_core', 'opencv_highgui'],
library_dirs = ['/usr/local/lib'],

2) C++ module

#include <opencv/cv.h>

#include <opencv/highgui.h>

The C++ header file is #include <opencv2/opencv.hpp>, if you have /usr/local/include on your header path. So what you should be doing is -

#include <opencv2/opencv.hpp>
using namespace cv;
至于包括OpenCV库进行链接,您应该查看/usr/local/lib/libopencv*中的库。有几个OpenCV库,每个库对应一个包,所以如果你不使用那个包,你可能不需要链接所有的库。

就我个人而言,我会通过将您的模块与libopencv.a静态链接并将整个模块链接到Python来工作。如果您担心额外的代码被链接,您可以去掉未使用的符号。