OpenCV的图像读取显示及保存

一. 读入图像

cv2.imread(文件名,标记)

第一个参数图像应该在工作目录中,或者应该给出完整的图像路径。

第二个参数是一个标志,指定应读取图像的方式。

  • cv2.IMREAD_COLOR:加载彩色图像。任何形象的透明度将被忽略。这是默认的标志。
  • cv2.IMREAD_GRAYSCALE:以灰度模式加载图像
  • cv2.IMREAD_UNCHANGED:加载包含Alpha通道的图像

除了上面这三个标志,你可以简单地传递整数1,0或-1。

import cv2
import numpy as np

# 普通模式加载,加载彩色图像
img = cv2.imread('./image/test.jpg', cv2.IMREAD_COLOR)

# 简化模式加载,以灰度模式加载图像
# img = cv2.imread('./image/test.jpg', 0)

cv2.imshow('image', img)
cv2.waitKey(0)

二. 列表项目

cv2.imshow()

使用函数cv2.imshow()在窗口中显示图像。该窗口自动适合图像大小。 第一个参数是一个字符串表示窗口名称。第二个参数是我们的image。您可以根据需要创建多个窗口,但需要使用不同的窗口名称。

cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

cv2.waitKey()等待键盘输入,为毫秒级
cv2.destroyAllWindows()可以轻易删除任何我们建立的所有窗口,如果要销毁任何特定的窗口,请使用函数cv2.destroyWindow(),在其中传入确切的窗口名称作为参数。

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

三. 保存图像

使用函数cv2.imwrite()保存图像。
第一个参数是文件名,第二个参数是要保存的图像。

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

上面的代码会将图像以PNG格式保存在工作目录中。

四. 总结一下

下面程序加载灰度图像,显示图像,按's'保存图像并退出,或按ESC键退出而不保存。

import numpy as np
import cv2

img = cv2.imread('messi5.jpg',0)
cv2.imshow('image',img)
k = cv2.waitKey(0)
if k == 27:
    # 按ESC退出
    cv2.destroyAllWindows()
elif k == ord('s'): 
    # 按s保存且退出
    cv2.imwrite('messigray.png',img)
    cv2.destroyAllWindows()

五. 使用Matplotlib

Matplotlib是Python的绘图库,可以为您提供各种绘图方法。你会看到他们在接下来的文章。在这里,您将学习如何使用Matplotlib显示图像。你可以放大图像,使用Matplotlib保存等。

import numpy as np
import cv2
from matplotlib import pyplot as plt

img = cv2.imread('messi5.jpg',0)
plt.imshow(img, cmap = 'gray', interpolation = 'bicubic')
plt.xticks([]), plt.yticks([])  # to hide tick values on X and Y axis
plt.show()
最后修改:2019 年 06 月 26 日 07 : 50 PM
如果觉得我的文章对你有用,请随意赞赏