通过灰度变换来增强图像
图像增强是一种基本的图像处理技术,主要是为了改善图像的质量以及增强感兴趣部分,改善图像的视觉效果或使图像变得更利于计算机处理。对数变换函数对图像的低灰度区作较大拉伸、高灰度区作压缩,这种变换能使图像的灰度分布与人的视觉特性相匹配,对数变换一般适用于处理过暗图像。指数变换函数对图像的低灰度区压缩、高灰度区作较大拉伸,指数变换一般适用于处理过亮图像。
通过灰度变换来增强图像。
使用以下方法增强:
(a)用等式
s
=
c
log
(
1
+
r
)
{s = c\log (1 + r)}
s=clog(1+r)的对数变换对图一进行图像增强
(b)用等式 s = c r b {s = c{r^{\rm{b}}}} s=crb的指数变换对图二进行图像增强。
在(a)中只有参数c, 但在(b)中需要给定2个参数, c和b,与许多增强任务一样,必须通过实验来选择这些参数,使增强后的图像有最好的视觉效果。
结果分析
matlab 代码
clc
clear
close all
c=25;
image1=imread('fig1.jpg');
% image2=imread('fig2.tif');
%对1进行对数变换
image1_out=uint8(zeros(size(image1)));
for i=1:size(image1,1)
for j=1:size(image1,2)
image1_out(i,j)=uint8(c*log(1+double(image1(i,j))));
end
end
figure
subplot(1,2,1)
imshow(image1)
title('原图像')
subplot(1,2,2)
imshow(image1_out)
title('对数变换增强图像')
图像二代码
clc
clear
close all
c=1.1;
b=0.9;
image2=imread('fig2.tif');
%对2进行指数变换
image2_out=uint8(zeros(size(image2)));
for i=1:size(image2,1)
for j=1:size(image2,2)
image2_out(i,j)=uint8(c*double(image2(i,j))^b);
end
end
figure
subplot(1,2,1)
imshow(image2)
title('原图像')
subplot(1,2,2)
imshow(image2_out)
title('指数变换图像增强')