简介与安装(了解安装OpenCV-Python)

image_1djjpg8fecn91bdegm51fjd1ud1m.png-41.5kB

相信大部分人知道的OpenCV都是用C++来开发的,那为什么我推荐使用Python呢?

本教程翻译自OpenCV官方英文教程,我按照使用度和难易度翻译,重新编写了大量原创内容,将不常用和较难的部分写成番外篇,浅显易懂,很easy的辣。每节的源码、图片和练习题答案均可在引用处找到噢(⊙o⊙)

Python照样快!

众所周知,虽然 Python 语法简洁,编写高效,但相比 C/C++ 运行慢很多。然而 Python 还有个重要的特性:它是一门胶水语言!Python 可以很容易地扩展 C/C++。OpenCV-Python 就是用 Python 包装了 C++ 的实现,背后实际就是 C++ 的代码在跑,所以代码的运行速度跟原生 C/C++ 速度一样快。

我举两个简单的例子就一目了然了:一个是读入图片,另一个是调整图片的对比度和亮度:

image_1djjpgvnradi17lg18c5dpsk1n13.png-169.5kB

可以看到某些情况下 Python 的运行速度甚至好于 C++,代码行数也直接少一半多!另外,图像是矩阵数据,OpenCV-Python 原生支持 Numpy,相当于 Python 中的 Matlab,为矩阵运算、科学计算提供了极大的便利性。

人工智能浪潮

近些年,人工智能相关技术的快速发展大家有目共睹,不必多说。在编程语言方面,更多人希望的是具备高效开发效率、跨平台、高度扩展性的语言,尤其是一些 AI 巨头优先推出支持 Python 语言的深度学习框架,如 Facebook 的 PyTorch、Google 的 Tensorflow 等,可以说 Python 是名副其实的“网红语言”了。

image_1djjphl2h1i4r1vp18ucrupron1g.png-77.2kB

从 TIOBE 编程语言排行榜也可以看到,Python 发展迅猛,已经逼近 C++ 的份额。这个排行榜每月更新,我就不截图了,编写时 TOP5:Java/C/C++/Python/C#。

人生苦短,我用Python

  • 如果你搞科研用,果断放弃C++(Matlab?出门左拐)
  • 如果你是快速原型开发,验证方案,果断放弃C++
  • 如果你懒的配置OpenCV环境,果断放弃C++
  • 如果你的程序是在支持Python的较高硬件环境下运行,果断放弃C++
  • 如果你担心Python写不了界面,那是你的问题o_o ….
  • 除非你的程序是MFC或已经用C++编写其他模块或是嵌入式设备,那就用C++吧

“人生苦短,我用Python!!!”

安装

本教程编写时使用的软件版本是:OpenCV 3.x,Python 3.x。

要安装OpenCV,只需cmd下的一条指令:

pip install opencv-python

pip 是 Python 的包管理器,如果你还没安装 Python,强烈推荐安装 Anaconda,它包含了大量的科学计算包,不用后期一个个安装。即使你已经装了 Python 也没有影响,Anaconda 相当于虚拟环境,互不干扰。

安装步骤

进入 Anaconda官网,下载最新版本的安装文件,速度比较慢的话,可以去清华开源镜像站。

  • Windows 版下载的是 exe 文件,双击可以直接安装,安装时记得勾选 Add Anaconda to my PATH environment variable,添加到环境变量中。
  • Linux 版下载的是 sh 文件,下载完成后,终端切换到下载目录,执行bash Anaconda3-xx.sh,Linux版也会提示添加环境变量,记得输yes就行。

安装测试

Python 安装好之后,可以在 cmd 中输入 python --version 来查看 Python 的版本信息。对于OpenCV,打开 Python 的开发环境,输入 import cv2,运行没有报错说明一切正常。要查看OpenCV 的版本,可以:

print(cv2.__version__) # '3.4.1'

Python 开发环境我用的是 Visual Studio Code,也可以用 PyCharm/Atom/Jupyter Notebook(Anaconda自带),或者直接在命令行里敲,自己习惯就行。

常见问题

  1. pip 识别不了:环境变量中没有pip的目录,找到pip目录,添加到用户(或系统)变量的path中。
  2. 下载速度很慢:可到此处下载离线版。下载完成后,cmd切换到下载目录,输入 pip install 文件名 安装。

学习软件

为了便于学习OpenCV,我写了一个教学款软件 LearnOpenCVEdu,目前只开发了一部分功能,有兴趣的童鞋可以支持一下噢?

image_1djjpil1u6jvbba11mm103h10gk1t.png-200.5kB

引用

本节源码

网络资料

书籍

名校视觉研究所/课程

Last modification:August 31, 2019
如果觉得我的文章对你有用,请随意赞赏