ubuntu16.04下opencv安装专栏,问题集锦,包括GPU加速

opencv 专栏收录该内容
3 篇文章 0 订阅

参考:https://blog.csdn.net/cocoaqin/article/details/78163171

参考:https://blog.csdn.net/cocoaqin/article/details/78376382?utm_source=debugrun&utm_medium=referral

参考:https://blog.csdn.net/qq_30401249/article/details/51564871

以下是结合引用的文章,加上我所遇到的错误,将教程更加清晰化,感谢大佬的帮助。这个安装会一直维护,如果有安装遇到别的问题,欢迎留言,会更新到教程里面的。

环境:

Ubuntu 16.04

软件:

opencv :opencv-3.4.4.zip

为避免误踩坑,本教程适用于 opencv-4.0 以下版本,虽然也能成功安装 4.0 以上版本,但是可能会出现本篇文章解决不了的 找不到 opencv 头文件的问题。

安装步骤:

1、去官网下载opencv,在本教程中选用的时opencv3.4.4,其他版本的配置方法异曲同工。
下载链接http://opencv.org/releases.html,选择sources版本

为了同意后面的路径,将下载的 opencv 统一放到 ~/dev/ 目录下

然后进入目录:

# 创建文件夹的指令是(为了操作方便,统一放到这里方便跟着教程走)
# makedir ~/dev/
cd ~/dev/

2.解压下载下来的zip包(找不到是因为你没有把下载下来的包存放到~/dev/ 文件夹下)

unzip opencv-3.4.1.zip

 

3.安装依赖库和cmake ,如果提醒需要apt-get update,那就先sudo su进入root权限,再sudo apt-get update,然后在执行下面命令

# 安装cmake,可能已经安装过,请照常执行
sudo apt-get install cmake  
# 安装依赖,可能已经安装过,请照常执行
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev  

# 安装一些开发者工具:

sudo apt-get install build-essential cmake pkg-config 

# pkg-config软件包(非常有可能)已经安装在你的系统上,但为了以防万一,一定要将它包含在上面的apt-get命令中。 cmake程序用于自动配置我们的OpenCV版本。

# OpenCV是一个图像处理和计算机视觉库。 因此,OpenCV需要能够从磁盘加载各种图像文件格式,例如JPEG,PNG,TIFF等。为了从磁盘加载这些图像,OpenCV实际上调用了其他图像I / O库,它们实际上有助于加载和解码 处理。 我们在下面安装必要的:

 sudo apt-get install libjpeg8-dev libtiff5-dev libjasper-dev libpng12-dev 

# 好的,现在我们有图书馆从磁盘加载图像 - 但视频呢? 使用以下命令来安装用于处理视频流和从相机访问帧的软件包:

 sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev

 sudo apt-get install libxvidcore-dev libx264-dev 

# OpenCV通过一套非常有限的GUI工具提供开箱即用的功能。 这些GUI工具允许我们在屏幕上显示图像(cv2.imshow),等待/记录按键(cv2.waitKey),跟踪鼠标事件(cv2.setMouseCallback)以及创建简单的GUI元素,如滑块和轨迹条。 同样,你不应该期望用OpenCV构建完整的GUI应用程序 - 这些只是简单的工具,可以让你调试代码并构建非常简单的应用程序。

# 在内部,处理OpenCV GUI操作的模块的名称是highgui。 highgui模块依赖于GTK库,您应该使用以下命令安装它:

sudo apt-get install libgtk-3-dev 

# 接下来,我们安装用于优化OpenCV内部各种功能的库,例如矩阵操作:

 sudo apt-get install libatlas-base-dev gfortran 

# 我们将通过为Python 2.7和Python 3.5安装Python开发头文件和库(这两种方式)来完成第1步:

 sudo apt-get install python2.7-dev python3.5-dev 


# 还不够,再来一些吧:
sudo apt-get install gtk+-3.0

4.安装完cmake之后执行命令 ,创建编译文件夹,不创建的会提示(如:In-source builds are not allowed.)

# 目前位于目录 ~/dev/opencv-<version>/ 下
mkdir my_build_dir
cd my_build_dir

5.cmake一下

# 注意:如果已经在新的文件夹中编译,但是还会出现之前的报错,把 cmakecache.txt(位于opencv的根目录里面) 删了再编译就可。同时,有些时候可能初次执行 cmake 后改变了文件夹,提示有缓存,文件夹不对,只要删除了 cmakecache.txt 再重新 cmake 即可

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local  .. 

# 这样可能会需要太多的依赖,因此,我们再加上一些限制:
# -D WITH_VTK=OFF -D BUILD_opencv_viz=OFF


