注意:下面代码中读取图片以及保存图片,默认是保存在与py文件同个文件夹中;如果想读取或者保存图片到其它文件夹中,需要加地址参数;
1.读取图像:
cv.imread()
参数:img = cv.imread(要读取的图像,读取方式的标记)
读取方式的标志
-
cv.IMREAD*COLOR:以彩色模式加载图像,任何图像的透明度都将被忽略。这是默认参数。
-
cv.IMREAD*GRAYSCALE:以灰度模式加载图像
-
cv.IMREAD_UNCHANGED:包括alpha通道的加载图像模式。
-
可以使用1、0或者-1来替代上面三个标志
参考代码:
import numpy as np
import cv2 as cv
# 以灰度图的形式读取图像cv.IMREAD*GRAYSCALE = 0
img = cv.imread('messi5.jpg',0) # messi5.jpg 图像存在于py文件的同个文件中
#img = cv.imread('D:/img/messi5.jpg', 0) # messi5.jpg 图像存在于D盘中img文件中
2.显示图像:
cv.imshow()
参考代码:
# opencv中显示
cv.imshow('image',img) #参数(显示图像的窗口名称,要加载的图像)
cv.waitKey(0)
#使用 matplotlib展示
plt.imshow(img[:,:,::-1])
注意:1.在调用显示图像的API后,要调用cv.waitKey()给图像绘制留下时间,否则窗口会出现无响应情况,并且图像无法显示出来。
2.cv读入的图像保存格式 BGR格式,如果想通过matplotlib(只能输出RGB格式)输出图像,则需要先将图片转换成RGB格式
plt.imshow(img[:,:,::-1])
3.保存图像
cv.imwrite()
参数:cv.imwrite9(’文件名‘, 要保存的图像)
参考代码:
cv.imwrite('messigray.png', img)
#cv.imwrite('D:/img/messigray.png', img)
4.总结
通过加载灰度图像,显示图像,如果按's'并退出则保存图像,或者按ESC键直接退出而不保存
import numpy as np
import cv2 as cv
import matplotlib.pyplot as plt
# 1 读取图像
img = cv.imread('messi5.jpg',0) #彩色图像
#img = cv.imread('messi5.jpg',0) #灰度图像
# 2 显示图像
# 2.1 利用opencv展示图像
#cv.imshow('image',img)
# cv.waitKey(0)
# cv.destroyAllWindows()
# 2.2 在matplotplotlib中展示图像
plt.imshow(img[:,:,::-1]) #彩色图像
#plt.imshow(img,cmap=plt.cm.gray) #灰度图像
plt.title('匹配结果'), plt.xticks([]), plt.yticks([])
#plt.xticks([]), plt.yticks([]) 设置x,y轴的范围
plt.show()
# 3 保存图像
cv.imwrite('messigray.png',img)
借鉴:黑马程序员opencv基础课程的笔记