CentOS7配置opencv for python && eclipse c/c++[更新]
更改前的安装过程有些问题,主要是ffmpeg-devel的安装部分,这里重新说一下
两种安装方法:
第一种,直接:
# yum install numpy opencv*
这种方法安装了之后,能够在python中使用opencv(import cv2),但是如何在C++环境中使用opencv,我还不清楚
第二种方法,从源码安装
1, 安装 opencv 的依赖项
google: install opencv for python in fedora
发现:
http://docs.opencv.org/trunk/doc/py_tutorials/py_setup/py_setup_in_fedora/py_setup_in_fedora.html
按照上面所述,开始安装 opencv 的依赖项
python 中的依赖项:
yum install cmake
yum install python-devel numpy
yum install gcc gcc-c++
opencv 的依赖项:
yum install gtk2-devel
yum install libdc1394-devel
yum install libv4l-devel
yum install ffmpeg-devel
yum install gstreamer-plugins-base-devel
注意:
安装上面的依赖项之前,需要先把epel7 ,rpmforge7,pbone源安装好。
截至到我更新这篇博文为止,epel7以及rpmforge7都还没有正式版,还是beta版,自己在网上找找。
pbone源是一个需要付费的源,但是注册了会提供15天的试用。另外,ffmpeg-devel这个依赖项在pbone的centos源中还没有,因此,在安装pbone源时,操作系统选Red Hat EL7,不要选CentOS7(至于,RHEL与CENTOS软件通用性的程度如何,此处不做讨论,笔者在安装过程中,没有发现因为是CentOS系统用RHEL的Pbone源出现什么问题)。
软件源配置好了之后,直接各种yum就将依赖项都安装好了。
还有一些其他可选的依赖项,大家自己视情况安装吧!
2, 安装 opencv
在网上下载 opencv 源码
解压后
# cd opencv # madir release # cd release # 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
wait long long time ......
# make install
安装完毕
3, python 路径配置
# cp /usr/local/lib/python2.7/site-packages/cv2.so /usr/lib/python2.7/site-packages
# export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages
然后打开 python,import cv2 ,发现已经 OK 了
发现 import cv2 已经无误了!!!
It's so beautiful!!!
4, opencv 环境变量配置
(eclipse 的安装以及 C/C++的安装,此处不讲)
切换到 root 用户# vi /etc/ld.so.conf.d/opencv.conf
加入/usr/local/lib
# ldconfig
# cd 返回默认目录
# vi .bashrc 在最后加上 PKG_CONFIG_PATH=/usr/local/lib/pkgconfig 和 export PKG_CONFIG_PATH 两行
# reboot
5, 配置 eclipse
重启后,打开 eslipse,新建 C++工程
工程建好后,进入
Project->Properties->C/C++ Build->Settings
在 GCC C++ Compiler->includes
include paths 中加入:
/usr/local/include/opencv
在 GCC C++ Linker->Libraries 里
Library search path 里,加入
/usr/local/lib
Libraries 里加入
opencv_core; opencv_imgproc; opencv_highgui; opencv_ml; opencv_video; opencv_features2d; opencv_calib3d; opencv_objdetect; opencv_contrib; opencv_legacy; opencv_flann
下面写入测试代码:
#include <iostream> #include <cv.h> #include <highgui.h> using namespace std; int main ( int argc, char **argv ) { IplImage *pImg = cvLoadImage("/home/zh/1.jpg"); cvNamedWindow("Image", 1); cvShowImage("Image", pImg); cvWaitKey(0); cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!! return 0; }
如果正确显示图片,那就是无误了。
ELSE:
发现 eclipse 一个小小的坑爹的地方,命名代码没有错误,他还总是画红色波浪线,说有错误,说不存在该变量或者啥的,但是运行是无误的,如下图示:
对 eclipse 甚是无语