我一直在尝试使用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
答案 0 :(得分:1)
让它工作
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/cv.h>
答案 1 :(得分:0)
如果标头路径上有#include <opencv2/opencv.hpp>
,则C ++标头文件为/usr/local/include
。所以你应该做的是 -
#include <opencv2/opencv.hpp>
using namespace cv;
至于包含用于链接的OpenCV libarries,您应该查看/usr/local/lib/libopencv*
中的库。有几个OpenCV库,每个库对应一个包,因此如果您不使用该包,则可能不需要链接所有库。
就个人而言,我会通过静态链接您的模块与libopencv.a
并将整个模块链接到Python来工作。如果您对链接的额外代码感到困扰,可以删除未使用的符号。