OpenCV入门(一)Python环境的搭建

OpenCV入门(一)Python环境的搭建

作者:Xiou

因为有点Python基础,并且Python是比较好入门的编程语言,所以,机器视觉后面打算在Python这个平台下进行。

Windows平台OpenCV的Python开发环境搭建

1、Python 的下载与安装

Python是一种面向对象的解释型计算机程序设计语言,是纯粹的自由软件,遵循GPL(General Public License)协议。Python语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进,强调“段落”形式,第一个公开版发行于1991年。

Python的万能之处在于能够把用其他语言制作的各种模块(尤其是C/C++制作的模块)很轻松地联结在一起,也常被称为“胶水语言”。常见的一种应用情形是使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分用更合适的语言改写,比如用C/C++重写,而后封装为Python可以调用的扩展类库。

人工智能技术的火热使得Python的支持库越来越丰富、强大。需要注意的是,在使用扩展类库时可能需要考虑平台问题,某些类库可能不提供跨平台的实现。下面简单介绍Python的下载和安装。

去Python官网下载Python https://www.python.org/

在这里插入图片描述
截止目前,Python已经更新到了3.11版本了。
Windows下找到64位的,这个根据自己的电脑配置而定。
在这里插入图片描述

以我下载的64位安装文件为例,把文件下载下来后双击文件名运行安装文件,打开安装界面,如图2-2所示。注意,勾选上最后一项Add Python 3.11 to PATH,可以把Python安装目录加入PATH环境变量中,再单击Install Now继续安装。

在这里插入图片描述

Python本身大小很小,所以我直接安在了C盘,选择默认的路径即可。

在这里插入图片描述
学过Python的人都知道,在cmd命令下>>>下直接输入代码后按回车键就可以立刻得到代码执行结果。试着输入“100+200”,再打印一下“hello,world”,如图所示:

在这里插入图片描述

最后,用exit()退出Python提示符。

2、在线安装OpenCV-python

Python安装完成后,我们可以继续搭建OpenCV开发环境。所谓在线安装,意思是安装过程中要连着外网(Internet),边下载边安装。

要用Python开发OpenCV程序,首先要为Python安装配置OpenCV开发包。安装Python相关功能包需要用到pip,它是一个通用的Python包管理工具,提供了对Python包的查找、下载、安装、卸载的功能。如果安装了Python 3.x,就会默认安装pip工具,其位置在Python的安装路径下。比如,我的Python包管理工具pip.exe的路径位于C:\Users\mjl\AppData\Local\Programs\Python\Python311\Scripts

这个路径是64位系统的,读者可以查找一下自己计算机pip.exe的路径。打开命令行窗口,输入“pip”,如果出现很多选项,就说明pip工作正常了,如图所示。

在这里插入图片描述
下面利用pip来安装OpenCV开发环境。安装OpenCV开发环境只需要下载NumPy、Matplotlib、opencv-python三个包。
其中,NumPy包是Python语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。Matplotlib包是Python中类似MATLAB的绘图工具,因为图像处理中有很多直方图统计之类的操作,所以选择了Matplotlib这个Python的第三方包。
安装NumPy和Matplotlib库,输入如下命令:

pip install numpy matplotlib

在这里插入图片描述
因为网络问题,这一步需要花点时间。

最后我们可以开始安装opencv-python了,输入如下命令:

pip install opencv-python

在这里插入图片描述
稍等片刻,opencv-python安装完成了,并且自动安装了当前比较成熟的最新版本,这里是4.。7.0.72。值得注意的是,不同时间段下载速度差异较大,强烈建议大家早上下载安装。至此,基于Python的OpenCV开发环境建立起来了,下面开始我们的第一个Python开发的OpenCV程序。可以使用记事本l来编辑这个程序。

在这里插入图片描述
在这里插入图片描述

保存成.py格式,双击运行即可。

首先利用import语句导入模块cv2(OpenCV是由很多个模块组成的,cv2是OpenCV中的一个基本模块)。使用as语法之后,只能通过as后面的名字来访问导入的模块,因此后面代码要用cv来代表cv2。
模块导入后,就可以使用cv2里的函数了。我们先利用函数cv.imread读取一个文件yd.jpg,该文件位于工程目录下(就是说和.py在同一目录下),cv.imread也可以传入一个绝对路径,比如d:\yd.jpg。

接着用函数imshow把图片显示在窗口中。函数waitKey用于等待用户按键,如果用户不按键,则图片窗口会一直显示,也就是函数waitKey一直处于阻塞状态不返回,直到用户按键才返回。waitKey结束后调用函数destroyAllWindows销毁所有窗口,这里就一个窗口,就是我们用namedWindow函数创建的窗口。

在这里插入图片描述
结果如图所示。运行成功,说明我们的opencv-python开发环境搭建成功了。

Windows平台PyCharm 下载与安装

