一、下载和安装
1、下载网址:https://opencv.org/ 注意系统版本。
2、linux下依赖库安装
正式安装opencv之前,需要安装好opencv编译的依赖包,列举如下:
(1)cmake
apt-get install cmake
(2)essential
在ubuntu环境下: apt-get install build-essential
在centos环境下: yum install gcc gcc-c++ kernel-devel 安装gcc-essential
yum install gcc-gfortran 安装gfortran
安装完后,可以用 gcc -v 、g++ -v 和 fortran -v 查看版本。
(3)gtk2.0
在ubuntu环境下:apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
在centos环境下:(安装git)yum install git
(安装gtk 图形化界面库)安装必要文件包:yum install libgnomeui-devel
安装必要组件:yum install gtk2 gtk2-devel gtk2-devel-docs
安装可选组件:yum install gnome-devel gnome-devel-docs
-
gtk测试用例
-
-
#include <gtk/gtk.h>
-
-
int main(int argc, char *argv[])
-
{
-
GtkWidget *windows;
-
gtk_init(&argc,&argv);
-
-
windows = gtk_window_new(GTK_WINDOW_TOPLEVEL);
-
gtk_widget_show(windows);
-
-
gtk_main();
-
-
return
0;
-
}
-
-
-
gcc -o
1
1.c `pkg-config --libs --cflags gtk+
-2.0`
-
./
1 若出现对话框表示成功!
(4)pkg-config
-
cd /opt/pkg wget http:
//pkgconfig.freedesktop.org/releases/pkg-config-0.29.2.tar.gz
-
-
tar xvf pkg-config
-0.29
.2.tar.gz cd pkg-config
-0.29
.2
-
-
./configure --prefix=/usr/local/pkg-config --with-internal-glib
-
-
make
-
-
make instal
-
-
验证查看环境十分OK pkg-config --version
3、ffmpeg组件安装
主要依赖的有 libavcodec-dev libavformat-dev libswscale-dev,这些库都是FFmpeg 开源库中的,可以通过以下两种方法获得。
(1)直接安装ffmpeg-devel
-
1、先安装epel扩展源
-
yum -y
install epel-
release
-
-
2、安装其他扩展源
-
yum localinstall –nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-
release
-7.noarch.rpm
-
yum localinstall –nogpgcheck https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-
release
-7.noarch.rpm
-
rpm –
import
http://li.nux.ro/download/nux/RPM-GPG-
KEY-nux.ro
-
rpm -Uvh
http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-
release
-0
-1.el7.nux.noarch.rpm
-
-
3、最后安装ffmpeg
-
yum -y
install ffmpeg ffmpeg-devel
-
-
4、测试ffmpeg有没有安装成功
-
输入命令ffmpeg -
version
(2)编译源码ffmpeg
-
1、下载:在官网上下载FFmpe源码包,解压;
-
-
2、配置:生成makefile,具体如下:./configure --enable-libopencv --enable-swscale --enable-avresample--enable-gpl --enable-shared;
-
-
3、编译:执行make –j8进行并行编译;
-
-
4、安装:执行make install。
-
-
5、添加ffmpeg到环境变量执行如下命令:
-
-
PKG_CONFIG_PATH=$PKG_CONFIG_PATH
:/usr/local/lib/pkgconfig
-
-
export PKG_CONFIG_PATH
-
-
备注:如果不执行,Opencv在cmake的时候不能找到对应的ffmpeg库
4、安装opencv其他依赖项
-
yum
install python-devel numpy
-
yum
install libdc1394-devel
-
yum
install libv4l-devel
-
yum
install gstreamer-plugins-base-devel
5、编译和安装opencv
(1)opencv源码编译和安装
-
$cd opencv
-
$madir build
-
$cd build
-
-
$cmake -D WITH_TBB=
ON -D WITH_EIGEN=
ON ..
-
$cmake -D BUILD_DOCS=
ON -D BUILD_TESTS=
OFF -D BUILD_PERF_TESTS=
OFF -D BUILD_EXAMPLES=
OFF ..
-
$cmake -D WITH_OPENCL=
OFF -D WITH_CUDA=
OFF -D BUILD_opencv_gpu=
OFF -D BUILD_opencv_gpuarithm=
OFF -D BUILD_opencv_gpubgsegm=
OFF -D BUILD_opencv_gpucodec=
OFF -D BUILD_opencv_gpufeatures2d=
OFF -D BUILD_opencv_gpufilters=
OFF -D BUILD_opencv_gpuimgproc=
OFF -D BUILD_opencv_gpulegacy=
OFF -D BUILD_opencv_gpuoptflow=
OFF -D BUILD_opencv_gpustereo=
OFF -D BUILD_opencv_gpuwarping=
OFF ..
-
$cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
-
-
$make
-
-
$sudo make install
(2)opencv配置与加载动态库
-
(
1)路径添加和加载
-
在centos7 系统中,
-
cd /etc/ld.so.conf.d
-
添加opencv.conf
-
添加opencv编译产生的lib库路径到opencv.conf中,如下命令:
-
/bin/bash -c
'echo "/opt/opencv/lib64" > /etc/ld.so.conf.d/opencv.conf'
-
-
加载 ldconfig
-
-
注意在其他linux系统中可能有区别,但是意在让系统知道opencv lib库的路径,能够完成动态加载。
-
-
(
2)添加PATH
-
输入命令gedit /etc/bashrc
-
在文件末尾另起行加入PKG_CONFIG_PATH=$PKG_CONFIG_PATH
:/usr/local/lib/pkgconfig
-
export PKG_CONFIG_PATH
-
保存退出
-
输入source /etc/bashrc使配置生效
-
输入updatedb更新数据库
-
-
(
3)pkg-config配置
-
默认的pkg搜索链接路径/usr/lib/pkgconfig,需要将opencv.pc拷贝到pkg的默认路径下。
-
cp /opt/opencv/lib64/pkgconfig/opencv.pc /usr/lib/pkgconfig
到此,opencv的编译、安装和配置就算完成了,是不是很麻烦,装的时候想打人的心都有了。可以通过查看cmake时,ffmpeg是否添加编译成功,以此验证opencv是否已经安装成功。
6、opencv测试
opencv源码库samples 路径下有丰富的测试用例。
-
cd ../samples/cpp/example_cmake
-
-
make
-
-
./opencv_example
执行后出现如下对话框,恭喜你,安装成功了。
看到网上还有其他的测试用例,也添加到这里。
-
//test.cpp
-
#include <opencv2/core/core.hpp>
-
#include <opencv2/highgui/highgui.hpp>
-
#include <opencv2/imgproc/imgproc.hpp>
-
-
int main(int argc,char *argv[])
-
{
-
cv::Mat image;
-
image=cv::imread(
"1.png");
-
-
cv::namedWindow(
"1.png");
-
cv::imshow(
"1.png",image);
-
-
cv::waitKey();
-
return
0;
-
}
-
-
g++ -g -o test test.cpp `pkg-config --cflags --libs opencv`
-
随便找张图,有对话框弹出原图。(特地找了张治愈系)