天天看點

fatal error: opencv2/contrib/contrib.hpp: 沒有那個檔案或目錄

最初安裝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)
           

如有問題,請多指教。