opencv 入门笔记一(读取图片,显示图片,保存图片)

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)

opencv 入门笔记一(读取图片,显示图片,保存图片)_第1张图片

你可能感兴趣的:(opencv学习笔记,opencv,python)