目录
简介:0个通道,像素点取值要么是0,要么是255,故非黑即白。
简介:1个通道,像素点取值0~255,0表示黑色,255表示白色
3. BGR图(注:一般是叫RGB图,在Opencv里是反过来的,无差异)
简介:3个通道(B、G、R),每个通道的像素点取值都是0~255,彩色图片
简介:3个通道(H、S、V),H(0~179),S和V都是0~255,彩色图片
第二章
一、对各个类型图的介绍
1. 二值图
简介:0个通道,像素点取值要么是0,要么是255,故非黑即白。
作用:去除图片噪点,让图片非黑即白的图,代入感就来了。
2. 灰度图
简介:1个通道,像素点取值0~255,0表示黑色,255表示白色
作用:能够减少失帧和计算的近似误差
3. BGR图(注:一般是叫RGB图,在Opencv里是反过来的,无差异)
简介:3个通道(B、G、R),每个通道的像素点取值都是0~255,彩色图片
作用:Up也不清楚[狗头保命] ^·^
4. HSV图(H:色彩,S:饱和度,V:亮度)
简介:3个通道(H、S、V),H(0~179),S和V都是0~255,彩色图片
作用:有助于对指定颜色的物体进行追踪和提取
二、对各个类型图片的操作
1. 图片读取(彩色图和灰度图)
# 一般都这么写,按照自己的习惯
import cv2 as cv
# filename: 读取图片的地址
# flag=1: 默认以BGR彩色图三通道读取
cv.imread(filename, flag=1)
#等价写法:cv.imread(filename) == cv.imread(filename,cv.IMREAD_COLOR)
# flag=0:默认以灰度图单通道读取
cv.imread(filename, flag=0)
#等价写法:cv.imread(filename, 0),cv.imread(filename,cv.IMREAD_GRAYSCALE)
2. 图片保存
import cv2 as cv
# filename: 保存的地址和名字
# img: 要保存的是哪张图片
cv2.imwrite(filename, img)
3. 图片展示
import cv2 as cv
# name: 自己设定读取的图片名儿
# img: 读的哪张图片
cv.imshow(name,img)
# 读取图片延迟0毫秒,想当于永远延迟,1000近似1秒
cv.waitKey(0)
# 每次用imshow()后面都要跟一个摧毁窗口的函数,否则容易出问题
cv.destroyAllWindows()
4. 图片关闭
# 导入cv模块
import cv2 as cv
# 默认彩色读取相对路径下的名叫test_img的.jpg图片并保存到read_img中
read_img = cv.imread("test_img.jpg")
# 展示名叫read_img的照片,窗口名重新叫read_img_show
cv.imshow("read_img_show",read_img)
# 保存图片read_img到相对路径中,保存的名字命名为write_img
cv.imwrite("write_img.jpg",read_img)
# 设置无限延迟时间
cv.waitKey(0)
# 图片关闭的方法
while 1:
if(cv.waitKey(0) == ord('q') or cv.waitKey(0) == ord('Q')):
break;
else:
pass
# 销毁窗口
cv.destroyAllWindows()
三、常用的图片属性函数
1. 获取图片的行、列、通道数和整个成员元组信息
import cv2 as cv
# 读取图片
read_img = cv.imread("test_img.jpg")
# 展示图片所有信息:彩色图:(x,y,3),灰度图:(x,y)
all_message = read_img.shape
# 读取图片的宽度
row = read_img.shape[0]
# 读取图片的高度
col = read_img.shape[1]
# 注:当all_message显示是三通道才可以使用,如果是单通道的灰度图图片列表越界,会报错。
tho_count = read_img.shape[2]
总结:1. 理解了4种图形:二值图、灰度图、BGR图、HSV图
2. 学习了图的读取、保存、展示、延迟、关闭
3. 明白了图的形状大小和通道数的获取方法