opencv-3.4.1-x86编译安装 -- 超详细

相关链接:

opencv-3.4.1-arm编译安装 – 超详细

环境

ubuntu:16.04
gcc:5.4.0
opencv源码:opencv-3.4.1
opencv扩展包:opencv-3.4.1_contrib-3.4.1
cmake+cmake-gui

1.安装依赖库

安装编译工具

#apt-get install build-essential

安装依赖包

#apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
#apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libtiff-dev libjasper-dev libdc1394-22-dev 

2.OpenCV源码获取与解压

2.1 获取源码

官网处获取源码:速度比较慢,没梯可能不好办。
https://github.com/opencv
在这里插入图片描述
选择对应版本,下载下来
也可以下载我下载好的,5积分(放的时候是5):
https://download.csdn.net/download/qq_44503344/12666252

2.2 工作目录准备

#mkdir /opt/wkspace/opencv
#cd /opt/wkspace/opencv
#cp ?/opencv-3.4.1zip .
#cp ?/opencv_contrib-3.4.1.zip .

在这里插入图片描述

2.3 解压

# unzip opencv-3.4.1.zip 
# unzip opencv_contrib-3.4.1.zi
# cd opencv-3.4.1
# mkdir build
# cd build

在这里插入图片描述

3.OpenCV配置编译

3.1 cmake-gui配置

# cd /opt/wkspace/opencv/opencv-3.4.1/build
# cmake-gui ..

在这里插入图片描述
使用默认编译器
在这里插入图片描述
搜索 CMAKE_BUILD_TYPE=Release CMAKE_INSTALL_PREFIX=/usr/local OPENCV_EXTRA_MODULES_PATH=/opt/wkspace/opencv/opencv_contrib-3.4.1/modules
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
勾选 jpeg和png库
在这里插入图片描述

点击configure,结束后点generate

3.2 cmake-gui可能会遇到的问题

3.2.1 问题1

到tiny-dnn:Download: v1.0.0a3.tar.gz 处停止
原因:无法连接到该网络,下载这个包
解决方法https://blog.csdn.net/qq_39936818/article/details/104951448
1)下载tiny-dnn-1.0.0a3.tar.gz
csdn上找的一个包
2)通过samba放到共享目录/share,并重命名:
在这里插入图片描述
3)配置${opencv_contrib_folder}/modules/dnn_modern/CMakeLists.txt,第23行
在这里插入图片描述
改成:
在这里插入图片描述
重新cmake解决问题;

3.3 编译安装make /make install

3.4 make时可能遇到的问题

3.4.1 问题2:

/opt/wkspace/opencv/opencv_contrib-3.4.1/modules/xfeatures2d/src/vgg.cpp:490:41 fatal error: vgg_generated_120.i: No such file or directory
还有很多类似的xxx.i,都是同个问题
原因:同样是无法连接到该网络,下载这个包
解决方法https://blog.csdn.net/jiaken2660/article/details/104132060
下载文件后缀该为.tar.gz解压后为:
在这里插入图片描述
移动到
在这里插入图片描述
重新make解决

3.4.2 问题3:

/opt/wkspace/opencv/opencv-3.4.1/modules/stitching/include/opencv2/stitching/detail/matchers.hpp:52:42: fatal error: opencv2/xfeatures2d/cuda.hpp: No such file or directory
同样也有一些类似的找不到头文件问题,都同个解决方法
原因:扩展包的include没在gcc编译这个文件时的头文件路径上
解决方法:将对应文件的include处更改为绝对路径在这里插入图片描述
改为:
在这里插入图片描述
重新make解决

4. 配置环境

将opencv库加入到系统路径中,从而让系统可以找到

#vim /etc/ld.so.conf/opencv.conf

可能没有该文件,直接创建就行
在末尾处加入

/usr/local/lib

更新ld

#ldconfig
# vim /etc/bash.bashrc

在末尾处添加

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

执行:

#source /etc/bash.bashrc

更新:

#updatedb 

5. 代码测试

5.1 写测试代码

#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
int main() {

	VideoCapture cap(0);
	Mat frame;
	while (1) {
		cap >> frame;
		imshow("内置摄像头", frame);
		if (waitKey(30) == 27)break;
	}
	return 0;
}

打开摄像头循环获取图像。

5.2 编译

# g++ test.cpp -o test `pkg-config --cflags --libs opencv`

5.3 虚拟机连接笔记本摄像头

VM设置中USB2.0改为3.0
如果执行cheese黑屏则改回来,总有一个驱动可以看到图像
在这里插入图片描述
连接摄像头

灰色表示连接在主机中
绿灯表示连接到虚拟机但还未工作,
蓝灯表示正在使用

在这里插入图片描述
已连接如下:
在这里插入图片描述
此时/dev目录下出现video0:
在这里插入图片描述
cheese激活摄像头
印象中笔记本内置摄像头好像要用cheese工具来激活,如果不是那也可以当作测试摄像头下,如果没有这个工具则#apt-get install cheese下
在这里插入图片描述
连接正常

5.4 运行test

#./test

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值