灰度图与二值化

article/2025/8/29 22:38:28

 

图像处理的灰度化和二值化

在图像处理中,用RGB三个分量(R:Red,G:Green,B:Blue),即红、绿、蓝三原色来表示真彩色,R分量,G分量,B分量的取值范围均为0~255,比如电脑屏幕上的一个红色的像素点的三个分量的值分别为:255,0,0。
像素点
  像素点是最小的图像单元,一张图片由好多的像素点构成,下图是一张美女的大白腿的图片。
图像处理的灰度化和二值化
查看这张图片的信息,尺寸是800 * 800 的,宽度是800像素,高度是800像素。也就是说这张图片是由一个800 * 800的像素点矩阵构成的(不理解矩阵是什么意思的话,可以把矩阵理解为C语言中的二维数组),这个矩阵是800行,800列,像素是图像的最小单元,这张图片的宽度是800个像素点的长度,高度是800个像素点的长度,共有800 * 800 = 640000个像素点。
图像处理的灰度化和二值化
因为一个像素点的颜色是由RGB三个值来表现的,所以一个像素点矩阵对应三个颜色向量矩阵,分别是R矩阵,G矩阵,B矩阵,它们也都是800 *800大小的矩阵。下面展示这张美女图片的一部分颜色矩阵数据:
这个是R矩阵中的一部分
图像处理的灰度化和二值化
这个是G矩阵中的一部分
图像处理的灰度化和二值化
这个是B矩阵中的一部分
图像处理的灰度化和二值化

比如每个矩阵的第一行第一列的值分别为:R:240,G:223,B:204,所以这个像素点的颜色就是(240,223,204),三个矩阵的值不一定一 一对应,这样做只是为了便于读者理解。
图像的灰度化
    在理解了一张图片是由一个像素点矩阵构成之后,我们就知道我们对图像的处理就是对这个像素点矩阵的操作,想要改变某个像素点的颜色,我们只要在这个像素点矩阵中找到这个像素点的位置,比如第x行,第y列,所以这个像素点在这个像素点矩阵中的位置就可以表示成(x,y),因为一个像素点的颜色由红、绿、蓝三个颜色变量表示,所以我们通过给这三个变量赋值,来改变这个像素点的颜色,比如改成红色(255,0,0),可以表示为(x,y,(R=255,G=0,B=0))。
那么什么叫图片的灰度化呢?其实很简单,就是让像素点矩阵中的每一个像素点都满足下面的关系:R=G=B(就是红色变量的值,绿色变量的值,和蓝色变量的值,这三个值相等,“=”的意思不是程序语言中的赋值,是数学中的相等),此时的这个值叫做灰度值。
灰度处理的方法:
一般灰度处理经常使用两种方法来进行处理。
方法1:
灰度化后的R=(处理前的R + 处理前的G +处理前的B)/ 3
灰度化后的G=(处理前的R + 处理前的G +处理前的B)/ 3
灰度化后的B=(处理前的R + 处理前的G +处理前的B)/ 3
美女图片经过方法1进行灰度化后的效果如下:
图像处理的灰度化和二值化
 
方法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
美女图片经过方法2进行灰度化后的效果如下: 图像处理的灰度化和二值化
个人觉得第二种方法处理的效果比较好,第一种方法处理后的图片有点模糊。
图像的二值化
    什么叫图像的二值化?二值化就是让图像的像素点矩阵中的每个像素点的灰度值为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:
使用直方图方法(也叫双峰法)来寻找二值化阀值,直方图是图像的重要特质。直方图方法         认为图像由前景和背景组成,在灰度直方图上,前景和背景都形成高峰,在双峰之间的最低         谷处就是阀值所在。取到阀值之后再一 一比较就可以了。
下面给出一张美女图片二值化后的效果图:(漂亮的大白腿依稀可见。)
图像处理的灰度化和二值化
 
分享:

灰度图

 

灰度图,Gray Scale Image 或是Grey Scale Image,又称灰阶图。把白色与黑色之间按对数关系分为若干等级,称为灰度。灰度分为256阶。

用灰度表示的图像称作灰度图。除了常见的卫星图像、航空照片外,许多地球物理观测数据也以灰度表示。

