其他分享
首页 > 其他分享> > 图像处理基本操作2

图像处理基本操作2

作者:互联网


import cv2
# 截取图像
img = cv2.imread("sqh.png")
img = img[100:200, 400:1000] #100-200为高 400-1000为长
cv2.imshow("cut", img)
cv2.waitKey(0)
cv2.destroyAllWindows()

# 获取颜色通道
img = cv2.imread("sqh.png") # 读取图片
b, g, r = cv2.split(img) # 分割颜色通道
print(r.shape, g.shape, b.shape) # 调试输出

# 单通道显示
img = cv2.imread("sqh.png") # 读取图片
cur_img = img.copy() # 深拷贝
cur_img[:, :, 0] = 0 # B通道设置为0
cur_img[:, :, 1] = 0 # G通道设置为0
cv2.imshow("B channel", cur_img) # 图片展示
cv2.waitKey(0)
cv2.destroyAllWindows()

输出
(1300, 867) (1300, 867) (1300, 867)
RGB知识补充

RGB颜色空间以R(Red:红)、G(Green:绿)、B(Blue:蓝)三种基本色为基础,进行不同程度的叠加,产生丰富而广泛的颜色,所以俗称三基色模式。

RGB空间是生活中最常用的一个颜色显示模型,电视机、电脑的CRT显示器等大部分都是采用这种模型。自然界中的任何一种颜色都可以由红、绿、蓝三种色光混合而成,现实生活中人们见到的颜色大多是混合而成的色彩。

肉眼可以识别世界上的所有颜色,而RGB几乎可以组合成世界上所有的颜色!

单通道:

俗称灰度图,每个像素点只能有一个值表示颜色,它的像素值在0到255之间,0是黑色,255是白色,中间值是一些不同等级的灰色,可以说灰度是黑与白之间的过渡色!

注意这个值不是RGB里的任何一个元素,显示设备是直接通过CRT(彩色阴极射线显像管)将单通道里的像素值显示黑白色图像,值越高黑色图越亮,一般灰度值大小不会超过125!

多通道:

多通道也就是RGB三原色,每个像素点有三个字节来表示(RGB),分别最大取值范围是0-255,可以组合成千万种颜色。

图像处理优势对比:

单通道往往应用于图像处理,因为单通道只有一个像素点(一个字节),所以相比多通道三个字节,处理速度上要尤为的快!

而且单通道能将图像以灰度形式显示出来,不会影响图像识别,和特征提取!

多通道以原图的形式将图像展示出来,所以可以提取特征很多,识别率高!

 

# 读取视频
vc = cv2.VideoCapture("video.mp4")

# 循环
while (True):

# 读取一帧,ret为bool类型,指示是否成功读取这一帧
ret, frame = vc.read()

# 转为灰度图
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

# 显示
cv2.imshow('frame', gray)

# 若没有按下q键,则每1毫秒显示一帧
if cv2.waitKey(1) & 0xFF == ord('q'):
break

# 释放
vc.release()
cv2.destroyAllWindows()

 

标签:颜色,img,cv2,RGB,图像处理,灰度,基本操作,单通道
来源: https://www.cnblogs.com/kexsama/p/15152469.html