图像处理(一) 通过灰度变换来增强图像

通过灰度变换来增强图像

  • 通过灰度变换来增强图像。
  • 结果分析
  • matlab 代码

图像增强是一种基本的图像处理技术,主要是为了改善图像的质量以及增强感兴趣部分,改善图像的视觉效果或使图像变得更利于计算机处理。对数变换函数对图像的低灰度区作较大拉伸、高灰度区作压缩,这种变换能使图像的灰度分布与人的视觉特性相匹配,对数变换一般适用于处理过暗图像。指数变换函数对图像的低灰度区压缩、高灰度区作较大拉伸,指数变换一般适用于处理过亮图像。

通过灰度变换来增强图像。

使用以下方法增强:
(a)用等式 s = c log ⁡ ( 1 + r ) {s = c\log (1 + r)} s=clog(1+r)的对数变换对图一进行图像增强

图一

图像处理(一) 通过灰度变换来增强图像_第1张图片

(b)用等式 s = c r b {s = c{r^{\rm{b}}}} s=crb的指数变换对图二进行图像增强。

图二

图像处理(一) 通过灰度变换来增强图像_第2张图片

在(a)中只有参数c, 但在(b)中需要给定2个参数, c和b,与许多增强任务一样,必须通过实验来选择这些参数,使增强后的图像有最好的视觉效果。

结果分析

图像处理(一) 通过灰度变换来增强图像_第3张图片

对数变换函数增强图像较暗部分,如上述结果 其中经过试验调试之后的参数c=25

图像处理(一) 通过灰度变换来增强图像_第4张图片

指数变换增强效果可以较好处理图像过亮部分,如上述结果 其中经过试验调试之后的参数c=1.1,b=0.9

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('指数变换图像增强')

你可能感兴趣的:(图像处理,图像处理,matlab)