和其他语言类似,Python程序的编写可以使用Windows自带的控制台进行,但是这种方式对于较为复杂的程序工程来说,容易混淆相互之间的层级和交互文件,因此在编写程序工程时建议使用专用的Python编译器PyCharm。

1、PyCharm的下载和安装

进入PyCharm官网的Download页面后可以选择不同的版本,如图所示,包括收费的专业版和免费的社区版。这里直接选择免费版本。
https://www.jetbrains.com/pycharm/

在这里插入图片描述

(2)文件下载下来后可以看到文件名为pycharm-community-2022。3.2.exe,双击运行进入安装界面,如图所示。选择好安装路径,直接单击Next按钮,安装即可。

或者按照下图指示安装。
在这里插入图片描述

在这里插入图片描述
安装完成后出现Finish按钮,单击该按钮安装完成,并重新启动计算机,如图2-15所示。

在这里插入图片描述

2.配置PyCharm开发OpenCV程序

单击桌面上新生成的图标进入PyCharm程序界面,首先是第一次启动的定位,如图所示。
创建一个新的工程,如图所示
在这里插入图片描述
进入界面配置选项,如图所示:

在这里插入图片描述

在这里插入图片描述
之后右击新建的工程名PyCharm,选择New→Python File命令新建一个helloworld.py文件,内容如图所示。

在这里插入图片描述

输入代码并单击菜单栏中的Run→run…运行代码,或者直接右击helloworld.py文件名,在弹出的快捷菜单中选择run命令。如果成功输出hello world,就表示PyCharm安装好了。

在这里插入图片描述
在这里插入图片描述
创建一个新项目后,在项目下执行OpenCV代码会有问题,提示CV2库找不到了。
在这里插入图片描述
此时需要对Python Interpreter做重新设置。

单击File→Setting,打开Setting窗口,如图所示,
在这里插入图片描述

单击左侧的Project:pythonProject→Python Interpreter菜单项,此时打开如图所示的Add Python Interpreter新窗口,选中Existing environment单选按钮,单击Interpreter项最右边的[插图]按钮,打开Select Python Interpreter窗口,按目录层次逐层查找Python开发包中的python.exe文件,找到后单击OK按钮,如图所示。

在这里插入图片描述

在这里插入图片描述

逐个窗口单击OK按钮,回到图所示的Setting窗口,在Python Interpreter中选择Python开发包中的python.exe文件作为解释器。此时,窗口上显示开发OpenCV程序所需要的开发包,如图2-24所示。单击OK按钮关闭配置窗口。

从图中可以看到,上面配置的Matplotlib、NumPy、opencv-python等开发包已经导入项目中,接下来就可以进行OpenCV编程了。

在这里插入图片描述
将照片放到工程目录下,用上面的代码:
在这里插入图片描述

在这里插入图片描述

编译完成!!

3.调试Python程序

导入事例代码:D:\mjl\Opencv4.5资料\图书资料\源码\0cd25082-1cfc-11ed-94cb-00163e36b535\OpenCV 4.5计算机视觉开发实战源码-ch02-ch14\OpenCV 4.5计算机视觉开发实战源码

和开发其他程序一样,Python程序有时候也需要调试,比如设置断点、运行到断点处、单步执行、监视某个变量等。

在PyCharm中单步调试Python程序非常简单,只需要设置好断点,单击鼠标所在的行,

然后按Shift+F9快捷键开始调试运行,接着就会执行到断点处,然后按Shift+F8快捷键开始单步执行(Shift+F7快捷键也可以单步执行,并且遇到函数还能进入函数里面执行),如图所示。
在这里插入图片描述

在窗口下方的Debug视图中,我们直接可以看到a这个变量的相关信息。通常,设置断点、单步执行、监视变量这三大手段用于调试基本够用了。

4.测试一下NumPy的数学函数

我们测试一下NumPy中的数学函数,看它是否能工作正常。

NumPy支持大量的维度数组与矩阵运算,并针对数组运算提供了大量的数学函数库,常用的数学函数如下:

· round(a, decimals=0, out=None):将小数a四舍五入到给定的小数位数。
· floor(a):取比小数a小的最大的整数,即向下取整。
· ceil(a):取比小数a大的最小的整数,即向上取整。其中,a可以是一个数字,也可以是一个数组.

import cv2 as cv  #导入cv模块
import numpy as np
a = np.array([1.0,5.55,  123,  0.567,  25.532]) 
print("np.round(2.6) : " , np.round(2.4))
print("np.round(a,1):",np.round(a,1))
print("np.round(2.8) : " , np.round(2.8))
print("cvFloor(2.5) : " , np.floor(2.5)) 
print("cvFloor(2.6) : " , np.floor(2.6)) 
print("cvCeil(2.5)  : " , np.ceil(2.5))
print("cvCeil(2.6)  : " , np.ceil(2.6)) 

在上述代码中,我们分别实验了round、floor和ceil的简单使用。

在这里插入图片描述

posted @ 2023-02-28 23:00  小幽余生不加糖  阅读(40)  评论(0编辑  收藏  举报  来源