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

相关链接:

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

opencv-3.4.1-x86编译安装

    • 环境
    • 1.安装依赖库
    • 2.OpenCV源码获取与解压
      • 2.1 获取源码
      • 2.2 工作目录准备
      • 2.3 解压
    • 3.OpenCV配置编译
      • 3.1 cmake-gui配置
      • ==3.2 cmake-gui可能会遇到的问题==
        • 3.2.1 `问题1`
      • 3.3 编译安装make /make install
      • ==3.4 make时可能遇到的问题==
        • 3.4.1 `问题2`:
        • 3.4.2 `问题3`:
    • 4. 配置环境
    • 5. 代码测试
      • 5.1 写测试代码
      • 5.2 编译
      • 5.3 虚拟机连接笔记本摄像头
      • 5.4 运行test

环境

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 .

opencv-3.4.1-x86编译安装 -- 超详细_第1张图片

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 ..

opencv-3.4.1-x86编译安装 -- 超详细_第2张图片
使用默认编译器
opencv-3.4.1-x86编译安装 -- 超详细_第3张图片
搜索 CMAKE_BUILD_TYPE=Release CMAKE_INSTALL_PREFIX=/usr/local OPENCV_EXTRA_MODULES_PATH=/opt/wkspace/opencv/opencv_contrib-3.4.1/modules
opencv-3.4.1-x86编译安装 -- 超详细_第4张图片
在这里插入图片描述
在这里插入图片描述
勾选 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 
#include 
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黑屏则改回来,总有一个驱动可以看到图像
opencv-3.4.1-x86编译安装 -- 超详细_第5张图片
连接摄像头

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

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

5.4 运行test

#./test

opencv-3.4.1-x86编译安装 -- 超详细_第7张图片

你可能感兴趣的:(opencv,opencv,linux,ubuntu)