中文名

灰度图

别    名

灰阶图

释    义

用灰度表示的图像

英    译

Gray Scale Image、Grey Scale Image

常见示例

卫星图像、航空照片

灰度分阶

256阶

目录

  1. 1 灰度图定义
  2. 2 Gamma校正
  3. 3 计算方法
  4. 4 彩色图像
  5. 5 制作方法

灰度图定义

 

灰度图

除了常见的卫星图像、航空照片外,许多地球物理观测数据也以灰度表示。以位场图像为例,把位场表示为灰度图,需要将位场观测值灰度量化,即将场的变化范围转换成256阶的灰度范围。由于位场的动态变化范围非常大,磁场可达数万个纳特,重力场也可能在数百个重力单位内变化,所以在显示为图像前通常需要对位场观测值进行拉伸或压缩。

灰度图灰度图

灰度图灰度图

灰度图

什么叫灰度图?任何颜色都有红、绿、蓝三原色组成,而灰度图只有一个通道,他有256个灰度等级,255代表全白,0表示全黑。在Windows操作系统中可以使用画图的颜色编辑功能,将红绿蓝三个通道的数值设定为相同值就可以看到其对应的灰度效果。假如原来某点的颜色为RGB(R,G,B),那么,我们可以通过下面几种方法,将其转换为灰度:

Gamma校正

 

RGB值与功率并非简单的线性关系,而是幂函数关系,这个函数的指数称为Gamma值,一般为2.2,而这个换算过程,称为Gamma校正。

为什么显示器要Gamma校正呢?因为人眼对亮度的感知和物理功率不成正比,而是幂函数的关系,这个函数的指数通常为2.2,称为Gamma值。

打个比方,功率为50%的灰色,人眼实际感知亮度为

 

而人眼认为的50%中灰色,实际功率为

 

所以RGB中的灰度值,为了考虑到较小的存储范围(0~255)和较平衡的亮暗部比例,所以需要进行Gamma校正,而不是直接对应功率值,因此RGB值RGB颜色值不能简单直接相加,而是必须用2.2次方换算成物理光功率后才能进行下一步计算。这一点在下面的灰度计算公式中就有所体现。

计算方法

 

任何颜色都由红、绿、蓝三基色组成,假如原来某点的颜色为RGB(R,G,B),那么,我们可以通过下面几种方法,将其转换为灰度:

1.浮点法:Gray=R*0.3+G*0.59+B*0.11

2.整数法:Gray=(R*30+G*59+B*11)/100

3.移位法:Gray =(R*77+G*151+B*28)>>8;

4.平均值法:Gray=(R+G+B)/3;

5.仅取绿色:Gray=G;

以上五种老式算法计算值均有误差,这些方法对于Gamma校正的图片(平常所见到的24位真彩色图片均为Gamma校正的图片)并不适用。

为什么呢?因为刚才说了,Gamma校正后的分量值不是物理上的功率,不能直接相加,因此,需要提出一种全新的,改进的算法来纠正这一问题。

6.Gamma校正算法:

 

注意这里的2.2次方和2.2次方根,RGB颜色值不能简单直接相加,而是必须用2.2次方换算成物理光功率。因为RGB值与功率并非简单的线性关系,而是幂函数关系,这个函数的指数称为Gamma值,一般为2.2,而这个换算过程,称为Gamma校正。

求得Gray后,将原来的RGB(R,G,B)中的R,G,B统一用Gray替换,形成新的颜色RGB(Gray,Gray,Gray),用它替换原来的RGB(R,G,B)就是灰度图了。鉴于精确度的要求,在高质量图片处理中最好使用公式6进行计算,以保证准确度。

彩色图像

 

彩色图像通常由几个叠加的彩色通道构成,每个通道代表给定通道的值。例如,RGB图像由三个独立的红色,绿色和蓝色原色分量组成。

这里是一个完整的RGB彩色图像的颜色通道分裂的例子。左边的列显示了自然颜色的孤立的颜色通道,而右边则显示了它们的灰度等值。

反过来也是可能的:从他们单独的灰度通道建立一个全彩色的图像。通过改变通道,使用偏移,旋转和其他操作,可以实现艺术效果,而不是准确地再现原始图像。

