Python图像识别-Opencv03 通道处理、缩放

本文介绍了Python使用Opencv进行图像处理中的通道拆分和合并,详细讲解了如何提取BGR图像的R、G、B通道,并展示了通道拆分后的效果。此外,还探讨了如何通过cv2.resize()函数对图像进行缩放操作。

上一节讲到Opencv的通道模式,按照B通道-->G通道-->R通道顺序进行存储的。再图像处理的过程中,可以根据需要对通道进行拆分和合并

通道拆分

针对RGB图像,可以分别拆分出其R通道,G通道,B通道。再Opencv中可以通过索引直接将各个通道从图像中提出出来。例如,针对Opencv内的BGR图像img,可用如下语句进行B\G\R通道的提取:

b = img[:,:,0]
g = img[:,:,1]
r = img[:,:,2]

接着我们查看一下,单单只有b,g,r通道的图片和原图的区别

接着我们开始尝试抽取颜色,将图片中的B,G,R颜色分别抽取,代码如下:

img = cv2.imread('D:/PixC/01.jpeg')
img[:,:,0] = 0
cv.imshow('img-b',img)

img = cv2.imread('D:/PixC/01.jpeg')
img[:,:,1] = 0
cv.imshow('img-g',img)

img = cv2.imread('D:/PixC/01.jpeg')
img[:,:,2] = 0
cv.imshow('img-r',img)

于是得到如下图

 分别是抽调了绿色,蓝色和红色之后的效果图

当然除了索引,我们还可以用cv2.split()来拆分图像通道。例如,可以使用如下语句拆分彩色BGR图像img,得到通道b,g,r

b,g,r =cv2.split(img)

上述代码与接下来这段代码是对等的

b = cv2.split(img)[0]
g = cv2.split(img)[1]
r = cv2.split(img)[2]

通道合并

通道合并是通道拆分的逆过程,通过合并通道可以将三个通道的灰度图像合并成一幅彩色的图像。函数cv2.merge()可以实现通道合并。

当然,我们原模原样合并看不出差异,换个方式,原来的BGR通道换成RGB,于是我们得到了另一张色调的图,代码如下

bgr_img = cv2.merge([b,g,r])
rgb_img = cv2.merge([r,g,b])

cv2.imshow('bgr_img',bgr_img)
cv2.imshow('rgb_img',rgb_img)

 

 调整图像大小

Opencv使用函数cv2.resize()实现对图像的缩放,代码如下

rowls,cols = img.shape[:2]
size = (int(cols*0.8),int(rowls*0.8))
img_2 = cv2.resize(img,size)
print('imgshape = ',img.shape)
print('img2shape = ',img_2.shape)

cv2.imshow('img1',img)
cv2.imshow('img2',img_2)

得到输出如下

imgshape =  (346, 260, 3)
img2shape =  (276, 208, 3)

图片如下

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值