- 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.4 在 Debian(Ubuntu)中配置 OpenCV-Python
注
原英文文档无此章节。
Debian 及由其派生出的 Ubuntu 作为普及度较广的 Linux 发行版之一,应该有一篇针对 Debian 家族的 OpenCV-Python 环境配置的文档。
本文档采用 OpenCV 3.3+Python 3的配置,因为 Python3 是 Python 的未来,教程其他部分中有少部分代码只能用于 Python 2(虽然将其改成合法Python 3代码十分方便),请使用者注意。
如果你坚持要使用 Python 2,只需将 CMake 这里的选项稍作修改即可。
目标
在这个教程中:我们将会学习如何在 Debian(Ubuntu)环境下安装 OpenCV-Python。下面的步骤在 Ubuntu 17.04和(Docker 中的)Debian stretch 下通过了测试。
直接使用 pip 安装
由于不同的环境下默认用户是否是root的情况不同,下面的代码中不会添加sudo,请在得到权限不足的错误时自行添加sudo。
首先安装python环境
apt update
apt install python3 python3-pip
然后直接
pip3 install opencv-python
简单粗暴
从源码编译安装OpenCV
虽然在Debian中利用包管理器等方式安装OpenCV确实可行,但这样可能会出现各种奇怪的支持错误,因此我们下面会讲解如何从源码安装OpenCV。
下面的依赖基本都是必须的,如果有对其他OpenCV扩展功能的需求,请自行安装依赖并修改CMake
选项。
由于不同的环境下默认用户是否是root的情况不同,下面的代码中不会添加sudo,请在得到权限不足的错误时自行添加sudo。
安装依赖
apt update
apt install g++ cmake python3 python3-dev python3-pip pkg-config
pip3 install numpy
如果你需要cv2.imshow()
等GUI功能,需要安装GTK-dev,如果你准备通过其他方式绘制图形到屏幕上(如matplotlib
)或者不需要(又或是不能,如要安装在docker容器中),可以忽略下面这行命令:
apt install libgtk2.0-dev
下载源码包
有两种下载源码包的方法:
获得 sorceforge 上的发行版源码
# 使用wget下载源码压缩包
apt install wget unzip
wget https://nchc.dl.sourceforge.net/project/opencvlibrary/opencv-unix/3.3.1/opencv-3.3.1.zip
wget https://github.com/opencv/opencv_contrib/archive/3.3.1.zip
# 解压备用
unzip opencv-3.3.1.zip
unzip 3.3.1.zip
从 GitHub 上拉取最新版本的源码(如果你要为 OpenCV 贡献代码,你需要选择此项)
apt install git
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
准备构建
进入下载到的源码文件夹
cd opencv-3.3.1 # 如果使用的是GitHub上的源码,那文件夹就叫opencv
建立一个build文件夹,并进入它
mkdir build
cd build
利用 cmake 配置安装
请注意 ../../opencv_contrib-3.3.1/modules 这部分要根据你的 opencv_contrib 文件夹的路径进行调整
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_C_EXAMPLES=OFF \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D BUILD_EXAMPLES=OFF \
-D BUILD_opencv_python3=ON \
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-3.3.1/modules \
-D BUILD_TESTS=OFF \
-D BUILD_PERF_TESTS=OFF \
-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 ..
如果你需要基于 GTK 的 GUI 功能
cmake -D WITH_GTK=ON ..
还有其他许多标志和设置。 留给你进一步探索。
构建&安装
make
make install # (这里需要root权限)
这样应该就装好了。
测试
打开一个Python控制台,试试看:
>>> import cv2
>>> cv2.__version__
如果没有出现错误,而且正确的打印出了你安装的 OpenCV 版本号,那恭喜你成功了!
更多资源
如果你在安装了 GTK 的 GUI 支持,但在用 imshow
显示图像时遇到了类似下面这样的问题:
/usr/share/themes/Ambiance/gtk-2.0/apps/mate-panel.rc:30: error: invalid string constant "murrine-scrollbar", expected valid string constant
那么你可以打开/usr/share/themes/Ambiance/gtk-2.0/apps/mate-panel.rc,找到 murrine-scrollbar
并将其替换为 scrollbar
,即可解决问题。
练习
在你的 Debian(Ubuntu)机器上从源码构建安装 OpenCV-Python。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论