OpenCV for Python [1].图片读入、显示、保存

时间:2022-10-23 21:05:50

Python-OpenCV之图片读入、显示、保存

读入图像

使用函数 cv2.imread() 读入图像。这幅图像应该在此程序的工作路径, 或者给函数提供完整路径,
第二个参数是要告诉函数应该如何读取这幅图片。

  • cv2.IMREAD_COLOR:读入一副彩色图像。图像的透明度会被忽略, 这是默认参数。
  • cv2.IMREAD_GRAYSCALE:以灰度模式读入图像

cv2.IMREAD_UNCHANGED:读入一幅图像,并且包括图像的 alpha 通道

# -*- coding: utf-8 -*-
import numpy as np
import cv2
# Load an color image in grayscale
img = cv2.imread('lena.jpg',0)

显示图像

使用函数 cv2.imshow() 显示图像。窗口会自动调整为图像大小。第一 个参数是窗口的名字,其次才是我们的图像。你可以创建多个窗口,只要你喜 欢,但是必须给他们不同的名字

cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
  • cv2.waitKey() 是一个键盘绑定函数。需要指出的是它的时间尺度是毫 秒级。函数等待特定的几毫秒,看是否有键盘输入。特定的几毫秒之内,如果 按下任意键,这个函数会返回按键的 ASCII 码值,程序将会继续运行。如果没 有键盘输入,返回值为 -1,如果我们设置这个函数的参数为 0,那它将会无限 期的等待键盘输入。它也可以被用来检测特定键是否被按下,例如按键 a 是否 被按下,这个后面我们会接着讨论。

  • cv2.destroyAllWindows() 可以轻易删除任何我们建立的窗口。如果 你想删除特定的窗口可以使用 cv2.destroyWindow(),在括号内输入你想删 除的窗口名。

建 议:一 种 特 殊 的 情 况 是, 你 也 可 以 先 创 建 一 个 窗 口, 之 后 再 加 载 图 像。 这 种 情 况 下, 你 可 以 决 定 窗 口 是 否 可 以 调 整 大小。使用到的函数是 cv2.namedWindow()。初始设定函数 标签是 cv2.WINDOW_AUTOSIZE。但是如果你把标签改成 cv2.WINDOW_NORMAL,你就可以调整窗口大小了。当图像维度太大, 或者要添加轨迹条时,调整窗口大小将会很有用

# -*- coding: utf-8 -*-
import numpy as np
import cv2

cv2.namedWindow('image', cv2.WINDOW_NORMAL)
cv2.imshow('Show Image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

OpenCV for Python [1].图片读入、显示、保存

保存图像

使用函数 cv2.imwrite() 来保存一个图像。首先需要一个文件名,之后才
是你要保存的图像。

cv2.imwrite('lena_gray.png',img)

总结一下

下面的程序将会加载一个灰度图,显示图片,按下’s’键保存后退出,或者 按下 ESC 键退出不保存。

# Load an color image in grayscale
# -*- coding: utf-8 -*-
import numpy as np
import cv2
img = cv2.imread('lena.png',0)
cv2.imshow('Show Image',img)

k = cv2.waitKey(0)

if k==27:#wait for ESC key to exit
cv2.destroyAllWindows()
elif k == ord('s'): # wait for 's' key to save and exit
cv2.imwrite('lena_gray.png',img)

cv2.destroyAllWindows()

OpenCV for Python [1].图片读入、显示、保存