1. 查看安裝Opencv的版本、以及libs和cflags
$ pkg-config --modversion opencv $ pkg-config --cflags opencv // 編譯鏈接 $ pkg-config --libs opencv // 庫鏈接
2. 卸載之前的Opencv版本
$ cd <your_opencv_source_files>/build $ sudo make uninstall $ cd .. && rm -rf build
3. 安裝opencv_contrib----確保與安裝的opencv版本一致
"記住:為方便Opencv的調用和讀取,建立opencv的install文件夾" $ sudo mkdir -p /usr/local/opencv410 (安裝的是opencv-4.1.0) $ cd <your_opencv_source_files>/build $ sudo rm -rf * ## 如果之前安裝了opencv再安裝contrib就需要將之前的清除再重新安裝 $ cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv410 -D OPENCV_EXTRA_MODULES_PATH=<path to opencv_contrib>/modules/ .. "備注:注意如果要安裝opencv_contrib模塊,確保將之前build文件下的內容刪除,然后再重新編譯,否則你就會出錯!---ERROR2" $ cmake-gui ##另外,如果你要使用nonfree模塊里面的特征點提取等相關內容,請使用cmake-gui 編譯勾選參數OPENCV_ENABLE_NONFREE,另外其他參數跟前面一樣 ----ERROR1 $ sudo make -j8 $ sudo make install
4. CMakeLists.txt 調用OpenCV鏈接庫和頭文件
set(CMAKE_PREFIX_PATH "/usr/local/opencv410/lib/cmake/opencv4") ## 或者用以下方式設定opencv4的構建路徑 set(OpenCV_DIR "/home/ian/tools/slam_libraries/opencv-4.1.0/build") find_package(OpenCV 4 REQUIRED) include_directories(${OpenCV_INCLUDE_DIRS}) target_link_libraries(*** ${OpenCV_LIBS})
5. 編譯過程中遇到的兩個錯誤,若按照以上方式安裝可避免下述錯誤
ERROR1: (-213:The function/feature is not implemented) This algorithm is patented and is excluded in this configuration; Set OPENCV_ENABLE_NONFREE CMake option and rebuild the library in function 'create'; ERROR2: error: ‘linemod’ was not declared in this scope template<> struct pyopencvVecConverter<linemod::Match>;
[參考鏈接]:
Author: Ian
星期六, 13. 七月 2019 10:04上午