(可能不全,就缺什么安装什么吧)
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
opencv可以通过下面两个链接下载
https://github.com/Itseez/opencv/archive/2.4.13.zip (针对2.4.13版本)
各个发布版:http://opencv.org/releases.html
github :https://github.com/opencv
下载后解压压缩包,然后执行下面的命令
cd opencv-2.4.13 #进入opencv文件夹(我用的是2.4.13)
mkdir build #新建一个文件夹用于存放临时文件
cd build #切换到该临时文件夹
#开始编译,此处/usr/local为安装目录,可以自己改,改了之后后面加环境变量也要同时改
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j4 #编译,开启线程 按照自己的配置
sudo make install #编译成功后安装,此处用sudo,因为要在/usr/local路
#径下创建相关文件,必须root权限
(1)安装完成后通过查看 opencv 版本验证是否安装成功:
pkg-config --modversion opencv
命令执行后显示opencv版本号
(2)验证python中是否成功导入,同时cv2.__version__查看版本。
如上图,如果不报错,表示安装成功。
python
import cv2
cv2.__version__
1、环境配置添加库路径
sudo gedit /etc/ld.so.conf.d/opencv.conf
#打开后可能是空文件,在文件内容最后添加
/usr/local/lib
2、更新系统
sudo ldconfig
3、配置bash,执行如下命令
sudo gedit /etc/bash.bashrc
# 在末尾添加
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
4、保存退出,然后执行如下命令使得配置生效
source /etc/bash.bashrc
# 激活配置然后更新database
sudo updatedb
1、error while loading shared libraries: libopencv_core.so.3.4: cannot open share
原因:从这个提示可以知道系统找不到libopencv_core.so.3.4在哪儿,而系统是通过/etc/ld.so.conf中的路径找.so这个文件的。将libopencv_core.so.3.4的路径加入到.conf文件中就可以了。.so文件一般存放在/usr/local/lib目录下。
主要用过下面两个方式,其实是一样的,只是过程不同罢了
解决方法1:
对ld.so.conf这个文件进行编辑是需要获取超级权限的。
cd ~ //先返回到根目录
sudo vim /etc/ld.so.conf //获取超级权限,并用vim编辑器打开该文件
然后在末尾加入/usr/local/lib即可
退出后执行下面的语句使之生效
sudo ldconfig
然后就可以正常导入了
解决方法2:
如果执行程序显示找不到opencv可以执行下面的命令
sudo sh -c 'echo "/usr/local/lib" >> /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig
sudo apt-get purge libopencv*
首先进入原先编译opencv2的build目录,在该目录下打开终端;再执行以下代码。(注意如果build已经删除了,可以重新编译一遍该版本的opencv,然后在最后一步执行sudo make uninstall)
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*
这一步可能有error,忽略之。最后执行如下操作:
sudo apt-get --purge remove opencv-doc opencv-data python-opencv
然后就重新安装吧,依赖库等也要重新安装
在使用opencv时,如果想要在opencv中使用sift算子,我们需要安装extra_modules(Opencv_contrib)组件,opencv2中直接可以#include "opencv2/nonfree/nonfree.hpp" #include "opencv2/legacy/legacy.hpp" 方式使用,但是opencv3将一些不稳定的或需要专利付费的算法整理出了一个模块opencv_contrib,因此需要单独安装。
安装Opencv和Opencv_contrib的时候要注意版本匹配,下面给出网址大家可以从里面挑选对应的版本:
https://github.com/opencv
注意:如果原来安装了opencv,先卸载。方法参照上面。然后重新安装opencv
安装OpenCV以及Opencv_contribe组件:
首先将二者解压,解压后将opencv_contrib移动道opencv文档目录下;
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=/home/yourname/opencv-3.4.5/opencv_contrib-3.4.5/modules/ ..
make -j4
sudo make install
CMAKE_INSTALL_PREFIX=/usr/local 是opencv的安装路径,一般在选择在/usr/local下
OPENCV_EXTRA_MODULES后面的路径是opencv_contib-3.4.5包的路径。
注意如果在opencv中使用申请专利的算法,会报错如下
/home/sdc/Downloads/opencv-3.4.5/opencv_contrib-3.4.5/modules/xfeatures2d/src/surf.cpp:1027: error: (-213:The function/feature is not implemented) This algorithm is patented and is excluded in this configuration; Set OPENCV_ENABLE_NONFREE CMake option and rebuild the library in function 'create'
这是由于申请了专利,需要重新编译,加上
-D OPENCV_ENABLE_NONFREE=YES 表示使用申请专利的算法
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_ENABLE_NONFREE=YES -D OPENCV_EXTRA_MODULES_PATH=/home/sdc/SoftWare/opencv-3.4.5/opencv_contrib-3.4.5/modules/ ..
本小节参考:
参考文章:1、 https://www.cnblogs.com/needybeerlxy/p/8979238.html
2、 https://blog.csdn.net/m0_37811342/article/details/80896671
3、 https://www.jianshu.com/p/5edff54264f9