【图像篇】OpenCV图像处理(三)---图像数据&通道分离

我要在最细的雨中 吹出银色的花纹 让所有在场的丁香 都成为你的伴娘 

我要张开梧桐的手掌 去接雨水洗脸 让水杉用软弱的笔尖 在风中写下婚约。

— — 顾城 《南国之秋》

前言

      粉丝朋友们,我们又见面了,上周我们一同学习了opencv图像处理的基本显示和保存等操作(【图像篇】OpenCV图像处理(二)---图像读取与显示),既然显示了图像,那么我们就要对其进行一系列的操作了,现在,让我们一同走进今天的学习内容-----【图像数据】&【通道分离】

图像数据

一、图像数据

     首先,我们来了解一点必备知识,在python中,数据结构类型有list、dict、numpy.ndarray 等,数据元素的数据类型(int、float等),下面,我们就来看看jpg图像数据的结构类型和元素的数据类型。

1.代码实践

#coding:utf-8
import cv2


image_path = './02.jpg'
image = cv2.imread(image_path)
print("图像数据结构类型是:{}".format(type(image)))
# python中 dtype()是返回数据元素的数据类型(int、float等)
print("图像数据元素的数据类型是:{}".format(image.dtype))
#cv2.imshow("image",image)
cv2.waitKey(0)
cv2.destroyAllWindows()

代码解读:第五行代码读取名称为02.jpg的图像,随后用print()函数打印出type()、X.dtype()函数的返回值,返回值的解释已在代码中注释了,请各位仔细查看。

2.效果演示:

如上图可以看出,image.dtype返回的是uint8类型,是一个无符号的整形,范围为:{0-255(2的8次方减一)},也就是说图像数据的每一个像素点是由八个二进制位来表示的。

通道分离

二、通道分离

1.图像通道分离及其显示

     前面说过了,OpenCV读取的图像是按照BGR的方式读取的,下面我们就来进行实操图像通道分离和显示单通道图像。

(1)代码实践

    

#coding:utf-8
import cv2


image_path = './02.jpg'
image = cv2.imread(image_path)
print("图像数据结构类型是:{}".format(type(image)))
# python中 dtype()是返回数据元素的数据类型(int、float等)
print("图像数据元素的数据类型是:{}".format(image.dtype))
# B通道分离(blue) 蓝色通道
B_channel = image[:,:,0] 
# G通道分离(green)绿色通道
G_channel = image[:,:,1]
# R通道分离(red)  红色通道
R_channel = image[:,:,2]
cv2.imshow("B_channel",B_channel)
cv2.imshow("G_channel",G_channel)
cv2.imshow("R_channle",R_channel)
cv2.waitKey(0)
cv2.destroyAllWindows()
代码解读:代码中主要部分在于image[:,:,0],该部分主要功能在于对三通道图像(BRG)
对最后一个通道取0,1,2可分别取得B,G,R通道d 图像数据。

(2)显示效果

原图:

小结:从上可以看出,RGB图像可进行通道分离,当进行一些不太关注细节的图像处理时,可以只采取单通道来处理,这样就可以减少图像处理的时间和加快项目推进的速度。

结语

      好了,各位老铁们,今天的知识分享就到这里了,还有什么没讲解到位的,大家后台回复就好,从我们的文章可以看出,我们都是从基础讲解,几乎可以说是面对零基础的同学,并且每次的文章内容都比较简单和简洁,不会太长,因此,下来后大家可以很快的进行实操,不会占用太多的时间,我们下期再会。

往期精彩回顾

【图像篇】OpenCV图像处理(二)---图像读取与显示

【图像篇】opencv图像处理(一)---图像基础知识

【年终总结】辞旧迎新,2020,我们再出发

扫码关注我们

我就知道你“在看”

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值