预览加载中,请您耐心等待几秒...
1/5
2/5
3/5
4/5
5/5

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

图像处理实验二:灰度变换 最后完成时间:2010/10/30 一、基本原理(数学公式): 2-1增强对比度 r1=(t1-t0)/(s1-s0);b1=t0-r1*s0; r2=(t2-t1)/(s2-s1);b2=t1-r2*s1; r3=(t3-t2)/(s2-s1);b3=t2-r3*s2; T1(x,y)=(r1*S+b1)*((S>=0)&(S<s1))+(r2*S+b2)*((S>=s1)&(S<s2))+(r3*S+b3)*((S>=s2)&(S<=s3)); 2-2图像求反T2(x,y)=255-S(x,y) 2-3动态范围压缩T3(x,y)=C*log(1+|S|),C=255/log256 2-4灰度切分T4(x,y)=t1*((S>=0)&(S<s1))+t2*((S>=s1)&(S<s2))+t1*((S>=s2)&(S<=s3)); 二、程序源代码(附注释): GrayscaleTransformation.m %灰度变换GrayscaleTransformation %-------------------------------------------------------------------------- %增强对比度 I1=imread('pout.tif'); figure,subplot(2,3,1);imshow(I1);title('原始图像'); subplot(2,3,4);imhist(I1);title('直方图'); %计算线性变换的系数 s0=0;t0=0; s1=80;t1=25; s2=180;t2=220; s3=255;t3=255; r1=(t1-t0)/(s1-s0);b1=t0-r1*s0; r2=(t2-t1)/(s2-s1);b2=t1-r2*s1; r3=(t3-t2)/(s2-s1);b3=t2-r3*s2; %线性变换过程 S=double(I1); T1=uint8((r1*S+b1).*((S>=0)&(S<s1))+(r2*S+b2).*((S>=s1)&(S<s2))+(r3*S+b3).*((S>=s2)&(S<=s3))); %输出增强对比度后的结果 subplot(2,3,2);imshow(T1);title('增强对比度后的图像'); subplot(2,3,5);imhist(T1);title('直方图'); 实验二:灰度变换 %映射函数 S=0:255;T1=(r1*S+b1).*((S>=0)&(S<s1))+(r2*S+b2).*((S>=s1)&(S<s2))+(r3*S+b3).*((S>=s2)&(S<=s3)); subplot(2,3,6);plot(S,T1);title('映射函数');xlabel('s');ylabel('t');text(80,25,'(80,25)');text(136,125,'Eh(s)');text(1 80,220,'(180,220)'); pause %-------------------------------------------------------------------------- %图像求反 I2=imread('moon.tif'); subplot(2,3,1);imshow(I2);title('原始图像'); subplot(2,3,4);imhist(I2);title('直方图'); %图像求反过程 T2=255-I2; %输出图像求反后的结果 subplot(2,3,2);imshow(T2);title('图像求反后的图像'); subplot(2,3,5);imhist(T2);title('直方图'); %映射函数 S=0:255;T2=255-S; subplot(2,3,6);plot(S,T2);title('映射函数');xlabel('s');ylabel('t');text(130,130,'Eh(s)'); pause %-------------------------------------------------------------------------- %动态范围压缩 I3=imread('circuit.tif'); subplot(2,3,1);imshow(I3);title('原始图像'); subplot(2,3,4);imhist(I3);title('直方图'); %动态范围压缩过程 T3=uint8((255/log(256))*log(1+abs(double(I3)))); %输出动态范围压缩的结果 subplot(2,3,2);ims