图像处理之二值图像、灰度图像、RGB图像
1、二值图像
定义:二值图像是值仅仅包含黑色和白色的图像
计算机在处理时,会把黑色像素点处理为0,白色像素点处理1。由于只用一个比特位就能表示,所以称之为二值图像。
2、灰度图
为了表达更丰富的颜色细节,灰度图采用更多的数值来体现不同的颜色。
在计算机中,灰度被划为256个等级,用数值区间[0,255]表示。其中,白色被表示为255,黑色被表示为0。0到255刚好可以用一个字节进行表示。
而在opencv中,最小的数据类型是无符号的8位数。因此,在OpenCV中实际上并没有二值图像这种数据类型,二值图像经常是通过处理得到的,然后使用0表示黑色,使用255表示白色。
一个 OpenCV 灰度图像是一个二维数组,可以使用表达式访问其中的像素值。例如,可以使用image[0,0]访问图像image第0行第0列位置上的像素点。第0行第0列位于图像的左上角,其中第1个索引表示第0行,第2个索引表示第0列。
img[0,0]=255
3、彩色图像
相比二值图像和灰度图像,彩色图像是更常见的一类图像,它能表现更丰富的细节信息。
在 RGB 色彩空间中,存在 R(red,红色)通道、G(green,绿色)通道和 B(blue,蓝色)通道,共三个通道。每个色彩通道值的范围都在[0,255]之间,我们用这三个色彩通道的组合表示颜色。
例如,对于图2-5左侧的彩色图像,可以理解为由右侧的R通道、G通道、B通道三个通道构成。其中,每一个通道都可以理解为一个独立的灰度图像。左侧彩色图像中的白色方块内的区域对应右侧三个通道的三个矩阵,白色方块左上角顶点的RGB值为(205,89,68)。
一般情况下,在RGB色彩空间中,图像通道的顺序是R→G→B,即第1个通道是R通道,第2个通道是G通道,第3个通道是B通道。
需要特别注意的是,在OpenCV中,通道的顺序是B→G→R,即:
● 第1个通道保存B通道的信息。
● 第2个通道保存G通道的信息。
● 第3个通道保存R通道的信息。
RGB模式的彩色图像在读入OpenCV内进行处理时,会按照行方向依次读取该RGB图像的B通道、G通道、R通道的像素点,并将像素点以行为单位存储在ndarray的列中。
例如,可以使用image[0,0,0]访问图像image的B通道内的第0行第0列上的像素点,式中:
● 第1个索引表示第0行。
● 第2个索引表示第0列。
● 第3个索引表示第0个颜色通道。
根据上述分析可知,假设有一个红色(其R通道值为255,G通道值为0,B通道值为0)图像,不同的访问方式得到的值如下。
print("读取像素点img[0,3]=",img[0,3])
得到
读取像素点img[0,3]=255
print("读取像素点img[0,3,0]=",img[0,3,0])
得到
读取像素点img[0,3,0]=0
print("读取像素点img[0,3,1]=",img[0,3,1])
得到
读取像素点img[0,3,1]=0
print("读取像素点img[0,3,2]=",img[0,3,2])
得到文章来源:https://www.toymoban.com/news/detail-739540.html
读取像素点img[0,3,2]=255
摘自:《OpenCV轻松入门:面向Python》 — 李立宗
在豆瓣阅读书店查看:https://read.douban.com/ebook/130453291/?from=book
本作品由电子工业出版社授权豆瓣阅读中国大陆范围内电子版制作与发行。
© 版权所有,侵权必究。文章来源地址https://www.toymoban.com/news/detail-739540.html
到了这里,关于图像处理(二值图、灰度图、彩色图像)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!