Linux16.04配置OpenCV3.2

5 篇文章 0 订阅

OpenCV-- 一个完全开源的图像处理库,通常用于图像处理,包涵了“模糊" “特征提取” “边缘检测” "目标跟踪"等多个CV领域的基础问题。它是基于C++语言来实现的,具有C++、C、Python和Java的接口,并且支持Windows, Linux, Mac, OS, iOS和Android。即具有很好的平台兼容性。OpenCV专为计算效率而设计,并强调实时应用。 以优化的C / C ++编写,该库可以利用多核处理。 通过启用OpenCL,可以对底层硬件进行加速。

使用OpenCV的用户已经超过4.7万人,下载量超过1400万。 用途从互动艺术,到矿山检查,网上缝合地图或通过先进的机器人。

配置OpenCV的目的?

  1. 你的C++代码里面需要进行一定的图像或者视频操作;
  2. 别人的代码里面调用到了OpenCV内部的一些函数。你需要运行别人的代码,来观察最后的结果;
  3. 你的"数据挖掘" “机器学习” "深度学习"等应用中需要调用Opencv中的函数,来加速你的开发进程;
    总之,如果你本人的研究领域是CV领域,那么你可能就需要使用到OpenCV。

下面开始我们的配置过程吧。
1.首先,你需要去OpenCV的官网中下载最新版本的OpenCV安装包。下载链接
2.你需要将下载到的压缩包解压到特定的文件夹下面。
tar -zxvf xxx.tar

3. 接下来,你需要安装一些依赖包,这是个漫长的过程,需要你耐心的去等待。
1) sudo apt-get install libopencv-dev build-essential cmake git libgtk2.0-dev pkg-config python-dev python-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev libqt4-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip
2) sudo apt-get install build-essential cmake git
3) sudo apt-get install ffmpeg libopencv-dev libgtk-3-dev python-numpy python3-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libv4l-dev libtbb-dev qtbase5-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip

这个过程很麻烦,可能与你的网速息息相关,因此建议你选择一个高速的网络。在这里给大家介绍一个Linux中的小技巧。即选择一个高速的安装源。具体的方法如下所示:
方案一:
1)在Linux的界面下点击左下角的“system setting",如下图所示。

点击设置后的界面

2)选择“Software&Update”,如下图所示:
点击Software&Update结果

3)选择“DownLoad from”,如下图所示:
点击DownLoad from结果

4)点击最下方的“others”;
5)在“china”中选择“mirrors.tuna.tsinghua.edu.cn”;
6)点击右下方的“Choose Server”;
7)输入你的密钥;
8)选择“close”
9)选择“Reload”
到此就结束了,最后一步可能会花费一定的时间,希望你能耐心等待。我们选择的源是“清华的”,经过测试验证在国内这个源比较快,你可以可以尝试使用其他的下载源,方法如上所述。

方案二:
你可以将所有的依赖项添加到一个.sh文件中,只需要执行一个shell文件就可以安装所有的安装包,这也是一个不错的选择。
4. cd xxx/opencv    #切换到Opencv下(路径就是你解压的路径,去官网下载最新版的opencv并进行解压)
注:你可以使用 whereis opencv来查找你的opencv路径,默认路径为/usr/local中。
5. mkdir build  #新建一个build文件夹,编译的工程都在这个文件夹里
6. cd build/    
7. cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D WITH_V4L=ON -D WITH_QT=ON -D INSTALL_C_EXAMPLES=ON -D
INSTALL_PYTHON_EXAMPLES=ON -D WITH_OPENGL=ON ..
# 利用cmake来编译整个工程,这一步在编译源码中经常会看到。
注:
1)CMAKE_INSTALL_PREFIX用来指定安装的位置。INSTALL_C_EXAMPLES用来安装官方的opencv(C样例)。INSTALL_PYTHON_EXAMPLES安装python样例。这些样例可以用于后面的测试。
2)这个阶段需要花费一定的时间。
3)如果cmake成功,会出现下面的输出结果。
-- Generating done
-- Build files have been written to: /home/ise/software/opencv-3.2.0/build

Cmake结果