来自3个灰度图的RGB的组成来自3个灰度图的RGB的组成

单通道灰度图是由单个像素点通过8位的灰度值(0-255)来表示。例如一幅500*500像素的单通道灰度图是由500X500=250000个不同灰度的像素点组成。

制作方法

 

在photoshop cs4以及以上版本中,都也可以实现 [1]  。

方法:打开你所编辑的图片,依次打开图像,在选择模式,再择灰度。

 


http://chatgpt.dhexx.cn/article/lGFVTlHy.shtml

相关文章

opencv学习5:cvtColor RGB图像转灰度图像原理

简介 将彩色图像转化成为灰度图像的过程成为图像的灰度化处理。彩色图像中的每个像素的颜色有R、G、B三个分量决定,而每个分量有255中值可取,这样一个像素点可以有1600多万(255*255*255)的颜色的变化范围。而灰度图像是R、G、…

Matplotlib显示灰度图

引言 matplotlib中的imshow()函数不能自动显示灰度图像,这一点应该是众所周知的,需要调用cmap“gray"以进行设置,但是cmap"gray"实际上并不是如opencv中的imshow函数一样将单通道图显示为灰度图,私以为是引入了灰度…

python显示灰度图像,Python读取图像并显示灰度图的实现

python读取图像 原图: import cv2 # 利用opencv读取图像 import numpy as np # 利用matplotlib显示图像 import matplotlib.pyplot as plt img cv2.imread("./lena.png") #读取图像 # 显示图像 plt.imshow(img) plt.axis(off) plt.show() 效果: 问&#…

OpenCV灰度图

什么是灰度图&#xff1a; 百度百科 什么是灰度图 #include <opencv2/opencv.hpp> #include <iostream>using namespace cv; using namespace std;int main(int argc, char** argv) {Mat src Mat(4,4,CV_8UC3,Scalar(28,128,228));cout << src << en…

RGB图像转化为灰度图原理

RGB图像转化为灰度图原理 1 原理 利用MATLAB对RGB图像进行读取&#xff1a; imgimread(蒙娜丽莎.jpg);可以知道存储RGB图像数据为 256 256 3 u i n t 8 256\times256 \times3\quad uint8 2562563uint8&#xff0c;其中 256 256 256\times256 256256表示长和宽的像素个数&…

彩色图像转换灰度图像

数字图像 现在我们所接触到的图像绝大多数都是数字图像&#xff0c;图像数字化后&#xff0c;每个像素点就可以看作是一个小方格&#xff0c;每个小方格里面存储的就是图像的像素信息。如果把一副数字图像抽象出来&#xff0c;就是一个二维矩阵&#xff08;灰度图&#xff09;或…

Python灰度图像彩色化

1️⃣作业要求 给定一幅灰度图像&#xff0c;使用任意方法将其变成一幅彩色图像&#xff0c;并尽量使得添加的色彩显得较为真实。 2️⃣核心代码 这里我们是直接调用了eccv16和siggraph17的模型&#xff0c;运行程序时会自动下载这两个model文件&#xff0c;然后经过对图像的…

matlab 绘制灰度图

matlab 将矩阵中不同数值所对应的区域用 不同深度的灰度图画出来&#xff0c;不显示坐标轴标签&#xff0c;并设置在画布上全屏显示。 if 1close allrng (7)mask_allrand(256,256)*10;mask_allround(mod(mask_all,2));mask_allsort(mask_all);mask_all(1:100,1:50)0;mask_all(…

matlab读取一幅灰度图,Matlab处理灰度图

作业2&#xff1a;通过图像分析的方法对如下图像进行分析&#xff0c;获取颗粒特性参数。具体参数包括图像中的颗粒个数&#xff0c;颗粒面积&#xff0c;颗粒等效直径&#xff0c;非球形颗粒的长/短轴&#xff0c;非球形颗粒的方位。 图1 待处理颗粒图像 步骤&#xff1a; (1)…

python灰度图

任务描述 背景   真彩色图像和灰度图像是数字图像的两种常见类型&#xff0c;如下图所示&#xff0c;左图是真彩色图像&#xff0c;右图是灰度图像。    在真彩色图像中&#xff0c;像素颜色是 RGB 颜色&#xff0c;每个颜色包含 R、G、B 三个颜色分量。而在灰度图像中&…

