ubuntu---记录opencv多版本管理与切换

1 首先当然准备两个不同版本opencv (比如2.4.9和3.1.0)

2 cmake-gui 设置 CMAKE_INSTALL_PREFIX
    2.4.9 安装路径:/usr/local/opencv2
    3.1.0 安装路径 :/usr/loacl/opencv3

3 安装
    比如 按照2.4.9 
    新建build 
    cmake-gui ..
    选择CMAKE_INSTALL_PREFIX /usr/local/opencv2
------------------------------------

一般情况下不能直接opencv 的环境写到bashrc,所以我们需要手动进行切换

当你需要使用opencv 2.4.9的话,在终端输入:
    export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv2/lib/pkgconfig
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/opencv2/lib

生效:sudo ldconfig

当你需要使用opencv 3.1.0的话,在终端输入:
    export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv3/lib/pkgconfig
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/opencv3/lib


5 CmakeLists.txt设置

    opencv3.1.0 需要手动设置 寻找到opencv-config.cmake

    set(CMAKE_PREFIX_PATH "/usr/local/opencv3/share/OpenCV")

    原文链接:https://blog.csdn.net/u012986684/article/details/77490824

-----------------------------------------------------------------------
 设置管理
一般情况下不能直接opencv 的环境写到bashrc,所以我们需要手动进行切换
当你需要使用opencv 2.4.9的话,在终端输入:
    export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv2/lib/pkgconfig
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/opencv2/lib

生效
sudo ldconfig

当你需要使用opencv 3.1.0的话,在终端输入:
    export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv3/lib/pkgconfig
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/opencv3/lib

原文链接:https://blog.csdn.net/u012986684/article/details/77490824
-----------------------------------------------------

https://blog.csdn.net/mhsszm/article/details/88558470
用此种方法安装有二个好处:
1) 就是在各个opencv版本可以来回自如的切换,并且十分容易移植。
比如说按上面的方法,我们已经make install两个版本的opencv在不同的文件夹下,如:

/home/install/opencv-2.4.10/build-install, /home/install/opencv-3.4.0/build-install

现在只要更改~/.bashrc就能在两个版本间自由切换。

#opencv3.4.0
export PATH=/home/oeasy/install/opencv-3.4.0/build_install/bin:$PATH
export LD_LIBRARY_PATH=/home/install/opencv-3.4.0/build_install/lib:$LD_LIBRARY_PATH 
export PKG_CONFIG_PATH=/home/install/opencv-3.4.0/build_install/lib/pkgconfig

#opencv2.4.10
#export PATH=/home/oeasy/opencv-2.4.10/build_install/bin:$PATH
#export LD_LIBRARY_PATH=/home/install/opencv-2.4.10/build_install/lib:$LD_LIBRARY_PATH
#export PKG_CONFIG_PATH=/home/install/opencv-2.4.10/build_install/lib/pkgconfig

切换后,source ~/.bashrc,就好了。

2) 十分容易移植
因为编译opencv要很久的时间,按如上方法编译可以做到一个版本编译一次,能在同平台下的多台电脑上轻易部署。
到一台新电脑里,只要将build_install这个文件夹下的所有东西复制。然后在新电脑上相应的 ~/.bashrc加上环境变量,就ok了。

不止是opencv 像google的protobuf 也一样,涉及到多个版本的,要切换不同版本的,都可以按如上方法,可得长个心眼了。

原文链接:https://blog.csdn.net/mhsszm/article/details/88558470

----------------------------------------------------------------------
sudo gedit /etc/bash.bashrc

source /etc/bash.bashrc

pkg-config --cflags --libs opencv

pkg-config --modversion opencv
---------------------------------
source bin/activate

cd opencv4.1.1

cd opencv-4.1.1

cd samples/cpp/example_cmake

cmake .

----------------------------
g++ deep_sort_app.cpp  -o deep_sort_111 `pkg-config --cflags --libs opencv` 


=============================================
安装OPENCV
wget -O opencv_contrib.zip https://github.com/Itseez/opencv/archive/3.4.2.zip
wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.4.2.zip
解压后将opencv_contrib-3.4.1移动道opencv-3.4.1文档目录下;

进入opencv-3.4.1文档,采用外部编译的方式,输入下列代码:

mkdir build;

cd build;

关键是cmake的代码,因为各位ubuntu的系统配置不尽相同,因此可以使用下列比较通用的代码:

cmake -D CMAKE_BUILD_TYPE=RELEASE \

    -DCMAKE_INSTALL_PREFIX=/usr/local/ \

    -DINSTALL_PYTHON_EXAMPLES=ON \

    -DINSTALL_C_EXAMPLES=ON \

    -DPYTHON_EXCUTABLE=/usr/bin/python \

    -DOPENCV_EXTRA_MODULES_PATH=/home/lxy/opencv/opencv-3.4.2/opencv_contrib-3.4.2/modules \

(3.1)创建build文件夹
mkdir build
cd build

(3.2)cmake一下
#cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
#cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=~/opencv-3.4.2/build/installed -DWITH_CUDA=OFF ..  (建立opencv-3.4.2/build/installed这几个文件夹)
   
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv3.4.2 -D OPENCV_EXTRA_MODULES_PATH=/home/u/opencv-3.4.2/opencv_contrib-3.4.2/modules ..

注意:如果已经在新的文件夹中编译,但是还会出现之前的报错,把cmakecache.txt删了再编译就可
不报错,继续。。。

(3.3)make一下
sudo make
sudo make install    #执行完毕后OpenCV编译过程就结束

(3.4)配置一些OpenCV的编译环境
第一步:系统环境
1.首先将OpenCV的库添加到路径,从而可以让系统找到:
sudo gedit /etc/ld.so.conf.d/opencv.conf 

2.只需要在文件末尾添加:
/usr/local/lib  

3.使得刚才的配置路径生效:
sudo ldconfig

第二步:配置bash
1.打开bash.bashrc 
sudo gedit /etc/bash.bashrc    # sudo gedit ~/.bashrc

2.在最末尾添加
#@多版本OpenCV切换 https://blog.csdn.net/learning_tortosie/article/details/80594399
#export PKG_CONFIG_PATH=~/opencv-3.4.1/build/installed/lib/pkgconfig 
#export LD_LIBRARY_PATH=~/opencv-3.4.1/build/installed/lib

export PKG_CONFIG_PATH=/usr/local/opencv3.4.2/lib/pkgconfig 
export LD_LIBRARY_PATH=/usr/local/opencv3.4.2/lib

3.使配置生效
source /etc/bash.bashrc    # source ~/.bashrc 

(3.5)查询OpenCV版本
pkg-config --modversion opencv  # 如果输出3.4.2,就表明配置成功。 如果前面没报错,输出不是3.4.2,可能是配置没生效,重启电脑 
pkg-config opencv --modversion 

==========================================
解决pip安装第三方包出现socket.timeout: The read operation timed out超时问题
pip3 install opencv-contrib-python==3.4.5.20

pip3 --default-timeout=100 install opencv-contrib-python==3.4.5.20

猜你喜欢

转载自www.cnblogs.com/carle-09/p/11670921.html