1 图片
1.1 读取图片
使用函数:cv2.imread(filename,flags)
读取图像。【按照BGR读取】
参数为flags,告诉我们如何读取这个图像
- 当flags>0时,cv2.IMREAD_COLOR:读入一副彩色图像。图像的透明度会被忽略,这是默认参数
- 当flags=0时,cv2.IMREAD_GRAYSCALE:以灰度模式读入图像
- 当flags<0时,cv2.IMREAD_UNCHANGED:读入一幅图像,并且包括图像的 alpha 通道
# 读取图片,以灰度模式打开
img1=cv2.imread("d:\\777.png",cv2.IMREAD_GRAYSCALE)
# 读取图片,以彩色模式打开
img2=cv2.imread("d:\\777.png",cv2.IMREAD_COLOR)
# 读取图片,以图片原模式打开,(包含阿尔法通道)
img3=cv2.imread("d:\\grayscale.png",cv2.IMREAD_UNCHANGED)
1.2 显示图像
使用函数 cv2.imshow(winname,mat)
显示图像。mat就是所指图像
在显示图像时会先使用一个窗口,在窗口实现图片的显示,窗口会自动调整为图像大小。winname是窗口的名字,第二个参数才是我们的图像。
使用函数cv2.namedWindow(winname,flags)创建窗口
winame为所创建窗口的窗口名,flags决定窗口大小是否可以手动自调整
cv2.namedWindow('image', cv2.WINDOW_AUTOSIZE)等价cv2.namedWindow('image')默认,系统自调整
cv2.namedWindow('image', cv2.WINDOW_NORMAL)可以手动调整大小
# 创建自调整窗口,默认
cv2.namedWindow("text",cv2.WINDOW_AUTOSIZE)
# 创建手动调整大小的窗口
cv2.namedWindow("text2",cv2.WINDOW_NORMAL)
# 显示图片
cv2.imshow("text",img)
cv2.imshow("text2",img)
1.3 保存图像
使用函数 cv2.imwrite(filename,images)
来保存一个图像。
首先需要一个文件名,filename就是文件名[加上路径],之后才是你要保存的图像,也就是images。
cv2.imwrite("d:\\gray.png",img1)
1.4 补充
cv2.waitKey() 是一个键盘绑定函数。需要指出的是它的时间尺度是毫秒级。函数等待特定的几毫秒,看是否有键盘输入。特定的几毫秒之内,如果按下任意键,这个函数会返回按键的 ASCII 码值,程序将会继续运行。如果没有键盘输入,返回值为 -1,如果我们设置这个函数的参数为 0,那它将会无限期的等待键盘输入。它也可以被用来检测特定键是否被按下,例如按键 a 是否被按下,这个后面我们会接着讨论。
cv2.destroyAllWindows() 可以轻易删除任何我们建立的窗口。如果你想删除特定的窗口可以使用
1.5 总结
import cv2
#加载一个灰度照片
img = cv2.imread("d:\\log.png",0)
#显示读入的图片
cv2.imshow('image',img)
#图像等待键盘处理
k = cv2.waitKey(0)&0xFF
if k==27:#esc键
# 退出窗口
cv2.destroyAllWindows()
elif k == ord('s'):#s键
#保存图片
cv2.imwrite('d:\\messigray.png',img)
#退出窗口
cv2.destroyAllWindows()
1.6 使用matplotlib显示图片
import cv2
import matplotlib.pyplot as plt
img = cv2.imread("d:\\log.png",0)
#使用plt绘制图片,以灰度绘制,cmap: 颜色图谱(colormap), 默认绘制为RGB(A)颜色空间。
plt.imshow(img, cmap= 'gray')
#横坐标,纵坐标为空
plt.xticks([])
plt.yticks([])
plt.show()
注意:
xticks(ticks, [labels], kwargs)
ticks:数组类型,用于设置X轴刻度间隔
[labels]:数组类型,用于设置每个间隔的显示标签
kwargs:用于设置标签字体倾斜度和颜色等外观属性