1.cv2.imread(img_path,flag) 读取图片,返回图片对象 img_path: 图片路径,即路径错误也不会报错,返回的图片对象为None flag:cv2.IMREAD_COLOR,默认参数,读取彩色图片,图片透明性会被忽略,也可以传入1 cv2.IMREAD_GRAYSCALE,按灰度模式读取图像,也可以传入0 cv2.IMREAD_UNCHANGED,读取图像,包括其alpha(透明度)通道,也可以传入-1
alpha通道_百度百科
2.cv2.imshow(window_name,img)
waitKey(millseconds) 键盘绑定事件,阻塞监听键盘按键,返回一个数字(不同按键对应的数字不同),也可以是字符 millseconds: 传入时间毫秒数,在该时间内等待键盘事件;传入0时,会一直等待键盘事件
3.destroyAllWindows(window_name),无参数时关闭所有打开窗口
4.imwrite(img_path_name,img) img_path_name:保存的文件名 img:文件对象
5.cv2.cvtColor(img,code) img: 图像对象 code:cv2.COLOR_RGB2GRAY: RGB转换到灰度模式 cv2.COLOR_RGB2HSV: RGB转换到HSV模式(hue,saturation,Value) 6.代码实现:读取一张彩色图片显示并保存为灰度图
#!/usr/bin/python3
import cv2
# 按照灰度模式读取图像
# img = cv2.imread("/home/newj/my_sh/.png", cv2.IMREAD_GRAYSCALE)
# img = cv2.imread("/home/newj/my_sh/.png",0)
# 读取图像,包括其alpha(透明度)通道
# img = cv2.imread("/home/newj/my_sh/.png", cv2.IMREAD_GRAYSCALE)
# img = cv2.imread("/home/newj/my_sh/.png",-1)
# 读取彩色图片
img = cv2.imread("/home/newj/my_sh/.png", cv2.IMREAD_COLOR)
# img = cv2.imread("/home/newj/my_sh/.png",1)
print(img)
print(img.shape)
# [[[174 255 200]
# [174 255 200]
# [174 255 200]
# ...
# [174 255 200]
# [174 255 200]
# [174 255 200]]]
# (1024, 1024, 3)
# 窗口名称:0,显示读取图片img
cv2.imshow("0", img)
# 颜色空间转换函数,转为灰度图
img_cvt = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
# 显示灰度图
cv2.imshow('1', img_cvt)
print(img_cvt)
print(img_cvt.shape)
# [[225 225 225 ... 225 225 225]
# [225 225 225 ... 225 225 225]
# [225 225 225 ... 225 225 225]
# ...
# [225 225 225 ... 225 225 225]
# [225 225 225 ... 225 225 225]
# [225 225 225 ... 225 225 225]]
# (1024, 1024)
# 一直阻塞等待键盘输入
# exit_key = cv2.waitKey(0)
# 阻塞等待键盘输入2000ms
exit_key = cv2.waitKey(2000)
# 如果输入q或者esc退出界面
if exit_key == 'q' or exit_key == '27':
cv2.distroyAllWindows('0')
cv2.distroyAllWindows('1')
# cv2.distroyAllWindows()
# 保存灰度图到工作空间
cv2.imwrite("save_pic.png", img_cvt)