1.1读入图像
使用函数cv2.imread()读入图像。这幅图像应该和该程序代码在同一文件夹下,或者给函数提供完整的路径;第二个参数是要告诉函数应该如何读取这幅图片。
- cv2.IMREAD_COLOR:读入一幅彩色图像。图像的透明度会被忽略,这是默认参数。
- cv2.IMREAD_GRAYSCALE:以灰度模式读入图像
- cv2.IMREAD_UNCHANGED:读入一幅图像,并且包括图像的alpha通道
警告:就算图像的路径是错的,OpenCV也不会提醒你的,但是当你使用命令print img时得到的结果是None。
1.2显示图像
使用函数cv2.imshow()显示图像。窗口会自动调整为图像大小。第一个参数是窗口的名字,其次才是我们的图像。你可以创建多个窗口,但是必须给他们不同的名字。
窗口屏幕截图将会像以下的样子:
cv2.waitKey()是一个键盘绑定函数。需要指出的是它的时间尺度是毫秒级。函数的等待特定时间是几毫秒,看是否有键盘输入。特定的几毫秒之内,如果按下任意键,这个函数会返回按键的ASCII码值,程序将会继续运行。如果没有键盘的输入返回值为-1,如果我们设置这个函数的参数为0,那它将会无限的等待键盘输入。它也可以被用来检测特定键是否被按下,例如按键a是否被按下,这个后面我们会接着讨论。
cv2.destroyAIIWindows(),可以轻易的删除任何我们建立的窗口。如果你想删除特定的窗口可以使用cv2.destroyAIIWindow(),在括号内输入你想删除的窗口名。
建议:一种特殊的情况是,你可以先建一个窗口,之后再加载图像。这种情况下可以决定窗口是否可以调整大小。使用到的函数是cv2.namedWindow()。初始设定标签函数为cv2.WINDOW_AUTOSIZE()。但是如果把标签改成cv2.WINDOW_NORMAL你就可以调大小了。当图像维度太大,或者要添加轨迹条时,调整窗口的大小将会很有用。
1.3保存图像
使用函数cv2.imwrite()来保存一个函数。首先需要一个文件名,之后才是你要保存的图像。
1.4使用matplotlib
Matplotib是python的一个绘图库,里头有各种各样的绘图方法。之后会陆续了解到。现在你可以学习怎样用Matplotib显示图像。你可以放大图像、保存图像等等。
窗口截图如下:
注意:彩色图像使用OpenCV加载时是BGR模式。但是Matplotib是RGB模式。所以彩色图像如果已经被OpenCV读取,那它将不会被Matplotib正确显示。如下图所示颜色和原图不太一样:
1.5基础拓展
下面的程序将会加载一个灰度图,显示图片按下S键保存后退出,或者按下ESC键退出不保存。
警告:如果你用的是64位系统你需要将k=cv2.waitKey(0)这行改成k=cv2.waitKey(0)&0xFF。