由于项目需要,需要卸载opencv3 重装opencv4,费了写时间,现就ubunut下,关于opencv的安装,卸载,以及qt 、eclipse工程配置做总结
2.1 opencv 安装包一般包含opencv 和 另一个主要是第三方包
编译 并 安装 opencv 找到build目录, 如果没有,就建一个。 具体安装过程,有很多介绍。比如请参考https://blog.csdn.net/yue_tj/article/details/78522397 https://blog.csdn.net/qq_36486890/article/details/97511295
ps: 只是注意 在编译opencv 过程中, opencv_contrib的路径。
配置opencv
1 配置opencv.conf (opencv4 一般为opencv4.conf ) 在 sudo gedit /etc/ld.so.conf.d/opencv.conf 文件在文末添加
/usr/local/libsudo ldconfig配置环境变量 export PATH=$PATH:/usr/local/include/opencv4 export LD_LIBRARY_PATH=/usr/local/lib PKG路径 PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig export PKG_CONFIG_PATH**
opencv 卸载
** 执行
rm -rf /usr/local/include/opencv2删除以下文件
/usr/local/include/opencv /usr/include/opencv /usr/include/opencv2 /usr/local/share/opencv /usr/local/share/OpenCV /usr/share/opencv /usr/share/OpenCV /usr/local/bin/opencv* /usr/local/lib/libopencv*其他可以再百度以下
qt 配置
.pro文件中添加
QT -= gui CONFIG += c++11 console CONFIG -= app_bundle TEMPLATE = app//如果 opencv3, 有 opencv 和opencv2 两文件夹:
INCLUDEPATH += /usr/local/include \ /usr/local/include/opencv4/opencv \ /usr/local/include/opencv4/opencv2如果opencv4 则在opencv4 文件夹下只有opencv2文件夹:
INCLUDEPATH += /usr/local/include/opencv4ps: #opencv4 安装后只有一个文件夹
qt 工程测试
#include <QCoreApplication> #include "opencv2/core.hpp" #include "opencv2/imgproc.hpp" #include "opencv2/highgui.hpp" #include "opencv2/videoio.hpp" #include <iostream> using namespace cv; using namespace std; int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); cout << "Built with OpenCV " << CV_VERSION << endl; Mat image; VideoCapture capture; bool isOpen = capture.open("/dev/video0"); capture.release(); isOpen = capture.open("/dev/video0"); if(isOpen) { cout << "Capture is opened" << endl; for(;;) { capture >> image; if(image.empty()) break; imshow("Sample", image); if(waitKey(27) >= 0) break; } } else { cout << "No capture" << endl; } return a.exec(); }运行
eclipse 配置
新建 C++ 工程选择project->properties,在“C/C++ Build->Settings”里的“GCC C++ Compiler”和“GCC C Compiler”里的include 中添加头文件路径, 这个路径很重要,错了后,容易找不到 头文件,比如: #include "opencv2/core.hpp" #include "opencv2/imgproc.hpp" #include "opencv2/highgui.hpp" #include "opencv2/videoio.hpp"总是报 no such file … 。 那么 这里该填什么呢? 答: 填上 终端中,用 pkg-config opencv/ opencv4 --cflags 显示的路径。
比如:: 添加opencv库路径: 同理:
ps: 注意上图中,下半部分,库的路径。和–libs配置也有关系哟。
还有一处:在GCC c compliler 中的miscellaneous 中添加: -std=c++11 注意与前面内容 空格隔开
1 opencv 重要的头文件 找不到 , no such file 一般是include 路径配置, lib路径配置不对
2 没有语法错误, 但makefile 报错
makefile中, “@echo ‘Building target: $@’” 报错。
原因: GCC C++ Linker 的Libraries(-l)中的库名称与实际不符,按照 `
pkg-config opencv4 --libs`显示内容,添加就没有报以上问题了。 推测更库的顺序无关。
3 编译通过,没有任何报错,就是没有可执行文件产生 原因: 应该是版本配置不对应引起。 我遇到的现象就是安装opencv3后 opencv4配置的工程就无法产生可执行文件了。具体原希望高手指点。
原创不易,本文参考了以下文章,感谢其作者: https://www.cnblogs.com/eczhou/p/7860598.html https://blog.csdn.net/zhuiqiuk/article/details/77096074 https://www.cnblogs.com/herd/p/10593437.html https://blog.csdn.net/haoqimao_hard/article/details/82049565 https://blog.csdn.net/wanzhen4330/article/details/82622664