全域性截取式分段式灰度变换.doc
文本预览下载声明
一、实验目的:
理解线性灰度变换的原理,掌握三种灰度变换算法的实现
二、实验内容:
全域线性灰度变换:选择一副对比度不足的图像,对该图像进行全域线性灰度变换,增强对比度,显示增强前,后的图像以及它们的灰度直方图。
截取式线性灰度变换:选择一副对比度不足的图像,对该图像进行截取式线性灰度变换,增强对比度,显示增强前,后的图像以及它们的灰度直方图。
分段线性灰度变换:选择一副对比度不足的图像,对该图像进行分段线性灰度变换,增强对比度,显示增强前,后的图像以及它们的灰度直方图。
三、实验要求:
通过编程方法实现图像的三种线性灰度变换,并将变换前后的图像及其直方图进行比较。
用Matlab编程求图像直方图,并将其结果与Matlab命令imhist的结果进行比较。
撰写实验报告并附上所用程序和结果。
四、实验结果:
全域线性灰度变换
clear ;clc;
i=imread(pout.tif);
d=double(i);
a=min(min(d));
b=max(max(d));
a1=0.0;b1=255.0;
d2=(b1-a1)/(b-a)*(d-a)+a1;
i2=uint8(d2);
subplot(221),imshow(i);
subplot(222),imshow(i2);
subplot(223),imhist(i);
subplot(224),imhist(i2);
截取式线性灰度变换
clear ;clc;
i=imread(pout.tif);
d=double(i);
imhist(i);
a=75.0;b=150.0;
a1=0.0;b1=255.0;
n1=find(iaib);
n2=find(ia);
n3=find(ib);
d2=d;
d2(n1)=(d(n1)-a)*(b1-a1)/(b-a)+a1;
d2(n2)=a1;
d2(n3)=b1;
i2=uint8(d2);
subplot(221),imshow(i);
subplot(222),imshow(i2);
subplot(223),imhist(i);
subplot(224),imhist(i2);
分段线性灰度变换
clear ;clc;
i=imread(pout.tif);
di=double(i);
imhist(i);
a=min(min(di));
b=max(max(di));
c=120.0;d=150.0;
a1=0.0;b1=255.0;
c1=30.0;d1=171.0;
n1=find(di=adic);
n2=find(di=cdid);
n3=find(di=ddib);
di2=di;
di2(n1)=(di(n1)-a)*(c1-a1)/(c-a)+a1;
di2(n2)=(di(n2)-c)*(d1-c1)/(d-c)+c1;
di2(n3)=(di(n3)-d)*(b1-d1)/(b-d)+d1;
i2=uint8(di2);
subplot(221),imshow(i);
subplot(222),imshow(i2);
subplot(223),imhist(i);
subplot(224),imhist(i2);
Matlab编程求图像直方图,plot,bar函数的区别:
clear;clc;
i=imread(pout.tif);
[m,n]=size(i);
p=zeros(1,256);
for x=1:m
for y=1:n
p(i(x,y)+1)= p(i(x,y)+1)+1;
end
end
p=p/(m*n);
subplot(1,2,1),plot(p);
subplot(1,2,2),imhist(i);
5
显示全部