本文所述测试环境
OS:CentOS 7.2 操作系统下的GNOME Desktop模式
OpenCV: 3.4
一、安装第三方依赖库
yum install -y wget
yum install -y unzip
yum install -y gcc
yum install -y cmake
yum install -y zlib-devel
yum install -y bzip2-devel
yum install -y openssl-devel
yum install -y ncurses-devel
yum install -y sqlite-devel
yum install -y gtk*
yum install -y python
yum install -y numpy
yum install -y gcc gcc-c++ gtk+-devel libjpeg-devel libtiff-devel jasper-devel libpng-devel zlib-devel cmake
yum install -y git gtk2-devel pkgconfig numpy python python-pip python-devel gstreamer-plugins-base-devel libv4l ffmpeg-devel mplayer mencoder flvtool2
yum install -y libdc1394
二、下载Opencv
opencv可以通过在线的方式直接下载,下载命令如下:
wget https://github.com/opencv/opencv/archive/refs/heads/3.4.zip
有时考虑到网络不文档可能会下载不成功,也可以本地下载后拷贝到Centos系统下。
三、编译Opencv
1)新建一个空文件夹,把OpenCV的压缩包拷贝到该文件夹下,然后解压并重命名解压后的文件夹,命令如下:
unzip opencv-3.4.zip
mv opencv-3.4 opencv
2)新建一个编译目录build,并执行编译命令,命令如下:
mkdir build
cd ./build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=./ ../opencv
make -j4
make install
说明:=后面的./表示当前build文件夹目录,../opencv是解压后重命名的opencv源代码目录
make -j4:既然IO不是瓶颈,那CPU就应该是一个影响编译速度的重要因素了。用make -j带一个参数,可以把项目在进行并行编译,比如在一台双核的机器上,完全可以用make -j4,让make最多允许4个编译命令同时执行,这样可以更有效的利用CPU资源。配置的核素越多,j后面的数字可以相对越大,但也不能太大,要不然会出现编译卡死的现象。
3)创建连接文件
正确编译完成后,在build文件夹下的lib目录下生成cv2.so的文件,执行如下两条关联命令:
ln ./lib/cv2.so /usr/lib/python2.7/site-packages/
ln ./lib/cv2.so /usr/lib64/python2.7/site-packages/
会在/usr/lib/python2.7/和/usr/lib64/python2.7/两个目录下看到cv2.so的文件,则完成关联。
四、配置全局引用路径
在编译完成opencv后进行开发阶段,很多配置的都是编译后的绝对路径,后期如果移动编译后的目录,在开发代码中配置的opencv的路径也要跟着改动,因此在编译后配置全局路径就显得很有必要了。要不然在开发阶段CMakeLists.txt里面配置
include_directories( ${OpenCV_INCLUDE_DIRS} )在编译是会提示找不到opencv路径的错误。目录如下:把编译后的build目录下的内容拷贝到/usr/local/下并命名为opencv,命令如下:
cp -rf ./build /usr/local/opencv
通过以上几步则完成了opencv的编译及开发配置