cmake
-D CMAKE_BUILD_TYPE=RELEASE \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_C_EXAMPLES=OFF \
-D OPENCV_EXTRA_MODULES_PATH= ~/Opencv_contrib-3.3.1/modules \
-D BUILD_opencv_python3=yes \
-D BUILD_EXAMPLES=ON \
-D WITH_CUDA=OFF.. `

期间可能会下载一个东西,等待一会儿就OK(如果真的直接OK说明真的运气好,反正我的显示下载的时候超时) 了么?

不必担心,超时了那就下载一个离线的进行安装吧,关于如何下载离线的进行安装,为了不影响阅读,我放到了后面(请在本页键入 ctrl+f  浏览器查找 下载超时 关键词)。

也可能出现错误,缺少东西:

vtkRenderingPythonTkWidgets,那么:

sudo apt-get install python-vtk

 

7.执行命令,漫长的编译过程,

# 这一步时间可能会比较久,我的笔记本 i5-6300h,用了大概半个小时,所以,去喝杯茶咯
sudo make -j 8

8.执行命令(用时较短)

sudo make install

9.sudo make install 执行完毕后OpenCV编译过程就结束了,接下来就需要配置一些OpenCV的编译环境首先将OpenCV的库添加到路径,从而可以让系统找到

sudo gedit /etc/ld.so.conf.d/opencv.conf

执行此命令后打开的可能是一个空白的文件,不用管,只需要在文件末尾添加

/usr/local/lib   

10.执行如下命令使得刚才的配置路径生效

sudo ldconfig  

关于这一步,我的执行没有出现问题,根据我参考的文章(在顶部)提示,出现错误解决方法可以前去链接。

https://blog.csdn.net/cocoaqin/article/details/78163171

11.配置bash

sudo gedit /etc/bash.bashrc  

 

在最末尾添加

# opencv start

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

# opencv end

 

保存,执行如下命令使得配置生效

source /etc/bash.bashrc  

 

更新

sudo updatedb  

 

12.至此所有的配置都已经完成  

 

下面用一个小程序测试一下
cd到opencv-3.4.4/samples/cpp/example_cmake目录下

cd ~/dev/opencv-3.4.4/samples/cpp/example_cmake


执行 ls 我们可以看到这个目录里官方已经给出了一个cmake的example我们可以拿来测试下
按顺序执行

# 查看目录下的文件,可略过
ls

cmake .
make
./opencv_example

即可看到打开了摄像头,在左上角有一个hello opencv。

这个可以检测你鼠标所在位置的通过摄像头获取的数据的RGB值
OK,恭喜,配置成功!

附加一条验证指令:

pkg-config --libs opencv  #opencv 依赖包lib查询

NEXT: 配置opencv的GPU加速,有时间再做

 

 

 

关键词:下载超时!

下载超时怎么办呢?

begin

1,比如下载 ippicv_2019_lnx_intel64_general_20180723.tgz

手动下载  ippicv_2019_lnx_intel64_general_20180723.tgz

参考下载地址(希望各位多多支持,整理不易):

https://download.csdn.net/download/ordream/10797348

保存路径随意,我是放在默认的下载路径~/Downloads/下载


2,修改opencv里相关配置文件

打开终端,输入

   

# 就是这个文件的路径,在这里opencv 去下载资源,我们将其获取方式改为本地文件获取
# 这里注意版本号,如果你的不是3.4.4的话请将下面的改成你相应的版本号
gedit ~/dev/opencv-3.4.4/3rdparty/ippicv/ippicv.cmake 

将47行的
 

"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/"


# 改为手动下载的文件的本地路径:

"file:~/Downloads/" #(仅供参考,根据自己的路径填写)

编辑完成保存退出。


3,重新cmake

    cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

到了下载ippicv那一步时会自动从本地下载。

 

如果成功的话,会提示:

-- 
--   Python (for build):            /usr/bin/python2.7
-- 
--   Java:                          
--     ant:                         NO
--     JNI:                         NO
--     Java wrappers:               NO
--     Java tests:                  NO
-- 
--   Install to:                    /usr/local
-- -----------------------------------------------------------------
-- 
-- Configuring done
-- Generating done
-- Build files have been written to: /home/xxx/dev/opencv-3.4.4/my_build_dir

END

 

关键词:缺少 vtkRenderingPythonTkWidgets

begin

-- The imported target "vtkRenderingPythonTkWidgets" references the file
   "/usr/lib/x86_64-linux-gnu/libvtkRenderingPythonTkWidgets.so"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/cmake/vtk-6.2/VTKTargets.cmake"
but not all the files it references.

-- The imported target "vtk" references the file
   "/usr/bin/vtk"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/cmake/vtk-6.2/VTKTargets.cmake"
but not all the files it references.


.............



# 解决:
sudo apt-get install python-vtk



end

关键词:YOLO

begin

注意:
出现错误:

/bin/sh: 1: nvcc: not found
make: *** [obj/convolutional_kernels.o] Error 127

解决方法:

# 修改makefile, 根据自己的 nvcc 路径更改
NVCC = /usr/local/cuda/bin/nvcc

end

 

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 0
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 精致技术 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值