一、卸載已安裝的opencv
1、查看已安裝的opencv版本
$ pkg-config --modversion opencv
2、卸載
首先要找到當初安裝opencv的build目錄,進入該build目錄執行卸載操作
$ sudo make uninstall
$ cd ..
$ rm -r build
如果找不見該build目錄,可以重新建立build目錄安裝對應版本,然後再執行上邊卸載步驟。然後清理/usr中所有opencv相關項
$ rm -r /usr/local/include/opencv2 /usr/local/include/opencv /usr/include/opencv /usr/include/opencv2 /usr/local/share/opencv /usr/local/share/OpenCV /usr/share/opencv /usr/share/OpenCV /usr/local/bin/opencv* /usr/local/lib/libopencv*
$ cd /usr
$ find . -name "*opencv*" | xargs sudo rm -rf
移除python相關
$ apt-get remove-doc opencv-data python-opencv
如果找不見當時的安裝目錄,可能被刪除了,就需要重新安裝一遍,安裝之後就可以進行uninstall操作了!
二、安裝opencv3.2.0 + opencv contrib3.2.0
1、下載opencv3.2.0 以及 opencv contrib3.2.0
opencv 3.2.0下載鏈接:
鏈接2:Download
opencv_contrib 3.2.0 下載鏈接
鏈接:Download
2、安裝opencv依賴庫
$ sudo apt-get install build-essential
$ sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
$ sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
3、在住文件目錄中創建opencv目錄,將opencv3.2.0解壓到該目錄中,再將opencv contrib3.2.0解壓到opencv3.2.0目錄中。
並且在主目錄中創建build文件。
$ cd ~
$ mkdir opencv
將opencv3.2.0以及opencv contrib3.2.0解壓到該目錄下,可以在終端輸入命令解壓,也可以直接對壓縮文件右鍵提取操作。
$ cd ~/opencv/opencv-3.2.0/
$ mkdir build
4、進入build目錄並cmake:
第一步:
$ cd ~/opencv/opencv-3.2.0/build
第二步:
$ cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=~/opencv/opencv-3.2.0/opencv_contrib-3.2.0/modules/ ..
上邊位安裝opencv_contrib模塊,下邊位不安裝
$ cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
其中CMAKE_INSTALL_PREFIX=/use/local爲安裝的路徑,OPENCV_EXTRA_MODULES_PATH=~/opencv/opencv-3.2.0/opencv_contrib-3.2.0/modules爲opencv_contrib-3.2.0的目錄,並且最後兩個點不能拉掉!
cmake過程中可能遇到的問題:
1、如果網絡不好,出現ippicv_linux_20151201.tgz無法在終端下載的情況,則可以先單獨下載
ippicv_linux_20151201.tgz之後,把其移動到終端所提示的路徑(終端會提示該路徑找不到文
件),如路徑/opencv-3.2.0/3rdparty/ippicv/downloads/linux-
808b791a6eac9ed78d32a7666804320e/
移動的時候,可以另外打開一個終端操作:
sudo mv ippicv_linux_20151201.tgz /opencv-3.2.0/3rdparty/ippicv/downloads
/linux-808b791a6eac9ed78d32a7666804320e
如果同樣有其他類似的文件無法下載,方法同上。
2、如果出現如下的報錯情況,請參考這篇文章解決 http://blog.csdn.net/tengxing007/article/details/54380732
Checking for module 'gtk+-3.0'
-- No package 'gtk+-3.0' found
-- Checking for module 'gstreamer-base-1.0'
-- No package 'gstreamer-base-1.0' found
checking for module 'gstreamer-base-1.0'
-- package 'gstreamer-base-1.0' not found
-- checking for module 'gstreamer-video-1.0'
-- package 'gstreamer-video-1.0' not found
-- checking for module 'gstreamer-app-1.0'
-- package 'gstreamer-app-1.0' not found
-- checking for module 'gstreamer-riff-1.0'
-- package 'gstreamer-riff-1.0' not found
-- checking for module 'gstreamer-pbutils-1.0'
5、make與install
在原先的build目錄下執行一下兩步操作:
$ sudo make
$ sudo make install
6'、配置環境
在終端中打開 /etc/ld.conf.d/opencv.conf 文件,並在最後一行添加 /usr/local/lib,如果沒有這個文件那就新建一個。然後打開 /etc/bash.bashrc 文件,在最後一行中添加
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv320/lib/pkgconfig
export PKG_CONFIG_PATH
$ sudo gedit /etc/ld.so.conf.d/opencv.conf
#在最後一行中添加 /usr/local/lib
$ sudo geidt /etc/bash.bashrc
#在最後一行中添加:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv320/lib/pkgconfig
export PKG_CONFIG_PATH
$ sudo ldconfig
在make的時候可能出現的錯誤: error: ‘GstMiniObjectClass’ does not name a type類似的錯誤時
明顯地,與gstreamer-0.10有關,於是重裝libgstreamer0.10-dev 、以及libgstreamer-plugins-base0.10-dev,沒用。於是下載舊版本的opencv嘗試編譯,但是經過3.0.0-beta以及2.4.10都不行後,只有opencv-2.4.9編譯是正常的。於是嘗試對比2.4.9以及3.0.0-rc1的不同。看到CMakeList有如下信息:
3.0.0-rc1的是:
[html] view plain copy
OCV_OPTION(WITH_FFMPEG "Include FFMPEG support" ON IF (NOT ANDROID AND NOT IOS AND NOT WINRT) )
OCV_OPTION(WITH_GSTREAMER "Include Gstreamer support" ON IF (UNIX AND NOT ANDROID) )
OCV_OPTION(WITH_GSTREAMER_0_10 "Enable Gstreamer 0.10 support (instead of 1.x)" OFF )
OCV_OPTION(WITH_GTK "Include GTK support" ON IF (UNIX AND NOT APPLE AND NOT ANDROID) )
2.4.9的是:
[html] view plain copy
OCV_OPTION(WITH_FFMPEG "Include FFMPEG support" ON IF (NOT ANDROID AND NOT IOS))
OCV_OPTION(WITH_GSTREAMER "Include Gstreamer support" ON IF (UNIX AND NOT APPLE AND NOT ANDROID) )
OCV_OPTION(WITH_GTK "Include GTK support" ON IF (UNIX AND NOT APPLE AND NOT ANDROID) )
也就是2.4.9還默認使用電腦中所使用的gstreamer版本,而3.0.0已經默認使用最新的gstreamer1.0了(今天是2015.5.5,最新gstreamer爲1.0)。
到此,可以發現有兩個解決方法:
1,在cmake時:設置WITH_GSTREAMER_0_10=OFF
2,安裝最新gstreamer1.0
因此我決定安裝gstreamer1.0。即:
[html] view plain copy
sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
如果沒有出現錯誤則安裝成功,可以運行$ pkg-config --modversion opencv 檢查是不是3.2.0版本!
若運行$ pkg-config --modversion opencv後 提示:
Package opencv was not found in the pkg-config search path.
Perhaps you should add the directory containing `opencv.pc'
to the PKG_CONFIG_PATH environment variable
No package 'opencv' found
則需要運行下邊語句
sudo cp /usr/local/opencv320/lib/pkgconfig/opencv.pc /usr/lib/pkgconfig