ubuntu opencv 安装编译问题

来源:互联网 发布:sql select 多表查询 编辑:程序博客网 时间:2024/06/05 00:56

opencv下载地址
opencv_contrib下载

我的版本3.1.0

1.sudo apt-get install pkg-config libgtk2.0-dev
#opencv运行时需要的库
2. 解压
3. cd opencv
4. mkdir build
5. cd build
6. cmake -DWITH_IPP=ON -DINSTALL_CREATE_DISTRIB=ON .. && make -j $(nproc)
#直接用cmake会出现/usr/bin/ld: cannot find -lippicv的错误(fixes #5852)
或者 (需要下载opencv_contrib,参数可修改)
cmake -D CMAKE_BUILD_TYPE=RELEASE -D WITH_IPP=ON -DINSTALL_CREATE_DISTRIB=ON -D BUILD_PYTHON_SUPPORT=ON -D WITH_XINE=ON -D WITH_OPENGL=ON -D WITH_TBB=ON -D BUILD_EXAMPLES=OFF -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D OPENCV_EXTRA_MODULES_PATH=[path of opencv_contrib-3.1.0]/modules .. &&make -j$(nproc)
7. sudo make install

#include <opencv/cv.h>#include <opencv/highgui.h>using namespace cv;int main() {    IplImage* img = cvLoadImage( "your_path.jpeg" );    cvNamedWindow( "Example1", CV_WINDOW_AUTOSIZE );    cvShowImage( "Example1", img );    cvWaitKey(0);    cvReleaseImage( &img );    cvDestroyWindow( "Example1" );    return 0;}

编译代码 : g++ your_file -o your_app ‘pkg-config opencv --cflags --libs

其他错误:
undefine reference to xxx 未链接到库,一般直接编译(如: g++ your_file -o your_app)会报错,需要加-lopencv-core等参数(可以通过pkg-config opencv –cflags –libs命令查看)参考这里

运行时(./your_app)报错,需要安装运行时提示的某些包(如上gtk之类的)重新编译才能正确运行参考这里

关于opencv python

cmake 时出现警告:variable not used by this project:
BUILD_NEW_PYTHON_SUPPORT
BUILD_PYTHON_SUPPORT
这样即使编译了,也不会产生cv2.so,也不知道为什么没法使用编译成python的调用。这里有一个技巧,就是进入opencv/build/modules/python2执行make -j4,然后会生成cv2.so,然后sudo make install。
但是调用import cv2会报错ImportError: libopencv_core.so-xxx , cannot open shared object file: No such file or directory。
这里再到opencv/build执行sudo make install , opencv 会重新编译并产生依赖库,然后调用import cv2就没有问题了。或者进入终端在opencv/build/lib 路径下运行python 并且import cv2也没有问题。

吐槽下:opencv编译安装问题真的是太多了,祝你好运~

0 0