opencv python(二)---色彩通道拆分及合并,获取图像属性,感兴趣区域(roi)

5 篇文章 1 订阅
5 篇文章 0 订阅

opencv python(二)---通道拆分及合并,获取图像属性,感兴趣区域(roi)

通道拆分及合并

拆分

    色彩空间是 RGB 色彩空间、通道顺序是 BGR(蓝色、绿色、红色)。有时我们需要对 BGR 三个通道分别进行操作。这时你就需要把 BGR 拆分成单个通道,类似于一个红,绿,蓝分别有一个幕布,将其他颜色滤掉。有时你需要把独立通道的图片合并成一个 BGR 图像。
需要用到函数:split拆分
还是载入一个图片:

img = cv2.imread("2.png")

通过split函数拆分为单个通道:

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

将拆分的颜色进行显示:

cv2.imshow("Blue", b)
cv2.imshow("Red", r)
cv2.imshow("Green", g)

图像载入其实是一个矩阵形式的,如果处理的东西较多,使用split函数就会让运行慢很多,此时可以采用矩阵的方式将RGB拆分出来。
代码如下:

import cv2
import numpy as np
 
img = cv2.imread("2.png")
b = img[:,:,0]
g = img[:,:,1]
r = img[:,:,2]

cv2.imshow("Blue", b)
cv2.imshow("Red", r)
cv2.imshow("Green", g)

cv2.waitKey(0)

拆分效果

在这里插入图片描述

合并

合成的时候一定要注意顺序,不然就会出现问题,我们通过下列代码实现:

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

再输出合并后的图像:

cv2.imshow("together",img2)

合并效果

在这里插入图片描述

但是如果顺序放错就会出现以下合并的现象:

在这里插入图片描述
在这里插入图片描述

获取图像属性

通过以下命令来获取图像的,像素数目,数据类型,宽和高

print(img.shape)#获取图像的宽、高
print(img.size)#获取图像像素数目
print(img.dtype)#返回数据类型

在这里插入图片描述

感兴趣区域(roi)

使用命令圈出感兴趣区域:

roi = img[100:300,100:300]

再将感兴趣区域显示出来:

cv2.imshow('roi',roi)

在这里插入图片描述
完整代码:

import cv2
import numpy as np
 
img = cv2.imread("2.png")
b,g,r = cv2.split(img)#拆分
roi = img[100:300,100:300]#感兴趣区域
img2 = cv2.merge([b,g,r])#合并

cv2.imshow('roi',roi)
cv2.imshow("img",img)
cv2.imshow("Blue", b)
cv2.imshow("Red", r)
cv2.imshow("Green", g)
cv2.imshow("together",img2)

print(img.shape)#宽、高
print(img.size)#像素数目
print(img.dtype)#数据类型

cv2.waitKey(0)
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值