最初安裝opencv的原因是要解決這個問題
問題1:
fatal error: opencv2/contrib/contrib.hpp: 沒有那個檔案或目錄
然後最初隻安裝了opencv3,沒有将opencv_contribute安裝上,仍然出現了問題1,然後找啊找教程,終于把opencv_contribute安裝好了。
結果還是會出現錯誤1!!!
感謝這位好人的部落格,讓我知道了:
opencv3中已經沒有了contrib這個子產品,特别指出不是編譯opencv_contrib的問題,而是opencv_contrib中也沒有contrib子產品。
是以再怎麼重裝opencv3+opencv_contrib也是無效的。
解決方法:
安裝opencv2,并在用到contribute的CMakeLists.txt當中設定opencv的路徑。
(1)安裝opencv2
在opencv的官網找到opencv2.4.13.5,下載下傳source版本。
mkdir opencv2
cd opencv2
unzip 2.4.x.zip #注意将下載下傳好的檔案放入剛建立的opencv2檔案夾中,這裡是下載下傳的zip檔案的檔案名
cd opencv2
mkdir build
cd build
cmake-gui
注意:
- 安裝的系統路徑不能再是:/usr/local (opencv3已經占用,不能沖突)
- 建議不要再安裝opencv_python (opencv3已經支援)
是以在cmake-gui界面中的操作如下:
1)去掉BUIILD_opencv_python選項
2)去掉WITH_CUDA (有它編譯出錯,可根據自己情況決定)
3)更改CMAKE_INSTALL_PREFIX的Value值:/usr/local/opencv2 (預設為/usr/local,預設路徑已被opencv3占用,是以要換一個,可根據自己喜好設定路徑,但要記住放在那裡的)
4)Configure無錯,則Generate,關閉cmake-gui
5)編譯
make all -j16
sudo make install
(2)在CMakeLists.txt中修改opencv的配置
打開報錯檔案的CMakeLists.txt,找到有關opencv的設定,找到
FIND_PACKAGE(OpenCV 2 REQUIRED)
SET( OpenCV_FIND_REQUIRED )
FIND_PACKAGE(OpenCV 2 REQUIRED)
将
SET( OpenCV_FIND_REQUIRED )
去掉
改為opencv2的路徑
SET(OpenCV_DIR “/usr/local/opencv2/share/OpenCV”)
FIND_PACKAGE(OpenCV 2 REQUIRED)
如有問題,請多指教。