使用 OpenCV 读取、显示和写入图片

14/11/2022 python 582 words in 2 minutes -

本文原始链接:Read, Display and Write an Image using OpenCV (opens new window)

世界上最大的计算机视觉库 OpenCV 内置了这三个函数,让我们看看每个函数的具体作用:

  1. imread() 用于读取图片
  2. imshow() 用于显示图片
  3. imwrite() 用于写入图片

# 读取图片

imread(filename, flags) 方法用于读取图片。这个方法有两个参数:

  1. filename:图片文件的完整路径
  2. flags:可选标志,指定图片的表示方式。 OpenCV 为这个标志提供了几个选项,最常见的包括:
  • cv2.IMREAD_COLOR or 1:默认参数,读入彩色图片,忽略alpha通道。
  • cv2.IMREAD_GRAYSCALE or 0:读入灰度图片。
  • cv2.IMREAD_UNCHANGED or -1:读入完整图片,包括alpha通道。
# 读取图片
img_color = cv2.imread('test.jpg',cv2.IMREAD_COLOR)
img_grayscale = cv2.imread('test.jpg',cv2.IMREAD_GRAYSCALE)
img_unchanged = cv2.imread('test.jpg',cv2.IMREAD_UNCHANGED)
1
2
3
4

# 显示图片

imshow(window_name, image) 方法用于显示图片。这个方法有两个参数:

  1. window_name:窗口名称,会显示在窗口上。
  2. image:要显示的图片。

如果要同时显示多个图片,请为每个要显示的图像指定一个新的窗口名称。

imshow() 方法旨在与 waitKey()destroyAllWindows() / destroyWindow() 函数一起使用。

waitKey() 是一个键盘绑定函数。

  • 它有一个参数,即窗口显示的时间(以毫秒为单位)。
  • 如果用户在此时间段内按下任何键,程序将继续。
  • 如果传递 0,程序将无限期等待,直到有按键按下。
  • 该函数也可以用来检测特殊的按键事件,例如 EscQ 键,从而明确哪个键应该触发哪个行为。

destroyAllWindows() 方法会销毁我们创建的所有窗口;如果要销毁指定的窗口,请使用 destroyWindow() 方法,并将窗口名称作为参数传入。

# 在窗口内展示图片
cv2.imshow('color image',img_color)  
cv2.imshow('grayscale image',img_grayscale)
cv2.imshow('unchanged image',img_unchanged)
 
# 等待键盘事件
cv2.waitKey(0)  
 
# 销毁所有已创建的窗口
cv2.destroyAllwindows() 
1
2
3
4
5
6
7
8
9
10

# 写入图片

最后,我们使用 imwrite(filename, image) 方法来将图片写入/保存到文件系统。这个方法有两个参数:

  1. filename:文件名,必须包含后缀名,例如 .jpg.png 等。
  2. image:要保存的图片。

如果保存成功,这个方法会返回 true

imwrite("grayscale.jpg", img_grayscale)
1

# learnopencv # python

上一篇: