计算机视觉OpenCV学习笔记(一):图片的读取、显示、保存
(4)图片
本篇目标:
学会图片的读取、显示、保存,分别对应函数:cv2.imread(), cv2.imshow(), cv2.imwrite()
4.1 读入图片
使用cv2.imgread()读入图像,参数包括图片的路径、以什么方式读入图片
方式包括:
• cv2.IMREAD_COLOR:读入一副彩色图像。图像的透明度会被忽略,这是默认参数。
• cv2.IMREAD_GRAYSCALE:以灰度模式读入图像
• cv2.IMREAD_UNCHANGED:读入一幅图像,并且包括图像的 alpha 通道
import cv2
img = cv2.imread(r'/Users/ar/Desktop/img_0.jpg',0)
注:
路径上加上r是为了防止转译。
1 == cv2.IMREAD_COLOR
0 == cv2.IMREAD_GRAYSCALE
2 ==cv2.IMREAD_UNCHANGED
4.2 显示图片
使用cv2.imshow()显示图像,第一个参数表示窗口的名称,第二个参数表示要显示的图片
cv2.imshow('sun',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
其中cv2.waitKey()是一个键盘绑定函数,他的时间尺度是毫秒。函数等待特定的毫秒数,看是否有键盘输入,如果有输入,函数会返回此键的ASCII码,且程序继续执行,如果没有键盘的输入,函数会返回-1,假如说我们给该函数传入参数0,表示它将无限期的等待键盘的输入,直至键盘按下。
cv2.destroyAllWindows(),表示销毁我们建立的所有窗口,如果想要销毁指定窗口,可以使用cv2.destroyWindows(),括号中传入窗口的名字。
另外我们还可以通过实现建立一个窗口的方式来显示图片,这样的好处是你可以觉得是否可以调整窗口大小。
import cv2
img = cv2.imread(r'/Users/ar/Desktop/img_0.jpg',0)
cv2.namedWindow("sun",cv2.WINDOW_NORMAL)
cv2.imshow('sun',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
4.3 保存图片
使用函数cv2.imwrite()保存图片,参数保存保存的文件路径,和要保存的图片.
cv2.imwrite(r'/Users/ar/Desktop/img_save.jpg',img)
4.4 总结
实现读入一张图片,按ESC键退出并不保存,按S键保存图片
import cv2
img = cv2.imread(r'/Users/ar/Desktop/img_0.jpg',0)
cv2.imshow('sun',img)
k = cv2.waitKey(0)
if k == 27:
cv2.destroyWindow('sun')
elif k == ord('s'):
cv2.imwrite(r'/Users/ar/Desktop/img_save.jpg', img)
cv2.destroyWindow('sun')
使用Matplotlib显示图片
matplotlib是python的一个绘图库,其中有各种绘图的方法。
import cv2
import matplotlib.pyplot as plt
img = cv2.imread(r'/Users/ar/Desktop/img_0.jpg',0)
plt.imshow(img,cmap='gray',interpolation='bicubic') ##参数interpolation可以理解成是否设置来边缘模糊度
plt.xticks([]),plt.yticks([]) #隐藏X、Y轴上
plt.show()