- 1. 学习如何在你的电脑上配置OpenCV-Python环境!
- 1.1 开始了解OpenCV-Python
- 1.2 在 Windows 下安装 OpenCV-Python
- 1.3 在 Fedora 环境下安装 OpenCV-Python
- 1.4 在 Debian(Ubuntu)中配置 OpenCV-Python
- 1.5 在Docker中安装OpenCV-Python
- 1.6 在树莓派配置OpenCV-Python
- 2. OpenCV中的GUI功能
- 2.1 开始使用图像
- 2.2 开始使用视频
- 2.3 OpenCV 中的绘图函数
- 2.4 以鼠标为画笔
- 2.5 用滑块控制条做调色板
- 3. OpenCV中的GUI功能
- 3.1 图片基本操作
- 3.2 图像算术操作
- 3.3 性能评估与改进技巧
- 4. OpenCV中的图像处理
- 4.1 更换颜色空间
- 4.2 对图像进行几何变换
- 4.3 图像二值化处理
- 4.4 平滑图像
- 4.5 形态学转换
- 4.6 图像梯度
- 4.7 Canny边缘检测
- 4.8 图像金字塔
- 4.9.1 直方图:查找,绘制,分析
- 4.9.2 直方图均衡化
- 4.9.3 二维直方图
- 4.9.4 直方图反投影
- 4.10 OpenCV中的图像变换
- 4.10.1 傅立叶变换
- 4.11 模板匹配
- 4.12 霍夫直线变换
- 4.13 霍夫圆变换
- 4.14 基于分水岭算法的图像分割
- 4.14 使用 GrabCut 算法交互式前景提取
- 5. 特征检测和描述符
- 5.1 理解特征
- 5.2 Harris 角点检测
- 5.3 Shi-Tomasi 角点检测 & 适合用来跟踪的特征
- 5.4 介绍SIFT(尺度不变特征转换)
- 5.5 介绍SURF(加速稳健特征)
- 5.6 角点检测的FAST算法
- 5.7 BRIEF特征点描述算法
- 5.8 ORB 特征描述符(Oriented FAST and Rotated BRIEF)
- 5.9 特征匹配
- 5.10 特征匹配和使用单应性匹配来搜索物体
- 6. 视频分析
- 6.1 Meanshift和Camshift
- 6.2 光流
- 6.3 背景分割
- 7. 相机校准和3D重建
- 7.1 相机校准
- 7.2 姿势估计
- 7.3 极线几何
- 7.4 来自立体图像的深度图
- 8. 机器学习
- 8.1 K-最近邻算法
- 8.1.1 了解k-最近邻算法
- 8.1.2 使用kNN进行手写字符的OCR
- 8.2 支持向量机(SVM)
- 8.2.1 理解SVM
- 8.2.2 使用SVM的手写数据的OCR
- 8.3 K-Means聚类
- 8.3.1 理解 K-Means 聚类
- 8.3.2 OpenCV中的K-Means聚类
- 9. 计算摄影学
- 9.1 图像去噪
- 9.2 图像修复
- 9.3 高动态范围(HDR)
- 10. 目标检测
- 10.1 使用 Haar Cascades 的面部识别
- 11. OpenCV-Python 绑定
- 11.1 OpenCV-Python绑定如何工作?
1.3 在 Fedora 环境下安装 OpenCV-Python
目标
在这个教程中:我们将会学习如何在 Fedora 系统下安装 OpenCV-Python。下面的步骤在 Fedora 18 (64-bit) 和 Fedora 19 (32-bit) 下通过了测试。
介绍
OpenCV-Python 可以通过两种方式安装到 Fedora 上:
- 安装 Fedora 软件包库中的预编译二进制文件
- 从源代码编译
在这一教程中,我们将展示这两者。
另一个重要的事是所需的依赖库。 OpenCV-Python 只需要 Numpy(还有些其他的非必须依赖,我们将在后面看到)。 在本教程中,我们也会使用 Matplotlib 进行了一些简单而又很好用的图片显示(我觉得这比OpenCV自带的图片显示功能相比好多了)。 Matplotlib 是可选的,但我们强烈建议使用这个库。 同样,我们也会用到 IPython,一个交互式的 Python 终端,我们也强烈推荐它。
从 Fedora 软件包库中的预编译二进制文件中安装 OpenCV-Python
在终端下使用下面的命令安装下面所有的包(需要 root):
$ yum install numpy opencv*
打开 Python IDLE (或 IPython)并在 Python 控制台中输入:
>>> import cv2
>>> print(cv2.__version__)
如果输出被顺利的打印在屏幕上,并且没有报错的话,那么祝贺你,安装成功了!
这种安装方式相当简单,但是有一个问题,yum 的仓库里也许并不总是包含最新的 OpenCV 版本。比如,在编写这个教程时,yum仓库中的OpenCV版本是2.4.5,但最新的OpenCV版本是2.4.6。对于 Python API,最新版本将总是包含更好的支持。 另外,根据驱动程序,ffmpeg,gstreamer 软件包等的不同,可能会出现相机支持,视频播放等问题。
所以我个人偏好下一个方法,就是从源码编译安装 OpenCV。而且如果未来某一时刻你想为OpenCV项目做些贡献,那你就一定需要这么做。
从源码编译安装 OpenCV
从源码编译起初可能看起来有点复杂,但是一旦你成功了,也就会觉得没有什么复杂的了。
首先,我们将安装一些依赖项。 有些是必要的,有些是可选的。如果你不想要一些可选的依赖关系,你可以不理睬它们。
强制性依赖
我们需要 CMake 来配置安装,GCC 来编译代码,Python-devel 和 Numpy 来创建 Python 扩展等等。
yum install cmake
yum install python-devel numpy
yum install gcc gcc-c++
接下来我们需要 GTK 来支持 GUI 功能、照相机支持(libdc1394、libv4l)、动画媒体支持(ffmpeg, gstreamer)等等。
yum install gtk2-devel
yum install libdc1394-devel
yum install libv4l-devel
yum install ffmpeg-devel
yum install gstreamer-plugins-base-devel
可选依赖
上面的依赖关系足以让你在你的的fedora机器上安装OpenCV。 但根据您的要求,您可能需要一些额外的依赖关系。 下面给出了这样的可选依赖项的列表。 你可以不理睬它或安装它,这由你自己决定
OpenCV 支持 PNG,JPEG,JPEG2000,TIFF,WebP等图像格式,但这些支持可能有点旧了。 如果你想获得最新的库,你可以安装这些格式的开发文件。
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
英特尔的线程构建模块(TBB)可以将一些OpenCV函数并行化。 但是如果你想启用它,你需要先安装TBB。 (如果你要开启TBB,那么在使用CMake配置安装时,不要忘记传递-D WITH_TBB = ON。更多细节将在下面描述。)
yum install tbb-devel
OpenCV 使用另一个库 Eigen 来优化数学运算。 所以如果你的系统中安装了Eigen,你可以使用它。 (同样在使用CMake配置安装时,请不要忘记传递-D WITH_EIGEN = ON。更多细节将在下面描述。)
yum install eigen3-devel
如果你想构建文档(是的,你可以创建离线版本HTML格式OpenCV的完整官方文档,并带有完整的搜索功能,以便在有任何问题时不必访问互联网,而且查询相当快!), 你需要安装Doxygen(一个文档生成工具)。
yum install doxygen
下载 OpenCV 源码包
接下来我们要下载 OpenCV。 您可以从sourceforge 网站下载最新版本的OpenCV。 然后解压缩文件。
或者你可以从OpenCV的github仓库下载最新的源代码。 (如果您想为OpenCV做出贡献,请选择此选项,而且这也将始终保持您的OpenCV处于最新状态)。 为此,您需要先安装Git。
yum install git
git clone https://github.com/opencv/opencv.git
它将在主目录(或您指定的目录)中创建一个OpenCV文件夹。 根据您的网络连接,clone可能需要一些时间。
现在打开终端窗口并进入下载的OpenCV文件夹。 创建一个新的build文件夹并进入它。
mkdir build
cd build
配置并安装
现在我们安装了所有必需的依赖关系,让我们安装OpenCV。 安装必须使用CMake进行配置。 它指定要安装哪些模块,安装路径,要使用哪些附加库,是否编译文档和示例等。下面的命令通常用于配置(从build文件夹执行)。
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
它指定构建类型为“发布模式”,安装路径为/usr/local。 在每个构建选项前注意-D,并以..结束。 简单来说,用下面的格式:
cmake -D <flag> ..
您可以指定任意多个标志,但每个标志之前都应该有-D。
在本教程中,我们安装了带有TBB和Eigen支持的OpenCV。 我们也将构建离线文档,但是我们不构建性能测试和示例。 我们也禁用了GPU相关模块(因为我们使用OpenCV-Python,我们不需要与GPU相关的模块,这也为我们节省了一些编译时间)。
(下面的所有命令都可以在一个cmake语句中完成,但是为了更容易理解,这里将其分开。)
开启 TBB 和 Eigen 支持
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 ..
禁用 GPU 相关的模组
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 ..
每次输入cmake语句时,都会打印出最终的配置设置。 在最后的设置中,确保以下字段都被填充好了(下面是我得到的配置的一些重要部分)。 这些字段也应在您的系统中适当填写。 否则就会发生一些问题。 所以请检查您是否正确执行了上述步骤。
-- GUI:
-- GTK+ 2.x: YES (ver 2.24.19)
-- GThread : YES (ver 2.36.3)
-- Video I/O:
-- DC1394 2.x: YES (ver 2.2.0)
-- FFMPEG: YES
-- codec: YES (ver 54.92.100)
-- format: YES (ver 54.63.104)
-- util: YES (ver 52.18.100)
-- swscale: YES (ver 2.2.100)
-- gentoo-style: YES
-- GStreamer:
-- base: YES (ver 0.10.36)
-- video: YES (ver 0.10.36)
-- app: YES (ver 0.10.36)
-- riff: YES (ver 0.10.36)
-- pbutils: YES (ver 0.10.36)
-- V4L/V4L2: Using libv4l (ver 1.0.0)
-- Other third-party libraries:
-- Use Eigen: YES (ver 3.1.4)
-- Use TBB: YES (ver 4.0 interface 6004)
-- Python:
-- Interpreter: /usr/bin/python2 (ver 2.7.5)
-- Libraries: /lib/libpython2.7.so (ver 2.7.5)
-- numpy: /usr/lib/python2.7/site-packages/numpy/core/include (ver 1.7.1)
-- packages path: lib/python2.7/site-packages
还有其他许多标志和设置。 留给你进一步探索。
现在使用make命令构建文件,并使用make install命令进行安装。 make install应该以root身份执行。
make
su make install
安装结束了,所有文件都安装在/usr/local/文件夹中。但是要使用它,你的Python应该能够找到OpenCV模块。你有两个选择。
将模块移动到Python路径中的任何文件夹:
可以通过在Python控制台中输入import sys; print(sys.path)
找到Python路径。它会打印出很多个路径。 将/usr/local/lib/python2.7/site-packages/cv2.so移动到这个文件夹中的任何一个。 例如:
su mv /usr/local/lib/python2.7/site-packages/cv2.so /usr/lib/python2.7/site-packages
但每次你重新安装OpenCV时你都需要这样做。
将 /usr/local/lib/python2.7/site-packages 加入 PYTHON_PATH:
只需要这样做一次。只需打开~/.bashrc然后增加下面这一行,然后登出再登录:
export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages
这样 OpenCV 就安装好了。打开一个 Python 控制台然后试试看 import cv2
。
要构建文档,只需要输入下面的命令:
make doxygen
然后打开 opencv/build/doc/doxygen/html/index.html,并在浏览器内给它加上一个书签即可。
练习
在你的 Fedora 机器上从源码构建安装 OpenCV-Python。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论