ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

数字图像处理:基本操作(灰度化、二值化)

2021-07-18 15:01:58  阅读:269  来源: 互联网

标签:数字图像处理 矩阵 像素点 灰度 图像 基本操作 二值化 255


图像(各种图形和影像的总称):图像是人类视觉的基础,是自然景物的客观反映,是人类认识世界和人类本身的重要源泉。“图”是物体反射或透射光的分布,“像“是人的视觉系统所接受的图在人脑中所形成的印象或认识,照片、绘画、剪贴画、地图、书法作品、手写汉学、传真、卫星云图、影视画面、X光片、脑电图、心电图等都是图像。

数字图像是由扫描仪、摄像机等输入设备捕捉实际的画面产生的图像。由像素点阵构成的位图

计算机中的图像从处理方式上可以分为位图和矢量图

-------------------上述来自百科解读

在图像处理中,用RGB三个分量(R:Red,G:Green,B:Blue),即红、绿、蓝三原色来表示真彩色,R分量,G分量,B分量的取值范围均为0~255,比如电脑屏幕上的一个红色的像素点的三个分量的值分别为:255,0,0。

像素点:像素点是最小的图像单元,一张图片由好多的像素点构成。

R:行;C:列。

  比如上述图片1,我们查看信息为:

这个图像是一个一个三通道的彩色图片,尺寸是1296 * 972 的,宽度是1296像素,高度是972像素。也就是说这张图片是由一个1296* 972的像素点矩阵构成的(不理解矩阵是什么意思的话,可以把矩阵理解为C语言中的二维数组),这个矩阵是972行,1296列,像素是图像的最小单元,这张图片的宽度是1296个像素点的长度,高度是976个像素点的长度,共有1296* 976= 1264896个像素点。

因为一个像素点的颜色是由RGB三个值来表现的,所以一个像素点矩阵对应三个颜色向量矩阵,分别是R矩阵,G矩阵,B矩阵,它们也都是1296*972大小的矩阵。

比如黄色点的像素点位于第536行,第988列坐标就是(196,179,171) 。

在计算机视觉里,一般用矩阵来表示图像。也就是说,无论你的图片看上去多么好吃,对计算机来说都不过是个矩阵而已。

在这个矩阵里,每一个像素就是矩阵中的一个元素。在三通道的彩色图像中,这个元素是由三个数字组成的元组。

而对于单通道的灰度图像来说,这个元素就是一个数字。这个数字代表了图像在这个点的亮度,数字越大像素点也就越亮,在常见的八位单通道色彩空间中,0代表全黑,255代表全白。

 这个图片参考自:https://zhuanlan.zhihu.com/p/360824614

对于上述图像1可以进行灰度化操作:图像的灰度化

在理解了一张图片是由一个像素点矩阵构成之后,我们就知道我们对图像的处理就是对这个像素点矩阵的操作,想要改变某个像素点的颜色,我们只要在这个像素点矩阵中找到这个像素点的位置,比如第x行,第y列,所以这个像素点在这个像素点矩阵中的位置就可以表示成(x,y),因为一个像素点的颜色由红、绿、蓝三个颜色变量表示,所以我们通过给这三个变量赋值,来改变这个像素点的颜色,比如改成绿色(0,255,0),可以表示为(x,y,(R=0,G=255,B=0))。

那么什么叫图片的灰度化呢?其实很简单,就是让像素点矩阵中的每一个像素点都满足下面的关系:R=G=B(就是红色变量的值,绿色变量的值,和蓝色变量的值,这三个值相等,“=”的意思不是程序语言中的赋值,是数学中的相等),此时的这个值叫做灰度值。

PS:灰度图像,而并不是灰度化的图像,灰度化的图像应该是单通道的。(不太确定灰度化的区别)

单通道是灰度图,灰度图不一定是单通道的。(因为灰度图也有可能是三通道的即R=G=B)

灰度处理的方法:一般灰度处理经常使用两种方法来进行处理

方法1:

          灰度化后的R=(处理前的R + 处理前的G +处理前的B)/ 3

          灰度化后的G=(处理前的R + 处理前的G +处理前的B)/ 3

          灰度化后的B=(处理前的R + 处理前的G +处理前的B)/ 3

方法2:

           灰度化后的R =  处理前的R * 0.3+ 处理前的G * 0.59 +处理前的B * 0.11

           灰度化后的G =  处理前的R * 0.3+ 处理前的G * 0.59 +处理前的B * 0.11

           灰度化后的B =  处理前的R * 0.3+ 处理前的G * 0.59 +处理前的B * 0.11

对于上述图像1可以进行二值化操作:图像的二值化

什么叫图像的二值化?二值化就是让图像的像素点矩阵中的每个像素点的灰度值为0(黑色)或者255(白色),也就是让整个图像呈现只有黑和白的效果。在灰度化的图像中灰度值的范围为0~255,在二值化后的图像中的灰度值范围是0或者255即二值图像每个像素只有两种取值:要么纯黑,要么纯白。

二值化可以看做灰度图的一种特殊形式。

黑色:

               二值化后的R =  0

               二值化后的G =  0

               二值化后的B =  0

      白色:

               二值化后的R =  255

               二值化后的G =  255

               二值化后的B =  255

 那么一个像素点在灰度化之后的灰度值怎么转化为0或者255呢?比如灰度值为100,那么在二值化后到底是0还是255?这就涉及到取一个阀值的问题。

常用的二值化方法:

      方法1:

          取阀值为127(相当于0~255的中数,(0+255)/2=127),让灰度值小于等于127的变为0(黑色),灰度值大于127的变为255(白色),这样做的好处是计算量小速度快,但是缺点也是很明显的,因为这个阀值在不同的图片中均为127,但是不同的图片,他们的颜色分布差别很大,所以用127做阀值,白菜萝卜一刀切,效果肯定是不好的。

方法2:

        计算像素点矩阵中的所有像素点的灰度值的平均值avg=(像素点1灰度值+...+像素点n灰度值)/ n = 像素点平均值avg。 然后让每一个像素点与avg一 一做比较,小于等于avg的像素点就为0(黑色),大于avg的 像素点为255(白色),这样做比方法1好一些。

方法3:

          使用直方图方法(也叫双峰法)来寻找二值化阀值,直方图是图像的重要特质。直方图方法认为图像由前景和背景组成,在灰度直方图上,前景和背景都形成高峰,在双峰之间的最低谷处就是阀值所在。取到阀值之后再一 一比较就可以了。

书上对于灰度图与二值图的解释:

 最后PS:

二值化操作针对单通道图像;因为二值是针对单通道的,所以二值化后的图像还是单通道

而3通道(R=B=G)的图像形成的灰度图就是传统意义上的灰度图. 而图像处理所说的灰度图一般指单通道图。

所以有的同学很纠结的问我到底是3通道还是单通道,我觉得没必要纠结于灰度图和二值图是三通道还是单通道,就默认一般使用的是单通道,除非别人代码没有将三通道转化为单通道直接使用的3通道图片在操作,那么你就要注意一下这个通道问题了。

比如通道问题会带来一些你看不到的信息:

https://blog.csdn.net/qinlele1994/article/details/89402495

标签:数字图像处理,矩阵,像素点,灰度,图像,基本操作,二值化,255
来源: https://blog.csdn.net/m0_37957160/article/details/118875762

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有