使用python opencv 对图像通道的基本操作

 

      在图像处理过程中,有时会根据需要对通道进行拆分和合并。在OpenCV中提供了split()和merge()函数。下面对这两个函数进行介绍。

  1. split()拆分函数

Split()函数可以拆分图像的通道,例如BGR图像的三个通道,一般常见调用格式如下:

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

其中:

     b,g,r分别是B通道、G通道、R通道的图像信息。

     img是要拆分的图像。

【例】编写程序,对图像进行拆分。

  cv.imshow("b",b)#显示b通道的图像信息
cv.imshow("g",g)#显示g通道的图像信息
cv.imshow("r",r)#显示r通道的图像信息
cv.imshow("image",image)#显示原图像信息
cv.waitKey()#等待按键时间,默认为0,即无限等待
cv.destroyAllWindows()#释放窗口

 

程序运行结果如图所示:

         

                                      

                        a)原始图像                                                                                       B)B通道图像

 

                                               

                        C)G通道图像                                                                                          D)R通道图像  

   

  

2.2.2merge()合并函数

通道合并是通道拆分的逆过程,可以将三个通道的灰度图像合并为一张彩色图像,OpenCV中提供了merge()函数来进行图像的合并,基本格式为;

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

      其中:

           imagebgr是合并后的图像;

           B,g,r分别是B、G、R通道的图像信息。

【例】编写程序,演示图像合并的过程。

import cv2 #导入模块
image=cv2.imread("D:/pycharm/project/project_1/My_OpenCv_python/1.1.jpg")  #读取图像
b,g,r=cv2.split(image)  #拆分图像
imagebgr=cv2.merge([b,g,r])  #合并图像
cv2.imshow("image",image)    #显示原始图像
cv2.imshow('imagebgr', imagebgr)  #显示合并后的图像
cv2.waitKey()   #等待按键
cv2.destroyAllWindows()  #释放窗口

程序运行结果如下;

                                             

                        a)原始图像                                                                                     b)拆分合并后的图像

 

                                               

                                                                                           

  

    1. 图像属性的读取

在进行图像处理时经常需要获取图像的大小、类型等属性信息 。下面介绍几个常见的属性:

  1. shape:表示图像的大小。如果是彩色图像,则返回包含行数、列数和通道数的数组。如果是二值图像和灰度图像,则返回包含行数、列数的数组。
  2. size:表示返回的图像的像素的数目。
  3. dtype:表示返回的图像的数据类型。

 

【例】编写程序,观察图像的属性值。

   

import cv2#导入模块
image=cv2.imread("D:/pycharm/project/project_1/My_OpenCv_python/kenanandxiaolan.png")#读取图像
print("image.dtype",image.dtype)#输出图像的类型属性
print("image.shape",image.shape)#输出图像的大小属性
print("image.size",image.size) #输出图像的像素数目属性

 

程序运行的结果如下:

image.dtype uint8

image.shape (1080, 1920, 3)

image.size 6220800

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值