anaconda 安装opencv_【视觉与图像】Python+OpenCV教程入门篇

了解安装OpenCV-Python01简介

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

cc97b8912e668d97e2145103bc43cda8.png

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

02

Python照样快!

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

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

e9f1e1c7b13ca80380cb9dc8170ceaf9.png

668621c4e75823e6310a3767732f604d.gif

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

03

人工智能浪潮

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

df1f5cbe42738497f964e74840f47705.png

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

04

人生苦短,我用Python

  • 如果你搞科研用,果断放弃C++(Matlab?出门左拐)

  • 如果你是快速原型开发,验证方案,果断放弃C++

  • 如果你懒的配置OpenCV环境,果断放弃C++

  • 如果你的程序是在支持Python的较高硬件环境下运行,果断放弃C++

  • 如果你担心Python写不了界面,那是你的问题o_o ….

  • 除非你的程序是MFC或已经用C++编写其他模块或是嵌入式设备,那就用C++吧

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

05

安装

本教程编写时使用的软件版本是: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就行。

06

安装测试

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自带),或者直接在命令行里敲,自己习惯就行。

07

常见问题

  1. pip识别不了:环境变量中没有pip的目录,找到pip目录,添加到用户(或系统)变量的path中。

  2. 下载速度很慢:可到此处下载离线版。下载完成后,cmd切换到下载目录,输入 pip install 文件名 安装。

08

学习软件

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

745ae85b0a20f5b640034721bfcaea24.png

引用

  • 本节源码 http://t.cn/EqNCWbb

网络资料

  • OpenCV Docs官方文档  https://docs.opencv.org/

  • OpenCV 官方Github https://github.com/opencv/opencv

  • 官方英文教程:OpenCV-Python Tutorials http://t.cn/R5nr2Ip

  • LearnOpenCV、LearnOpenCV Github  http://t.cn/Rfr0E5c

  • Numpy Quickstart Tutorial https://docs.scipy.org/doc/

  • OpenCV 中文教程 http://t.cn/zOvAjYG

书籍

  • Programming Computer Vision with Python、中文书

  • https://www.pyimagesearch.com/practical-python-opencv/

名校视觉研究所/课程

  • 卡内基梅隆大学

  • 多伦多大学

番外篇1:代码性能优化

学习如何评估和优化代码性能。

完成一项任务很重要,高效地完成更重要。图像处理是对矩阵的操作,数据量巨大。如果代码写的不好,性能差距将很大,所以这节我们来了解下如何评估和提升代码性能。

0 1

评估代码运行时间

d1b9ec611f9529bee3483b58bbd4934a.png

这段代码就是用来测量程序运行时间的(单位:s),其中cv2.getTickCount()函数得到电脑启动以来的时钟周期数,cv2.getTickFrequency()返回你电脑的主频,前后相减再除以主频就是你代码的运行时间(这样解释并不完全准确,但能理解就行)。另外,也可以用Python中的time模块计时:

48d0f5fef291f546c30563e73b725fff.png

经验之谈:如果你使用的是IPython或Jupyter Notebook开发环境,性能分析将会非常方便,详情请参考:Timing and Profiling in IPython

02

优化原则

数据元素少时用Python语法,数据元素多时用Numpy

2f3efcc0b3171231b04ccdfe8b8fc138.png

所以Numpy的运行速度并不一定比Python本身语法快,元素数量较少时,请用Python本身格式。

  • 尽量避免使用循环,尤其嵌套循环,因为极其慢!!!

  • 优先使用OpenCV/Numpy中封装好的函数

  • 尽量将数据向量化,变成Numpy的数据格式

  • 尽量避免数组的复制操作

引用

  • 本节源码 http://t.cn/EqNpImZ

  • Python Optimization Techniques http://t.cn/8kk3LIU

  • Timing and Profiling in IPython http://t.cn/EqNpmmX

  • Advanced Numpy http://t.cn/EqN0zhX


天池宝贝们有任何问题,可在
、评论下方或加入钉钉群@我留言,小天会认真倾听每一个你的建议!

3a7daaf0c531604769f3908d4d7f755a.png

25c05dc8de262007899e7ee302436066.gif

  • 报名Apache RocketMQ 开发者沙龙@上海的小伙伴们们们~

  • 是什么比赛让顶级算法大佬贡献了这波baseline?

  • 深度 | 线下场景的客流数字化探索与应用

  • 向限量款低头,天池用户专享GPU卡,惊爆价仅需原价十分之一!

  • 【推荐解决方案四部曲】请查收——第三部:基于深度学习模型Wide&Deep的推荐

  • Alibaba Cluster Data 开放下载:270 GB 数据揭秘你不知道的阿里巴巴数据中心

0f07a58c9f0e9d1648293b7856860d13.gif bf8164877ba084b0f7b96c7b6923640d.png

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值