由于需要经常搭建编程训练环境,需要用到OpenCV,把编译过程和遇到的问题记录一下,作为以后参考。

1. Ubuntu下如果你只是需要在python里使用,那么可以直接通过apt-get安装:

sudo apt-get install python-opencv

如果你需要在自己安装的python程序里使用,那么你需要使用自己的python库里的pip来装:

pip install opencv_python

2. 但是当我们需要C++的环境时,就需要自己编译了,方法如下:

首先,安装一些必须的库:

sudo apt-get install cmake
sudo apt-get install python-devel numpy
sudo apt-get install gcc gcc-c++
sudo apt-get install gtk2-devel
sudo apt-get install libv4l-devel
sudo apt-get install ffmpeg-devel
sudo apt-get install gstreamer-plugins-base-devel

下面可视需要安装:

sudo apt-get install libpng-devel
sudo apt-get install libjpeg-turbo-devel
sudo apt-get install jasper-devel
sudo apt-get install openexr-devel
sudo apt-get install libtiff-devel
sudo apt-get install libwebp-devel

从Github上下载OpenCV(这里你可以自己从release下载想要的版本,默认是最新版,目前已到4.x)

sudo apt-get install git
git clone https://github.com/opencv/opencv.git

编译:

cd opencv
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j
sudo make install

此时编译生成的.so会安装在/usr/local/lib下;头文件在/usr/loca/include下。

如果你没有sudo权限,或者想把opencv库放在自己工作目录下面,那么修改--prefix到自定义目录即可,使用这个方法可以让多个OpenCV版本共存,互不影响。

 

遇到过的问题:

1. nvcc fatal   : Unsupported gpu architecture 'compute_11'

解决办法:

    如果你安装了CUDA并希望编译OpenCV的CUDA支持,那么添加-D CUDA_GENERATION=Auto 可以解决

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D CUDA_GENERATION=Auto ..

  如果你需要编译不带CUDA的OpenCV,那么cmake时添加-D WITH_CUDA=OFF即可:

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_CUDA=OFF ..

 

 

参考资料:

https://docs.opencv.org/3.4.1/d2/de6/tutorial_py_setup_in_ubuntu.html

01-17 14:26