參考博客:
http://blog.csdn.net/u014613745/article/details/78310916
http://blog.csdn.net/public669/article/details/99044895
linux
由於有須要要在tx2安裝opencv3.2,然而我這jetpack4.4裏的opencv版本是4.1.1,須要卸載重裝,可是在catkin_make中遇到了問題,這裏說一下如何解決。bash
1、卸載原有的opencv
sudo apt-get purge libopencv* sudo apt autoremove sudo apt-get update
查看opencv版本app
pkg-config opencv --modversion
若沒有顯示說明已經卸載成功ide
2、安裝opencv3.2
1.下載opencv
opencv下載官網:https://opencv.org/releases/
下載source文件而後解壓,我這裏要在ros的工做的空間裏使用。因此放在了catkin_ws/src裏
ui
2.安裝opencv
1.安裝依賴環境spa
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev sudo apt-get install libgtk2.0-dev sudo apt-get install pkg-config
2.編譯並安裝.net
cd opencv mkdir build cd build cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local .. make -j sudo make install
時間比較漫長耐心等待3d
安裝opencv的時候可能會遇到報錯:code
Please set them or make sure they are set and tested correctly in the CMake files: CUDA_nppi_LIBRARY (ADVANCED) linked by target "opencv_cudev" in directory D:/Cproject/opencv/opencv/sources/modules/cudev linked by target "opencv_cudev" in directory D:/Cproject/opencv/opencv/sources/modules/cudev linked by target "opencv_test_cudev" in directory D:/Cproject/opencv/opencv/sources/modules/cudev/test linked by target "opencv_core" in directory D:/Cproject/opencv/opencv/sources/modules/core linked by target "opencv_core" in directory D:/Cproject/opencv/opencv/sources/modules/core linked by target "opencv_test_core" in directory D:/Cproject/opencv/opencv/sources/modules/core linked by target "opencv_perf_core" in directory D:/Cproject/opencv/opencv/sources/modules/core linked by target "opencv_test_cudaarithm" in directory D:/Cproject/opencv/opencv/sources/modules/cudaarithm linked by target "opencv_cudaarithm" in directory D:/Cproject/opencv/opencv/sources/modules/cudaarithm linked by target "opencv_cudaarithm" in directory D:/Cproject/opencv/opencv/sources/modules/cudaarithm linked by target "opencv_perf_cudaarithm" in directory D:/Cproject/opencv/opencv/sources/modules/cudaarithm linked by target "opencv_flann" in directory D:/Cproject/opencv/opencv/sources/modules/flann linked by target "opencv_flann" in directory D:/Cproject/opencv/opencv/sources/modules/flann linked by target "opencv_test_flann" in directory D:/Cproject/opencv/opencv/sources/modules/flann linked by target "opencv_imgproc" in directory D:/Cproject/opencv/opencv/sources/modules/imgproc linked by target "opencv_imgproc" in directory D:/Cproject/opencv/opencv/sources/modules/imgproc linked by target "opencv_test_imgproc" in directory D:/Cproject/opencv/opencv/sources/modules/imgproc linked by target "opencv_perf_imgproc" in directory D:/Cproject/opencv/opencv/sources/modules/imgproc linked by target "opencv_test_ml" in directory D:/Cproject/opencv/opencv/sources/modules/ml linked by target "opencv_ml" in directory D:/Cproject/opencv/opencv/sources/modules/ml linked by target "opencv_ml" in directory D:/Cproject/opencv/opencv/sources/modules/ml linked by target "opencv_test_video" in directory D:/Cproject/opencv/opencv/sources/modules/video linked by target "opencv_video" in directory D:/Cproject/opencv/opencv/sources/modules/video linked by target "opencv_video" in directory D:/Cproject/opencv/opencv/sources/modules/video linked by target "opencv_perf_video" in directory D:/Cproject/opencv/opencv/sources/modules/video linked by target "opencv_cudabgsegm" in directory D:/Cproject/opencv/opencv/sources/modules/cudabgsegm linked by target "opencv_cudabgsegm" in directory D:/Cproject/opencv/opencv/sources/modules/cudabgsegm linked by target "opencv_test_cudabgsegm" in directory D:/Cproject/opencv/opencv/sources/modules/cudabgsegm linked by target "opencv_perf_cudabgsegm" in directory D:/Cproject/opencv/opencv/sources/modules/cudabgsegm linked by target "opencv_cudafilters" in directory D:/Cproject/opencv/opencv/sources/modules/cudafilters linked by target "opencv_cudafilters" in directory D:/Cproject/opencv/opencv/sources/modules/cudafilters linked by target "opencv_test_cudafilters" in directory D:/Cproject/opencv/opencv/sources/modules/cudafilters linked by target "opencv_perf_cudafilters" in directory D:/Cproject/opencv/opencv/sources/modules/cudafilters linked by target "opencv_cudaimgproc" in directory D:/Cproject/opencv/opencv/sources/modules/cudaimgproc linked by target "opencv_cudaimgproc" in directory D:/Cproject/opencv/opencv/sources/modules/cudaimgproc linked by target "opencv_test_cudaimgproc" in directory D:/Cproject/opencv/opencv/sources/modules/cudaimgproc linked by target "opencv_perf_cudaimgproc" in directory D:/Cproject/opencv/opencv/sources/modules/cudaimgproc linked by target "opencv_perf_cudawarping" in directory D:/Cproject/opencv/opencv/sources/modules/cudawarping linked by target "opencv_cudawarping" in directory D:/Cproject/opencv/opencv/sources/modules/cudawarping linked by target "opencv_cudawarping" in directory D:/Cproject/opencv/opencv/sources/modules/cudawarping linked by target "opencv_test_cudawarping" in directory D:/Cproject/opencv/opencv/sources/modules/cudawarping linked by target "opencv_imgcodecs" in directory D:/Cproject/opencv/opencv/sources/modules/imgcodecs linked by target "opencv_imgcodecs" in directory D:/Cproject/opencv/opencv/sources/modules/imgcodecs linked by target "opencv_test_imgcodecs" in directory D:/Cproject/opencv/opencv/sources/modules/imgcodecs linked by target "opencv_perf_imgcodecs" in directory D:/Cproject/opencv/opencv/sources/modules/imgcodecs linked by target "opencv_perf_photo" in directory D:/Cproject/opencv/opencv/sources/modules/photo linked by target "opencv_photo" in directory D:/Cproject/opencv/opencv/sources/modules/photo linked by target "opencv_photo" in directory D:/Cproject/opencv/opencv/sources/modules/photo linked by target "opencv_test_photo" in directory D:/Cproject/opencv/opencv/sources/modules/photo linked by target "opencv_test_shape" in directory D:/Cproject/opencv/opencv/sources/modules/shape linked by target "opencv_shape" in directory D:/Cproject/opencv/opencv/sources/modules/shape linked by target "opencv_shape" in directory D:/Cproject/opencv/opencv/sources/modules/shape linked by target "opencv_test_videoio" in directory D:/Cproject/opencv/opencv/sources/modules/videoio linked by target "opencv_videoio" in directory D:/Cproject/opencv/opencv/sources/modules/videoio linked by target "opencv_videoio" in directory D:/Cproject/opencv/opencv/sources/modules/videoio linked by target "opencv_perf_videoio" in directory D:/Cproject/opencv/opencv/sources/modules/videoio linked by target "opencv_cudacodec" in directory D:/Cproject/opencv/opencv/sources/modules/cudacodec linked by target "opencv_cudacodec" in directory D:/Cproject/opencv/opencv/sources/modules/cudacodec linked by target "opencv_perf_cudacodec" in directory D:/Cproject/opencv/opencv/sources/modules/cudacodec linked by target "opencv_test_cudacodec" in directory D:/Cproject/opencv/opencv/sources/modules/cudacodec linked by target "opencv_highgui" in directory D:/Cproject/opencv/opencv/sources/modules/highgui linked by target "opencv_highgui" in directory D:/Cproject/opencv/opencv/sources/modules/highgui linked by target "opencv_test_highgui" in directory D:/Cproject/opencv/opencv/sources/modules/highgui linked by target "opencv_perf_objdetect" in directory D:/Cproject/opencv/opencv/sources/modules/objdetect linked by target "opencv_objdetect" in directory D:/Cproject/opencv/opencv/sources/modules/objdetect linked by target "opencv_objdetect" in directory D:/Cproject/opencv/opencv/sources/modules/objdetect linked by target "opencv_test_objdetect" in directory D:/Cproject/opencv/opencv/sources/modules/objdetect linked by target "opencv_ts" in directory D:/Cproject/opencv/opencv/sources/modules/ts linked by target "opencv_ts" in directory D:/Cproject/opencv/opencv/sources/modules/ts linked by target "opencv_test_features2d" in directory D:/Cproject/opencv/opencv/sources/modules/features2d linked by target "opencv_features2d" in directory D:/Cproject/opencv/opencv/sources/modules/features2d linked by target "opencv_features2d" in directory D:/Cproject/opencv/opencv/sources/modules/features2d linked by target "opencv_perf_features2d" in directory D:/Cproject/opencv/opencv/sources/modules/features2d linked by target "opencv_calib3d" in directory D:/Cproject/opencv/opencv/sources/modules/calib3d linked by target "opencv_calib3d" in directory D:/Cproject/opencv/opencv/sources/modules/calib3d linked by target "opencv_test_calib3d" in directory D:/Cproject/opencv/opencv/sources/modules/calib3d linked by target "opencv_perf_calib3d" in directory D:/Cproject/opencv/opencv/sources/modules/calib3d linked by target "opencv_cudafeatures2d" in directory D:/Cproject/opencv/opencv/sources/modules/cudafeatures2d linked by target "opencv_cudafeatures2d" in directory D:/Cproject/opencv/opencv/sources/modules/cudafeatures2d linked by target "opencv_test_cudafeatures2d" in directory D:/Cproject/opencv/opencv/sources/modules/cudafeatures2d linked by target "opencv_perf_cudafeatures2d" in directory D:/Cproject/opencv/opencv/sources/modules/cudafeatures2d linked by target "opencv_cudalegacy" in directory D:/Cproject/opencv/opencv/sources/modules/cudalegacy linked by target "opencv_cudalegacy" in directory D:/Cproject/opencv/opencv/sources/modules/cudalegacy linked by target "opencv_test_cudalegacy" in directory D:/Cproject/opencv/opencv/sources/modules/cudalegacy linked by target "opencv_perf_cudalegacy" in directory D:/Cproject/opencv/opencv/sources/modules/cudalegacy linked by target "opencv_cudaobjdetect" in directory D:/Cproject/opencv/opencv/sources/modules/cudaobjdetect linked by target "opencv_cudaobjdetect" in directory D:/Cproject/opencv/opencv/sources/modules/cudaobjdetect linked by target "opencv_perf_cudaobjdetect" in directory D:/Cproject/opencv/opencv/sources/modules/cudaobjdetect linked by target "opencv_test_cudaobjdetect" in directory D:/Cproject/opencv/opencv/sources/modules/cudaobjdetect linked by target "opencv_cudaoptflow" in directory D:/Cproject/opencv/opencv/sources/modules/cudaoptflow linked by target "opencv_cudaoptflow" in directory D:/Cproject/opencv/opencv/sources/modules/cudaoptflow linked by target "opencv_test_cudaoptflow" in directory D:/Cproject/opencv/opencv/sources/modules/cudaoptflow linked by target "opencv_perf_cudaoptflow" in directory D:/Cproject/opencv/opencv/sources/modules/cudaoptflow linked by target "opencv_perf_cudastereo" in directory D:/Cproject/opencv/opencv/sources/modules/cudastereo linked by target "opencv_cudastereo" in directory D:/Cproject/opencv/opencv/sources/modules/cudastereo linked by target "opencv_cudastereo" in directory D:/Cproject/opencv/opencv/sources/modules/cudastereo linked by target "opencv_test_cudastereo" in directory D:/Cproject/opencv/opencv/sources/modules/cudastereo linked by target "opencv_test_stitching" in directory D:/Cproject/opencv/opencv/sources/modules/stitching linked by target "opencv_stitching" in directory D:/Cproject/opencv/opencv/sources/modules/stitching linked by target "opencv_stitching" in directory D:/Cproject/opencv/opencv/sources/modules/stitching linked by target "opencv_perf_stitching" in directory D:/Cproject/opencv/opencv/sources/modules/stitching linked by target "opencv_superres" in directory D:/Cproject/opencv/opencv/sources/modules/superres linked by target "opencv_superres" in directory D:/Cproject/opencv/opencv/sources/modules/superres linked by target "opencv_test_superres" in directory D:/Cproject/opencv/opencv/sources/modules/superres linked by target "opencv_perf_superres" in directory D:/Cproject/opencv/opencv/sources/modules/superres linked by target "opencv_videostab" in directory D:/Cproject/opencv/opencv/sources/modules/videostab linked by target "opencv_videostab" in directory D:/Cproject/opencv/opencv/sources/modules/videostab linked by target "opencv_traincascade" in directory D:/Cproject/opencv/opencv/sources/apps/traincascade linked by target "opencv_createsamples" in directory D:/Cproject/opencv/opencv/sources/apps/createsamples linked by target "opencv_annotation" in directory D:/Cproject/opencv/opencv/sources/apps/annotation linked by target "opencv_visualisation" in directory D:/Cproject/opencv/opencv/sources/apps/visualisation linked by target "opencv_version" in directory D:/Cproject/opencv/opencv/sources/apps/version
這裏的解決方法能夠參考博客:http://blog.csdn.net/u014613745/article/details/78310916orm
3.配置環境,將opencv的庫加入路徑
sudo gedit /etc/ld.so.conf
此時在打開的文件中加入/usr/loacl/lib
,保存退出
sudo ldconfig sudo gedit /etc/bash.bashrc
此時在打開的文件末尾加入PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig export PKG_CONFIG_PATH
,保存退出
source /etc/bash.bashrc
4.檢驗
pkg-config opencv --modversion
至此opencv的安裝就完成了
3、修改cv_bridge和cmake
原本到上一步就已經結束,可是我在catkin_ws中catkin_make時遇到幾個問題,一個是cv_bridge一個是opencv的版本,雖然opencv3,.2已經安裝完成,可是catkin_make的時候能夠看到opencv被檢測的版本是4.1.1以及cv_bridge報錯,後來發現opencv安裝完成以後在usr/include中出現了opencv,而咱們安裝的opencv在usr/local/include中而且cv_bridge報錯,這裏須要修改一下cmake和cv_bridge才能順利編譯下去。
這裏是我遇到的錯誤和解決方法,catkin_make時出現了這個錯誤
這須要修改cmake
cd opt/ros/melodic/share/cv_bridge/cmake sudo gedit cv_bridgeConfig.cmake
找到以下的位置。
能夠看到cv_bridgeConfig.cmake中引用opencv的路徑是/usr/inclde/opencv,到這個路徑能夠看到文件夾是opencv4不是opencv,因此會按照下面一行的路徑去尋找引用,路徑一樣也是/usr/inclde/opencv,然而以前本身安裝的opencv的路徑在/usr/local/include中,因此咱們下面要對cv_bridgeConfig.cmake中opencv的引用地址進行修改,在cv_bridgeConfig.cmake中把
set(_include_dirs 「include;/usr/include;/usr/local/opencv2」)
改爲
set(_include_dirs 「include;/usr/local/include;/usr/local/include/opencv2」)
如圖所示
catkin_make中還可能遇到以下圖所示的問題:
這是剛剛安裝的opencv版本尚未被系統識別出來,須要進行以下修改:
打開本身安裝的opencv的build文件夾,同時打開/usr/lib/aarch64-linux-gnu/cmke/opencv4
把opencv build文件夾中的對應文件複製到opencv4文件夾中,其中OpenCVModules-realease.cmake可能沒有,這個好像也沒有影響。
再次在catkin_ws中catkin_make就能夠了