python opencv 安装

有人称安装opencv是个玄学问题。折腾了两天才装好,中间走了各种歪路,终于整好了,赶紧记录下来。

最终还是靠官网文档装好的,

https://opencv.org/releases.html

https://docs.opencv.org/3.3.0/dd/dd5/tutorial_py_setup_in_fedora.html

第一步,安装numpy 和opencv:

$ yum install numpy   #这步如果装了可以忽略

$ yum install opencv*

完成了么?可能完成了也可能没完成。

import cv2
cap = cv2.VideoCapture(‘xxx.avi/flv/mpg’)
print(cap.read())

如果 输出 (False, None) ,那么恭喜你,开始下面步骤吧。(如果不需要视频处理功能的话,可能就够用了。)

这一步安装完成的一般都是低版本的,视频支持不完善,所有就有了,下面的步骤。

 

第二步,各种依赖:

yum install cmake
yum install python-devel numpy
yum install gcc gcc-c++
yum install gtk2-devel
yum install libdc1394-devel
yum install libv4l-devel
yum install ffmpeg-devel
yum install gstreamer-plugins-base-devel
yum install libpng-devel
yum install libjpeg-turbo-devel
yum install jasper-devel
yum install openexr-devel
yum install libtiff-devel
yum install libwebp-devel
yum install tbb-devel
yum install eigen3-devel
yum install doxygen (貌似是文档相关的可以不装)
不要嫌多,一个一个弄,不然还得回来。这里大多数包安装应该都没啥问题, 个别的 ffmpeg-devel 会出现,找不到这个包的情况。
执行下面两个操作扩展源。
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-5.el7.nux.noarch.rpm
然后在 yum install ffmpeg ffmpeg-devel ,中间引文网络原因,各种超时,各种重试,最终还是安装成功了。

第三步,开始安装opencv

用git下载
yum install git
git clone https://github.com/opencv/opencv.git
或者是
wget https://github.com/opencv/opencv/archive/3.3.0.zip
unzip 3.3.0.zip

然后进入该目录, 注意直接cmake 是不可以的,回报个错误。需要先建个目录

mkdir build
cd build

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..

make & make instal

经过漫长的等待。 完成。

把cv2.so 文件考到python所在目录的包文件里覆盖原来的cv2.so

mv /usr/local/lib/python2.7/site-packages/cv2.so /usr/lib/python2.7/site-packages

环境变量这一步坑了,我好久。从网上说是要找一个 libopencv_ffmpeg.so 的文件就可以了,但是死活找不到这个文件,又重新编译了一遍还是没有。还有一个坑不是在同一个终端执行的测试不行。

export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages

最后加上这一部就可以了。

开始的测试代码最后执行 输出

(True, array([[[216, 197, 178],。。。。 [161, 176, 187]]], dtype=uint8))