上QQ阅读APP看书,第一时间看更新
4.2.1 加载和显示图像
我们先从加载和显示图像开始学习Python和OpenCV基础知识,只需要简单的几行代码就能搞定。
首先,在你喜欢的文本编辑器或IDE中打开opencv_tutorial_01.py:
# 导入必要的库 #1 import imutils #2 import cv2 #3 #4 # 加载输入图像并显示其尺寸, #5 # 图像表示为形状NumPy多维数组: #6 # 行数 (height) x 列数 (width) x 通道数 (depth)。 #7 image = cv2.imread("jp.png") #8 (h, w, d) = image.shape #9 print("width={}, height={}, depth={}".format(w, h, d)) #10 #11 # 将图像显示在屏幕上 #12 # 需要点击OpenCV打开的窗口并按键盘上的键继续运行其他程序 #13 cv2.imshow("Image", image) #14 cv2.waitKey(0) #15
在第2行和第3行,导入了imutils和cv2这两个库。cv2包是OpenCV的,虽然是第2版本的包,但是实际上OpenCV 3也同样适用这个命令(2018年发布的OpenCV 4也是可以的)。imutils包是笔者写的为了方便而封装好的一系列函数的工具包。
在获得了所需的软件之后,接下来就可以将图像从磁盘加载进来了。
要加载图像,需要用到 cv2.imread(“jp.png”)这个命令。如第8行所示,将结果赋给image。image实际上只是一个NumPy数组。
加载完后,需要知道图像的高度和宽度。所以在第9行,调用image.shape来提取图像的高度、宽度和深度。
关于宽度和高度,你可以这样理解:
·一般用#行数x#列数来描述一个矩阵;
·有多少行就代表了图像的高度;
·有多少列就代表了图像的宽度。
因此,用NumPy矩阵表示的图像尺寸实际上可以表示为(高度,宽度,深度)。
深度是图像颜色通道的数量。在本例中,有3个通道,即:蓝色,绿色和红色这3颜色通道。
第10行的打印命令将值输出到终端:
width=600, height=322, depth=3
如果想要使用OpenCV在屏幕上显示图像,可通过第14行cv2.imshow(“Image”,image)实现。第15行表示等待按键被按下。这很重要,否则图像会在我们看到之前就显示并迅速消失。
注意
你需要单击OpenCV打开的活动窗口,然后按键盘上的按键以继续运行后续脚本。OpenCV无法监控你在终端的输入,所以,你需要单击屏幕上活动的OpenCV窗口并按键盘上的按键才行。