1

我一直在尝试使用用 C++ 编写的 OpenCV 模块来扩展 python。在此期间我遇到了 2 个问题。

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

4

2 回答 2

3

让它工作

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>

于 2013-06-08T13:00:05.457 回答
1

C++ 头文件是#include <opencv2/opencv.hpp>,如果您/usr/local/include在头文件路径中有。所以你应该做的是——

#include <opencv2/opencv.hpp>
using namespace cv;

至于包含用于链接的 OpenCV 库,您应该查看/usr/local/lib/libopencv*. 有几个 OpenCV 库,每个库对应一个包,因此如果您不使用该包,则可能不需要链接所有库。

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

于 2013-06-08T11:00:15.240 回答