1、目标
- 在这里,您将学习如何读取图像,如何显示图像以及如何将其保存回
- 您将学习以下功能:cv.imread(),cv.imshow(),cv.imwrite()
2、常用方法
1) cv.imread()读取对象
第二个参数是一个标志,用于指定读取图像的方式
- cv.IMREAD_COLOR:加载彩色图像。图像的任何透明度都将被忽略。这是默认标志。
- cv.IMREAD_GRAYSCALE:以灰度模式加载图像
- cv.IMREAD_UNCHANGED:加载图像,包括alpha通道
注意:除了这三个标志,您可以分别简单地传递整数1、 0 或 -1
import numpy as np import cv2 as cv # Load a color image in grayscale img = cv.imread('messi5.jpg', 0) # 如果路径错误 不会出现错误 print img 会是None |
2)cv.imshow() 展示图像
使用这个方法展示图片是,窗口将适应图片的大小
第一个参数是窗口名,字符串
第二个参数是图片
可以有多个窗口,但窗口名必须不相同
cv.imshow(‘window-name’,img) cv.waitKey(0) cv.destroyAllWindows() |
3)cv.waitKey()键盘绑定功能
是键盘绑定功能。它的参数是时间(以毫秒为单位)。该函数将为任何键盘事件等待指定的毫秒数。如果在此期间按任意键,程序将继续。如果传递 0,它将无限期地等待击键。还可以将其设置为检测特定的按键,例如是否按下了按键a,我们将在下面讨论。
注意
除了绑定键盘事件之外,此功能还处理许多其他GUI事件,因此必须使用它来实际显示图像。
4)cv.destroyAllWindows()
只会破坏我们创建的所有窗口。,
5)cv.destroyWindow()
如果要销毁任何特定的窗口 ,在其中传递确切的窗口名称作为参数。
注意
在特殊情况下,您可以创建一个空窗口,然后再将图像加载到该窗口。在这种情况下,您可以指定窗口是否可调整大小。这是通过功能cv.namedWindow()完成的。默认情况下,该标志为cv.WINDOW_AUTOSIZE。但是,如果将标志指定为cv.WINDOW_NORMAL,则可以调整窗口大小。当图像尺寸过大以及向窗口添加跟踪栏时,这将很有帮助。
# cv.WINDOW_NORMAL
# cv.WINDOW_AUTOSIZE
# cv.WINDOW_FREERATIO
# cv.WINDOW_FULLSCREEN
# cv.WINDOW_GUI_EXPANDED
# cv.WINDOW_KEEPRATIO
# cv.WINDOW_OPENGL
请参见下面的代码:
cv.namedWindow('image',cv.WINDOW_NORMAL) cv.imshow('image',img) cv.waitKey(0) |
6)cv.imwrite() 保存图像
第一个参数是文件名
第二个参数是您要保存的图像
cv.imwrite('messigray.png',img) |
这会将图像以PNG格式保存在工作目录中
7)总结
在下面的程序中,以灰度加载图像,显示图像,按 “s” 保存图像并退出,或者按ESC键直接退出而不保存
import numpy as np import cv2 as cv img = cv.imread('messi5.jpg',0) cv.imshow('image', img) k = cv.waitKey(0) if k == 27: # wait for ESC key to exit elif k == ord('s'): # wait for 's' key to save and exit cv.imwrite('messigray.png', img) |