文章目录
前言
灰度变换直接作用于图像像素,改变像素灰度值。灰度变换主要包括:1、灰度反转;2、对数变换;3、冥律变换;4、分段线性变换。学习教材:数字图像处理(冈萨雷斯)
一、灰度反转
图像反转将灰度图像的黑白对调。
1.计算公式(以256级灰度图为例)
g(x,y)=255-f(x,y)
2.MATLAB代码
代码如下(示例):
clc;clear;close all
im1=imread('1.jpg'); %读取图像:彩色图
figure
imshow(im1)
im2=rgb2gray(im1); %获得灰度图
figure
imshow(im2)
im3=255-im2; %灰度反转
figure
imshow(im3)
二、对数变换
1.计算公式
s=c*log(1+r)
c为常数,r>=0.
2.MATLAB代码
代码如下(示例)
clc;clear;close all
im1=imread('1.jpg'); %读取图像:彩色图
figure
imshow(im1)
im2=rgb2gray(im1); %获得灰度图
figure
imshow(im2)
im2=im2double(im2); %log运算一般处理double类型
c=2; %系数c
im3=c*log(1+im2); %对数变换,或者S=log(1+v*r)/(log(v+1));
im3=im2uint8(im3); %MATLAB一般显示uint8类型
figure
imshow(im3)
三、冥律变换
1.计算公式
2.MATLAB代码
代码如下(示例)
clc;clear;close all
im1=imread('1.jpg'); %读取图像:彩色图
figure
imshow(im1)
im2=rgb2gray(im1); %获得灰度图
figure
imshow(im2)
im2=im2double(im2); %运算一般处理double类型
c=2; %系数c
a=2; %系数a
im3=c*im2.^a; %冥律变换
im3=im2uint8(im3); %MATLAB一般显示uint8类型
figure
imshow(im3)
3.伽马系数
四、分段线性变换
1.对比度拉伸
用于扩展图像灰度级
示例图:
对应公式:
对应MATLAB程序:
代码如下(示例)
clc;clear;close all
im1=imread('1.jpg'); %读取图像:彩色图
figure
imshow(im1)
im2=rgb2gray(im1); %获得灰度图
figure
imshow(im2)
[M,N]=size(im2);
for x=1:M %分段线性变换
for y=1:N
if im2(x,y)<=80
im3(x,y)=im2(x,y)/2;
elseif im2(x,y)>80&&im2(x,y)<=160
im3(x,y)=2*im2(x,y)-120;
else
im3(x,y)=(11/19)*im2(x,y)+107+7/19;
end
end
end
im3=uint8(im3);
figure
imshow(im3)
2.灰度级分层
突出图像中特定灰度范围的亮度
图来自数字图像处理教材
3.比特平面分层
如对灰度级为256即2^8的图像来说,将图像分为8个比特层:
第一层:
第二层:
同理得到8幅图像。