8. sudo make -j8   # make编译
注:
1)其中-j表示本机的内核数,可以加快执行,如果你CPU是四核的,你需要使用 -j4
2)这个过程会花费相当长的一段时间,你需要耐心的等待,建议你去干别的事情,因为它需要花费半小时左右。
9. sudo make install             # make安装
10. sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'   # 进行一些配置
11. sudo ldconfig                # 使配置生效
12. sudo gedit /etc/bash.bashrc  
13. 在文件的末尾添加PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH  
14. sudo source /etc/bash.bashrc  # 使配置生效

make过程

make install过程

15. 重启系统后cd到build文件夹下
16. sudo apt-get install checkinstall    # 安装checkinstall工具,用来管理安装的文件,便于卸载
17. sudo checkinstall   # 执行checkinstall
18. 按照提示就行操作即可。

注:
1)使用checkinstall的目的是为了更好的管理我安装的opencv,因为opencv的安装很麻烦,卸载更麻烦,其安装的时候修改了一大堆的文件,当我想使用别的版本的opencv时,将当前版本的opencv卸载就是一件头疼的事情,因此需要使用checkinstall来管理我的安装。
执行了checkinstall后,会在build文件下生成一个以backup开头的.tgz的备份文件和一个以build开头的.deb安装文件,当你想卸载当前的opencv时,直接执行dpkg -r build即可。
2)这几步可以不执行,它只是为了更好的管理opencv,方便卸载。
19. 验证opencv是否正确安装,这一步非常关键,有很多人会直接忽视掉这个过程,直接跑别人的代码,代码一直报错,却找不到问题,最后发现是自己的opencv没有配置好,这就有些尴尬啦。
方案一:测试自己写的一个小案例 -- 利用opencv来读取lena图片
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;

int main()
{
	Mat srcImage = imread("lena.jpg");
	imshow("srcIMage",srcImage);

	waitKey(0);

	return 0;
}

1)执行g++ `pkg-config opencv --cflags` opencv.cpp  -o opencv `pkg-config opencv --libs`   
2)./opencv  # 运行结果

注:你需要保证lena.jpg位于当前目录下。
输出的结果如下所示:

lena图片

方案二:测试opencv自带的样例
1)cd ~/opencv/samples/c    # 切换到opencv的样例文件夹
2)chmod +x build_all.sh    # 改变文件的权限
3)./build_all.sh           # 编译所有的示例代码
4)运行人脸检测代码
./facedetect --cascade="/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml" --scale=1.5 lena.jpg
结果如下所示:

人脸检测结果

./facedetect --cascade="/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml" --nested-cascade="/usr/local/share/OpenCV/haarcascades/haarcascade_eye.xml" --scale=1.5 lena.jpg
运行结果如下所示:

人脸检测结果

~/opencv-2.4.9/build/bin/cpp-example-grabcut ~/opencv-2.4.9/samples/cpp/lena.jpg
运行结果如下所示:

边框检测结果

注:
1)这里面有很多有趣的样例,你可以进行测试。它们可能需要配置一些参数,你可以查看“readme.txt”文件来了解详情。
2)lena.jpg原始图像如下所示:
lena原图

3)建议你安装最新版本的opencv库,因为新版本会改进一些Bug的同时增加一些新的函数和功能。由于opencv的版本更新速率很快,这个博客很快就是过时,但是不同版本的安装流程基本相同,你仍然可以使用这个教程进行安装。
4)在编译cmake和make的过程中,可能会出现一些错误,如果你解决了相关问题,希望你能够共享,我将加入这个博客中。
5)如果您对本博客有任何问题,可以给我留言,我会在第一时间进行恢复大家,一起学习,一起进步。
6)由于个人能力有限,难免会有一些问题,还望大家多多包涵。
7)本博客是我自己的原创,如果想要转载,需要与我取得联系,我会尽快回复大家。
邮箱:1575262785@qq.com
8) 如果您对AI、自动驾驶、AR、ChatGPT等技术感兴趣,欢迎关注我的微信公众号“AI产品汇”,有问题可以在公众号中私聊我!

  • 13
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值