图像处理--灰度图

灰度图 灰度图&#xff0c;Gray Scale Image 或是Grey Scale Image&#xff0c;又称灰阶图。把白色与黑色之间按对数关系分为若干等级&#xff0c;称为灰度。灰度分为256阶。 灰度图定义 什么叫灰度图&#xff1f;任何颜色都有红、绿、蓝三原色组成&#xff0c;假如原来某点…

OpenCV(三)彩色图灰度化、通道分离、单通道反差处理(灰度图)、多通道反差处理(彩色图)

目录 一、彩色图灰度化 1、主要函数cvtColor()介绍 2、代码 3、效果 二、通道分离 1、向量介绍 2、总代码 3、效果 三、单通道(灰度图)反差处理 1、单通道向量访问 2、代码 3、效果 四、多通道(彩色图)反差处理&#xff08;彩色图的反差处理&#xff09; 1、多…

灰度图与RGB图

1.灰度图 灰度图就是单通道图像&#xff0c;而单通道图是指维度数为2的图像。 而灰度就是没有色彩&#xff0c;RGB色彩分量全部相等&#xff08;可将这点与下文的RGB图进行对比&#xff09;。那么灰度图的每个像素点就只有一个值表示颜色&#xff0c;像素值的范围就是[0~255]。…

ER图、ERD图

ER图、ERD图 1. 什么是ERD1.1 举例 2. ERD符号指南2.1 实体2.2 属性2.3 主键2.4 外键2.4 关系2.5 基数2.5.1 一对一的基数的例子2.5.2 一对多的基数的例子2.5.3 多对多的基数的例子 3.概念、逻辑和物理数据模型3.1 概念数据模型3.2 逻辑数据模型3.3 物理数据模型 4.如何绘制ER图…

2.2.2 ER图

2.2.2 ER图 关系型数据库提供了SQL语言&#xff0c;使应用程序开发人员与数据库管理和维护人员能够与数据库进行交互。但是在创建数据库和数据表之前&#xff0c;需要对数据库中的数据表进行设计&#xff0c;并能够正确设计出各数据表之间的关联关系。 通常使用ER图&#xf…

【系统架构】ER图的画图规范和优化点

文章目录 什么是ER图ER图的画图规范组成部分步骤注意 实例 第三弹&#xff0c;讲讲ER图的画图规范以及优化点 什么是ER图 E-R图也称实体-联系图(Entity Relationship Diagram)&#xff0c;提供了表示实体类型、属性和联系的方法&#xff0c;用来描述现实世界的概念模型 ER图…

学好er图

一、什么是er图&#xff1f; ​ 1、 实体-联系图(Entity-Relation Diagram)用来建立数据模型,在数据库系统概论中属于概念设计阶段&#xff0c;形成一个独立于机器&#xff0c;独立于DBMS的ER图模型。 通常将它简称为ER图&#xff0c;相应地可把用ER图描绘的数据模型称为ER模型…

ER图学习笔记(附各个图型的举例,实战案例)

ER图常用图形如下&#xff1a; ER图图形含义详解 实体&#xff08;长方体&#xff09;&#xff1a; 实体字面意思就是实际存在的&#xff0c;例如商品&#xff0c;货物&#xff0c;用户。 属性&#xff08;椭圆&#xff09;&#xff1a; 属性我们不陌生&#xff0c;就是一个…

enterprise architect绘画ER图

ER图的实体&#xff08;entity&#xff09;即数据模型中的数据对象&#xff0c;例如人、学生、音乐都可以作为一个数据对象&#xff0c;用长方体来表示&#xff0c;每个实体都有自己的实体成员&#xff08;entity member&#xff09;或者说实体对象&#xff08;entity instance…

数据库ER图

ER图的实体&#xff08;entity&#xff09;即数据模型中的数据对象&#xff0c;例如人、学生、音乐都可以作为一个数据对象&#xff0c;用长方体来表示&#xff0c;每个实体都有自己的实体成员&#xff08;entity member&#xff09;或者说实体对象&#xff08;entity instance…