由于需要经常搭建编程训练环境,需要用到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