本文用于記錄opencv共存設(shè)置過(guò)程以及踩過(guò)的坑
環(huán)境:Ubuntu 20.04
按照csdn上其他博客說(shuō)法,自帶版本為opencv4,但之前因?yàn)椴欢姹驹O(shè)置等原因,在需要更低版本時(shí),沒(méi)有將opencv3 以及2和4分開(kāi)安裝,按照網(wǎng)上的說(shuō)法可能引起不必要的混亂,事實(shí)也確實(shí)如此。
一. 完全卸載opencv
sudo make uninstall
cd ..
sudo rm -r build
sudo 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*
似乎沒(méi)完全刪除
使用find /usr iname opencv
find /usr iname opencv4
find /usr iname opencv3.4
(之前安過(guò)3.4)find /usr iname opencv2
找到所有相關(guān)文件夾刪除。
下面這條命令似乎可以把所有依賴都一起檢測(cè)出來(lái),并可以逐項(xiàng)懸著是否刪除(由于對(duì)opencv依賴以及文件細(xì)節(jié)并不了解,沒(méi)有嘗試)
sudo find / -name "*opencv*" -exec rm -i {} \;
二.官網(wǎng)下載源碼并編譯
https://opencv.org/
我下載了opencv4.4.0 opencv3.4.10 opencv2.4.13.5
git clone https://github.com/opencv/opencv.git #opencv 4和3 版本在下面的圖片中自己選一下
git clone https://github.com/opencv/opencv/archive/refs/tags/2.4.13.5.zip #opencv 2
常規(guī)編譯如下
進(jìn)入相應(yīng)版本的opencv包中
mkdir build && cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv2.4.1 -D OPENCV_GENERATE_PKGCONFIG=ON -D WITH_CUDA=OFF ..
make -j4
sudo make install
注意不常規(guī)的地方cmake后面那一大堆,這個(gè)很重要
1
這條是不使用cuda編譯,主要是因?yàn)槲业娘@卡是3050ti似乎不被opencv2的cuda編譯所支持,編譯opencv3和4時(shí)沒(méi)問(wèn)題,可以不加
-D WITH_CUDA=OFF
我是在沒(méi)有加的情況下出現(xiàn)了這個(gè)編譯錯(cuò)誤
nvcc fatal : Unsupported gpu architecture 'compute_20'
2
這條是為了讓pkg-config --modversion opencv
命令可以搜索到opencv版本
-D OPENCV_GENERATE_PKGCONFIG=ON
但如果想搜索到還需要在~/.bashrc文件最后插入如下
gedit ~/bashrc
#Opencv 4.4.0
#export PKG_CONFIG_PATH=/usr/local/opencv4.4.0/lib/pkgconfig
#export LD_LIBRARY_PATH=/usr/local/opencv4.4.0/lib
#Opencv 3.4.10
#export PKG_CONFIG_PATH=/usr/local/opencv3.4.1/lib/pkgconfig
#export LD_LIBRARY_PATH=/usr/local/opencv3.4.1/lib
#Opencv 2.4.13.5
export PKG_CONFIG_PATH=/usr/local/opencv2.4.1/lib/pkgconfig
export LD_LIBRARY_PATH=/usr/local/opencv2.4.1/lib
source一下以后就可以看到版本了(已經(jīng)編譯完以后的話)
3
該部分同樣重要,將opencv不同版本安放在不同的文件夾中(編譯3和4時(shí)把opencv2.4.1改成相應(yīng)的版本名即可),目的是分開(kāi)使用opencv各版本
-D CMAKE_INSTALL_PREFIX=/usr/local/opencv2.4.1
三.多版本切換
將set(OpenCV_DIR /usr/local/opencv3.2.0/share/OpenCV)
和 find_package( OpenCV 3.2 REQUIRED )
替換原有的find_package(OpenCV REQUIRED)
便可以實(shí)現(xiàn)切換
#find_package(OpenCV REQUIRED) #使用opencv2
set(CMAKE_PREFIX_PATH /usr/local/opencv3.2.0/share/OpenCV)
# set (OpenCV_DIR "/home/xxx/opencv/opencv-4.2.0/build")
find_package( OpenCV 3.2 REQUIRED ) #使用opencv3.2
此處說(shuō)明,find里只加opencv似乎時(shí)尋找系統(tǒng)安裝的版本(似乎是這樣,不太敢確定),我的電腦只家opencv會(huì)找到opencv4,情況是使用sudo apt-get install 安裝了opencv,然后用源碼安裝的opencv3和2.文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-802802.html
過(guò)程大概是這樣,做記錄用。也希望能對(duì)您有多幫助。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-802802.html
到了這里,關(guān)于多版本opencv共存 刪除原系統(tǒng)opencv,安裝opencv4.4.0 /3.4.10 / 2.4.13.5的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!