Ubuntu17.04下安装OpenCV3.2.0

Ubuntu17.04下安装OpenCV3.2.0

安装官方给出的依赖包

1. sudo apt-get install build-essential

2. sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

3. sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev # 处理图像所需的包

##报错 libtiffs-dev 而非libtiff-dev

无法定位软件包:libjasper-dev    解决办法只能删除这个包

修改为:sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev  libjpeg-dev libpng-dev libtiff5-dev  libdc1394-22-dev

 

4.  sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev

5. sudo apt-get install libxvidcore-dev libx264-dev # 处理视频所需的包

6. sudo apt-get install libatlas-base-dev gfortran # 优化opencv功能

7. sudo apt-get install ffmpeg

 

下载opencv3.2.0

8. wget https://github.com/opencv/opencv/archive/3.2.0.zip # github上直接下载或者clone也可

Gitcolne代码:git clone [email protected]:opencv/opencv.git

9. wget https://github.com/opencv/opencv_contrib/archive/3.2.0.zip(这种方式下载是3.2版本)

下载完成后解压即可

Gitclone代码:git clone [email protected]:opencv/opencv_contrib.git

gitclone下载是最新版本,不一定是3.2

所以上面两种的下载方式一定要相同,否则可能会报出很多你意想不到的错误。

配置编译opencv (NVIDIA CUDA版本)

10. cmake -D CMAKE_BUILD_TYPE=RELEASE

 -D CMAKE_INSTALL_PREFIX=/usr 

-D INSTALL_PYTHON_EXAMPLES=ON 

-D INSTALL_C_EXAMPLES=OFF 

-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.2.0/modules 

-D PYTHON_EXCUTABLE=/usr/bin/python2.7 

-D WITH_TBB=ON 

-D WITH_V4L=ON 

-D WITH_QT=ON 

-D WITH_GTK=ON 

-D WITH_OPENGL=ON 

-DBUILD_EXAMPLES=ON ..

 

注意中间均是只有一个空格,最后有两个点。。

CMAKE_INSTALL_PREFIX:安装的python目录前缀,其实就是指定了python模块的安装路径:CMAKE_INSTALL_PREFIX/lib/python2.7/dist-packages。获取该路径的方式可以用python -c "import sys; print sys.prefix"

PYTHON_EXCUTABLE:指定python路径

OPENCV_EXTRA_MODULES_PATH: 指定opencv所需模块的路径,就是之前我们所说的contrib

报错:

CMake Error: Could not find CMAKE_ROOT !!!

CMake has most likely not been installed correctly. 

Modules directory not found in /usr/bin 

 

解决办法:网上搜的大部分是重装cmake

方式一:

    (1) 步 : sudo apt-get remove cmake cmake-data 卸载 cmake-data包的东西一起删掉

    (2):sudo -E add-apt-repository -y ppa:george-edison55/cmake-3.x

    (3)步:sudo -E apt-get update

(4)步:sudo apt-get install cmake

方式二:

aptitude purge cmake

aptitude install cmake

以上两种方式都不起作用

方法三:另外一种方式,加入环境变量

Sudo vim /etc/profile

export CMAKE_ROOT=/usr/local/bin  加入文件

Soruce /etc/profile  更新文件

也不成功;

最后我发现build文件夹下,有两个文件,make -D,这可能是之前错误生成的两个文件,于是我删除build文件下,重新进行了cmke 发现成功了,所以也不知是上面哪中方式起了作用。

但是又报了不一样的错误:

qmake: could not exec '/usr/lib/x86_64-linux-gnu/qt4/bin/qmake': No such file or directory

CMake Error at /usr/share/cmake-3.7/Modules/FindQt4.cmake:1318 (message):

  Found unsuitable Qt version "" from NOTFOUND, this code requires Qt 4.x

Call Stack (most recent call first):

  cmake/OpenCVFindLibsGUI.cmake:34 (find_package)

原因:没有安装qmake

解决办法:

sudo apt-get install cmake qt5-default qtcreator

 

结果又发生错误:

CMake Error at /home/king/opencv-3.2.0/cmake/OpenCVDownload.cmake:56 (message):

  ERROR: ocv_download() unsupported arguments:

  PACKAGE;vgg_generated_48.i;HASH;e8d0dcd54d1bcfdc29203d011a797179;URL;https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/;DESTINATION_DIR;/home/king/opencv_contrib-3.2.0/modules/xfeatures2d/cmake/../src;DOWNLOAD_DIR;/home/king/opencv_contrib-3.2.0/modules/xfeatures2d/cmake/.download

Call Stack (most recent call first):

  /home/king/opencv_contrib-3.2.0/modules/xfeatures2d/cmake/download_vgg.cmake:13 (ocv_download)

  /home/king/opencv_contrib-3.2.0/modules/xfeatures2d/cmake/download_vgg.cmake:20 (vgg_download)

  /home/king/opencv_contrib-3.2.0/modules/xfeatures2d/CMakeLists.txt:4 (include)

 

 

解决办法:无

查了很多资料,用了很多办法都没有解决,

1.比如将报错的make文件中,fileName改为PACKAGE 

 对应博客: http://blog.csdn.net/qsy2000/article/details/70158537

2.比如,自己下载vgg_generated_48.i,保存在相应目录文件下。

对应博客地址:

http://blog.csdn.net/u013832707/article/details/73614798

https://www.cnblogs.com/zjutzz/p/6714490.html

 

问题解决:

这个问题真的整的我头大,最后实在没辙,(快要放弃,此时已经花费了很长时间了)我又想是不是我opencv_contrib的版本问题,因为我之前下载opencvopen_contrib采取了两种方式,前者是gitclone 后者是链接直接下载解压。不管有没有用这都是我最后的尝试了。然后我把build文件夹删除,opencv_contrib也删除,重新用gitclone的下载方式,然后我又重新进行build文件,因为之前看有人用release文件名而不用build文件名,我就安装步骤重新创建了releasebuild)文件夹,重新进行camke操作,这时候终于成功了!!!太不容易了。

总结:

就是遇到这种编译的问题,碰到问题采用任何一种方法解决后,都要重新进行编译,就是从头开始编译,不要懒省流程,这样反而会损失更多时间。

回顾:

执行测试时,我的版本是3.3.1 不是3.2 ,我可能明白了问题的关键所在,有可能我上面遇到的问题都是由opencvopencv_contrib 版本不一致引起的,下次一定要更仔细才行。

11. make -j4 #4是自己电脑核数

12. sudo make install  #安装

13. sudo /bin/bash -c 'echo "/usr/lib" > /etc/ld.so.conf.d/opencv.conf'

14. sudo ldconfig

 

完成安装并测试

安装完成以后,重启下机器。编译之后应该会在CMAKE_INSTALL_PREFIX/lib/python2.7/dist-packages/目录下找到cv2.so。打开python console,检测opencv版本python -c "import cv2; print cv2.__version__"。如果正确安装的话则会输出3.2.0

 

参考博客:https://www.cnblogs.com/arkenstone/p/6490017.html

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