当前位置:文档之家› MATLAB 同态滤波 程序

MATLAB 同态滤波 程序

close all; %关闭全部在运行的窗口
I=imread('sub8b.tif');
I=im2double(I); %转换数据类型
K(:,:,1)=medfilt2(I(:,:,1));
K(:,:,2)=medfilt2(I(:,:,2));
K(:,:,3)=medfilt2(I(:,:,3));
figure,imshow(uint8(K));
title('原始图像');
bg32=blockproc(K(:,:,1),[32,32],@Min_Val);
%估计图像背景的照度,通过取32x32大小图像块中最小值做图像背景的照度
figure,surf(bg32); %显示背景图像的三维表现
title('背景图像取样后的三位表现');
bg256=imresize(bg32,[1098,1082],'bicubic'); %调整图像大小
figure,imshow(bg256);
%将粗略估计的背景矩阵扩展成与原始图像大小相同的矩阵,这是通过双三次插值实现的title('总体背景灰度');
II(:,:,1)=K(:,:,1)-bg256;
II(:,:,2)=K(:,:,2)-bg256;
II(:,:,3)=K(:,:,3)-bg256;
%从原始图像中减去估计出的背景图像以消去照度不均匀的影响,但使图像变暗figure,imshow(uint8(II));
title('减去背景后图像');
III=imadjust(II,@MAX_V al,[0,256],gamma); %通过指定图像灰度的范围,调整图像灰度%III(:,:,1)=imadjust(II(:,:,1));
%III(:,:,2)=imadjust(II(:,:,2));
%III(:,:,3)=imadjust(II(:,:,3));
figure,imshow(uint8(III));
title('灰度调整后图像');。

相关主题