在Ubuntu上用Anaconda3 编译安装 opencv3

Anaconda 可以直接conda 安装opencv,但是有时候需要编译安装,在Anaconda环境中遇到各种坑,入坑好几天。终于解决了。记录下。

1、首先更新一下,安装一些依赖库

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential
sudo apt-get install -y libopencv-dev
sudo apt-get install libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff5-dev libdc1394-22-dev         # 处理图像所需的包
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev
sudo apt-get install libxvidcore-dev libx264-dev         # 处理视频所需的包
sudo apt-get install libatlas-base-dev gfortran          # 优化opencv功能
sudo apt-get install ffmpeg

2、opencv 压缩包解压

cd opencv-2.4.13      #进入opencv文件夹(我用的是2.4.13)
mkdir build          #新建一个文件夹用于存放临时文件
cd build               #切换到该临时文件夹

3、也是安装的最关键的一步,如果是在python2.7中安装opencv是没有这步,这步也是所有步骤的精华之处(仅一句,因书写方便换行):

cmake -DBUILD_TIFF=ON -DBUILD_opencv_java=OFF -DWITH_CUDA=OFF -DENABLE_AVX=ON -DWITH_OPENGL=ON -DWITH_OPENCL=ON -DWITH_IPP=ON -DWITH_TBB=ON WITH_GTK=ON -DWITH_EIGEN=ON -DWITH_V4L=ON -DWITH_VTK=OFF -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DCMAKE_BUILD_TYPE=RELEASE -DBUILD_opencv_python2=OFF -DCMAKE_INSTALL_PREFIX=$(python3 -c "import sys; print(sys.prefix)") -DPYTHON3_EXECUTABLE=$(which python3) -DPYTHON3_INCLUDE_DIR=$(python3 -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") -DPYTHON3_PACKAGES_PATH=$(python3 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") ..

下面增加了一部分

cmake -D BUILD_TIFF=ON -D BUILD_opencv_java=OFF -D WITH_CUDA=OFF -D ENABLE_AVX=ON -D WITH_OPENGL=ON -D WITH_OPENCL=ON -D WITH_IPP=ON -D WITH_TBB=ON -D WITH_GTK=ON -D WITH_EIGEN=ON -D WITH_V4L=ON -D WITH_VTK=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_NEW_PYTHON_SUPPORT=ON -D CMAKE_BUILD_TYPE=RELEASE -D BUILD_opencv_python2=OFF -D BUILD_EXAMPLES=ON -D CMAKE_INSTALL_PREFIX=$(python3 -c "import sys; print(sys.prefix)") -D PYTHON3_EXECUTABLE=$(which python3) -D INSTALL_PYTHON_EXAMPLES=ON -D INSTALL_C_EXAMPLES=ON -DPYTHON3_INCLUDE_DIR=$(python3 -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") -D PYTHON3_PACKAGES_PATH=$(python3 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") ..

cmake 命令中需要说明的一些,下面的参数是获得Anaconda的路径,不用自己去找路径

CMAKE_INSTALL_PREFIX=$(python3 -c "import sys; print(sys.prefix)") 
#得到路径:/home/cv/SoftWare/Anaconda3/envs/fcos
-D PYTHON3_EXECUTABLE=$(which python3) 
#得到路径:/home/cv/SoftWare/Anaconda3/envs/fcos/bin/python3
-DPYTHON3_INCLUDE_DIR=$(python3 -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") 
#得到路径:/home/cv/SoftWare/Anaconda3/envs/fcos/include/python3.6m
-D PYTHON3_PACKAGES_PATH=$(python3 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")
#得到路径:/home/cv/SoftWare/Anaconda3/envs/fcos/lib/python3.6/site-packages

 

4、

make -j8
make install  #Anaconda 下不使用sudo

错误信息:

安装opencv没有什么问题,但是执行文件时报错

OpenCV Error: Unspecified error (The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script) in cvNamedWindow, file /home/fulva/subject/graduation_project/OpenCV-2.3.0/modules/highgui/src/window.cpp, line 275
terminate called after throwing an instance of 'cv::Exception'
  what():  /home/fulva/subject/graduation_project/OpenCV-2.3.0/modules/highgui/src/window.cpp:275: error: (-2) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function cvNamedWindow

解决方法:https://stackoverflow.com/questions/28776053/opencv-gtk2-x-error 

传送门

打钩的那篇

参考文章: https://www.2cto.com/kf/201704/625323.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值