【CV】图像基本操作——①图像的IO操作

OpenCV基本操作

图像基本操作

图像的IO操作

解决问题:如何读取图像,如何显示图像,如何保存图像

读取图像
  1. API
python 复制代码
cv.imread()

参数:

  • 要读取的图像

  • 读取方式的标志

    • cv.IMREAD*COLOR:以彩色模式加载图像,任何图像的透明度都将被忽略。这是默认参数

    • cv.IMREAD*GRAYSCALE:以灰度模式加载图像

    • cv.IMREAD_GRAYSCALE:包括alpha通道的加载图像模式。

      复制代码
      可以使用1、0或-1来依次代替上面三个标志
  • 参考代码:

python 复制代码
import numpy as np
import cv2 as cv
# 以灰度图的形式读取图像
img = cv.imread('messi5.jpg', 0)

注意:如果加载的路径有误,不会报错,会返回一个None值

显示图像
  1. API
python 复制代码
cv.imshow()

参数:

  • 显示图像的窗口名称,以字符串类型表示
  • 要加载的图像

注意:在调用显示图像的API后,要调用cv.waitKey()给图像绘制留下时间,否则窗口会出现无响应情况,并且图像无法显示出来

另外,我们也可使用matplotlib对图像进行展示。

  • 参考代码
python 复制代码
# opencv中显示
cv.imshow()
cv.waitKey(0)
# matplotlib中显示
plt.imshow(img[:, :, ::-1])
保存图像
  1. API
python 复制代码
cv.imwrite()

参数:

  • 文件名,要保存在哪里
  • 要保存的图像
  1. 参考代码
python 复制代码
cv.imwrite('messigray.png', img)
总结

我们通过加载灰度图像,显示图像,如果按's'并退出则保存图像,或者按ESC键直接退出而不保存。

python 复制代码
import numpy as np
import cv2 as cv
import matplotlib.pyplot as plt
# 读取图像
img = cv.imread('messi5.jpg', 0)
# 显示图像
# 用opencv展示图象
img = cv.imshow('image', img)
# 用matplotlib展示图象
plt.imshow(img[:, :, ::-1])
plt.title('匹配结果'),plt.xticks([]),plt.yticks([])
plt.show()
k = cv.waitkey(0)
# 保存图像
cv.imwrite('messigray', img)