1原理
2.1 图像灰度化原理
图像灰度化是将彩色图像转换为灰度图像的过程,使得每个像素点仅包含一个灰度值,从而简化了图像的复杂度。灰度化原理主要可以分为以下几种方法:
-
亮度平均法
- 原理:将图像中每个像素的RGB值的平均值作为该像素的灰度值。
- 公式:灰度值 = (R + G + B) / 3
- 优点:简单易懂,计算速度快。
- 缺点:没有考虑到每个颜色通道的重要性,可能会对图像的质量造成影响。
-
加权平均法
- 原理:根据每个颜色通道所表达的亮度值来计算灰度值。由于人眼对于绿色通道的亮度最为敏感,因此绿色通道的权重最高,而红色和蓝色通道的权重相对较低。
- 公式:灰度值 = 0.299R + 0.587G + 0.114B
- 优点:考虑了颜色通道的重要性,可以提高图像的质量。
-
最大值法
- 原理:将每个颜色通道中的最大值作为该像素的灰度值。
- 优点:由于对比度较强,能够突出图像中的主要内容,因此常用于图像边缘检测中。
- 缺点:可能会损失一些图像细节。
-
Gamma校正灰度化
- 原理:由于RGB值与功率并非简单的线性关系,而是幂函数关系,这个函数的指数称为Gamma值,一般为2.2。因此,在灰度化时需要进行Gamma校正。
- 公式:
2.2 图像反白原理
图像反白是将图像的暗色区域变为亮色,亮色区域变为暗色的过程。这通常用于增强图像的对比度,使图像更加清晰。
- 基本原理:对于彩色图像的R、G、B各彩色分量取反,得到反色后的图像。
- 公式:对于像素点(x, y)的RGB值(R, G, B),反白后的RGB值为(255-R, 255-G, 255-B)。这里假设图像是8位无符号整数类型,即RGB值的取值范围是[0, 255]。
通过图像灰度化和反白处理,可以方便地对图像进行后续的分析和处理。
2 代码
%% 图像预处理-灰度化与图像反白
I1 = imread('test.jpeg');
figure;
subplot(2,2,1);%用subplot建立多个子图
imshow(I1);%用imshow显示图像I
title('原始彩色图像');
J=rgb2gray(I1);%将彩色图像工转换为灰度图像J
subplot(2,2,2);imshow(J);% 用imshow显示图像J
title('灰度图像');
subplot(2,2,3);imhist(J);% 计算和显示灰度图像J的灰度直方图
title('灰度直方图');
Ave = mean2(J);%用mean2函数求图像J的均值
SD = std2(double(J));%用std2函数求图像J的均值
s= size(J);%图像大小为s(1)×s(2)
all_white = 255*ones(s(1),s(2));%设置全部为白色灰度255
all_white_uint8=uint8(all_white);%将double类型矩阵转化为uint8类型矩阵
K= imsubtract(all_white_uint8,J);%图像相减得反白图像K
subplot(2,2,4);imshow(K);%用imshow显示图像K
title('反白图像');
3 运行结果
图1 运行结果
有一说一,反白图像这张图是不是挺有感觉的,嘿嘿。