Deepin 15.9.2下安装Opencv 4.0.1

**

Deepin 15.9.2下安装Opencv 4.0.1

**

前言

之前做毕业设计,一直用的版本是Opencv 3.4.1,但做到了图像识别这一部分,由于模板匹配不太好用,就打算用Opencv调用tensorflow预训练模型,跟着网上教程走,但老是报错,而且问题解决不了,抱着试试看的想法,拿到同学Opencv4 .0.0下,pb文件运行良好;无奈,转投最新版。

正文

一.下载Opencv4.0.1

百度搜索Opencv,到官网下载最新版4.0.1(附链接官网下载);
Deepin 15.9.2下安装Opencv 4.0.1_第1张图片
点击Sources下载就可以,有86.9MB;

二.编译源码

1.opencv 4.0.1

方法一:下载源码包解压到用户目录下后,新建一个build目录;
方法二:当然也可以调用终端,使用命令:

 mkdir build
 cd build

Deepin 15.9.2下安装Opencv 4.0.1_第2张图片

如果要安装第三方库contrib, 则下载同版本的 https://github.com/opencv/opencv_contrib/releases
解压到opencv目录备用;

注意:后面的命令都在该build目录下进行   (在终端输入)

2.配置make:

安装前如果没装g++的,还需要执行:

sudo apt-get install build-essential

为了清楚安装过程,用cmake-gui图形界面代替cmake
安装: sudo apt-get install cmake-qt-gui
执行: cmake-gui

记得配置安装路径

下图是我第一次安装时遇到的问题(路径错误),会的直接跳过

Deepin 15.9.2下安装Opencv 4.0.1_第3张图片

正确路径:
Deepin 15.9.2下安装Opencv 4.0.1_第4张图片
修改正确后

点击“configure"按钮,会自动生成一系列条目,如果有问题,部分显示红色

勾选一些条目, 如gtk2,sse4,ipp, tbb, eigen等优化库, 为了速度,设置release版本
opencv4.0.1 默认就是c++11,不用勾选

注意:不要随便勾选一些你不知道的东西,不然很有可能后面generate生成的时候会到17%-18%卡住,然后生成不了(血的教训,浪费了很多时间)

比如像下图这样卡住
Deepin 15.9.2下安装Opencv 4.0.1_第5张图片

如果要安装contrib,则在OPENCV_EXTRA_MODULES_PATH条目上键入刚才备用的contrib下的module目录

确认没有问题后, 再次点击"configure"按钮, 确保没有红色出现!

再次检查生成的配置文件有无问题, 没有就点击"generate"按钮

大概会花20-30分钟才能生成完,请耐心等待~

3.编译:

在刚才的build空空的目录下发现已经"generate"生成一堆文件了,执行 :

   make -j4

其中-j4表示4核cpu最佳(我的电脑是4核的), 如果你 cpu是8核的就 j8等等。

几十分钟后,就编译好了
因g++高度多核优化,-j4 比 -j 编译速度快3倍多!核越多,速度越快~

4.安装:

在刚才的build目录里,生成的文件更多了,安装即将完成,执行:

sudo make install

一阵等待后,终于安装好了。

三.测试

C++的例子
c++的例子在~/opencv-4.0.1/samples/cpp下,

方法一:cmake编译模式:

进入其中目录 example_cmake下例子,

 mkdir build
 cd build
 cmake ..
  make

这时应该生成了可运行文件  example_cmake

Deepin 15.9.2下安装Opencv 4.0.1_第6张图片
正常运行效果图:
Deepin 15.9.2下安装Opencv 4.0.1_第7张图片

方法二:用g++ 直接编译

      g++ -std=c++11 xxx.cpp -o xxx   `pkg-config --cflags --libs  opencv`

opencv 4.0.1会出现pkg-config错误:cant find opencv.pc

解决方法:
需要在 /usr/local/lib/pkgconfig目录(没有就自己新建一个)下放一个opencv.pc的文件;
Deepin 15.9.2下安装Opencv 4.0.1_第8张图片
注意:要以管理员的身份打开文件夹,不然没法对文件进行添加,更改,删除之类的;上图左边文件夹有小锁就不能更改,以管理员身份打开就像右图就可以;新建一个文本文档,把文档的名字和后缀改成opencv.pc就可以;
(我的4.0.1版本的opencv.pc内容如下):

# Package Information for pkg-config

prefix=/usr/local
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir_old=${prefix}/include/opencv4
includedir_new=${prefix}/include

Name: OpenCV
Description: Open Source Computer Vision Library
Version: 4.0.1   
Libs: -L${exec_prefix}/ib -lopencv_dnn -lopencv_ml -lopencv_objdetect -lopencv_stitching  -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_imgproc -lopencv_flann -lopencv_core
Libs.private: -ldl -lm -lpthread -lrt
Cflags: -I${includedir_old} -I${includedir_new}

修改保存opencv.pc后 执行:

pkg-config --cflags --libs  opencv

确保能正确运行

可能出现的问题:

a.如下图出现了一些乱码,问号

Deepin 15.9.2下安装Opencv 4.0.1_第9张图片
解决方法:检查opencv.pc文件,里面多了许多空格键,删除即可;(这个问题找了好久才发现如何解决)

b.执行xxx.cpp文件的时候,出现

Deepin 15.9.2下安装Opencv 4.0.1_第10张图片

解决办法:
找到系统盘里/usr/local/include文件夹,把opencv4文件夹里面的东西拷贝出来放在include文件夹里就行;

Deepin 15.9.2下安装Opencv 4.0.1_第11张图片
再次编译,问题就解决了

Tips: 如果嫌弃g++编译指令太繁琐,可以用alias简化它,具体怎么操作请自行百度,网上都说的很详细,我就不赘述了~

		可以看到我做的opencv代替了 g++ 'pkg-config opencv --libs --cflags'语句,精练了不少

Deepin 15.9.2下安装Opencv 4.0.1_第12张图片

参考文章:http://blog.sina.com.cn/s/blog_57de6bc30102x9v7.html (老师博客)

如果你觉得文章对你有一丢丢用的话,1块钱支持一下啦~
1块钱,买不了上当,更买不了吃亏~

Deepin 15.9.2下安装Opencv 4.0.1_第13张图片Deepin 15.9.2下安装Opencv 4.0.1_第14张图片

你可能感兴趣的:(Deepin 15.9.2下安装Opencv 4.0.1)