实验二图像增强..doc
文本预览下载声明
数字图像处理数学方法实验报告
实验二 图像增强
专业: 信息与计算科学 班级: 1304班 学号: 20130404428 姓名: 卫妮
二〇一五年十一月五日
实验目的
1、了解图像增强的体系结构;
2、熟悉灰度变换、直方图修正在数字图像增强方面的作用及各自的特点;
3、掌握图像增强的灰度变换法、直方图修正法。
实验内容
读入一幅有明显明暗缺陷的灰度图像,画出其灰度直方图;
从视觉和直方图统计信息两方面分析该图像的特征;
设计合理的图像增强函数(分段灰度线性变换法、非线性变换法)改善图像的视觉效果;
试用直方图均衡法改善图像的视觉效果;
实验步骤及分析
1、设置当前工作目录;
打开matlab,从“文件”菜单选择“Set Path”,弹出“Set Path”窗体,单击“Add Folder…”按钮或“Add with Subfolders…”按钮,弹出“浏览文件夹”窗口,选择自己的文件夹添加到当前工作目录中,点击“确定”,返回到“Set Path”窗体,依次点击“Save”按钮、“Close”按钮,完成当前工作目录的设置。
2、使用imread函数读入一幅有明显明暗缺陷的灰度图像
3、使用rgb2gray(I)函数将读入的图像I转换成灰度图像I_Gray
4、计算每级灰度出现的概率,将其存入GP,然后直方图均衡化,将sk归到相近级的灰度
5、使用subplot()函数和imshow()函数显示原图像直方图、均衡化后的直方图、原图像和直方图均衡后的图像
源代码(请对程序进行注释说明)
clear all;
I = imread(2.jpg); %使用imread函数读入一幅有明显明暗缺陷的灰度图像
I=rgb2gray(I); %使用rgb2gray(I)函数将读入的图像I转换成灰度图像I_Gray,
[m,n]=size(I); %设置矩阵I的大小
GP=zeros(1,256);
for k=0:255 ?
GP(k+1)=length(find(I==k))/(m*n); %计算每级灰度出现的概率,将其存入GP
end
S1=zeros(1,256); %直方图均衡化
for i=1:256
for j=1:i
S1(i)=GP(j)+S1(i);
end
end
S2=round((S1*256)+0.5); %将sk归到相近级的灰度
for i=1:256
GPeq(i)=sum(GP(find(S2==i))); %计算现在有每个灰度级出现的概率
end
figure;
subplot(221);bar(0:255,GP,b);
title(原图的直方图)
subplot(222);bar(0:255,GPeq,b)
title(均衡化后的直方图)
X=I;
for i=0:255
X(find(I==i)) = S2(i+1);
end
subplot(223);imshow(I);
title(原图) ;
subplot(224);imshow(X);
title(均衡化后的图像);
变幻线
I=imread(cameraman.tif);
subplot(2,3,1); imshow(I); title(原始灰度图像);
subplot(2,3,2); imhist(I); title(原始图像灰度直方图);
%分析后图像的灰度值集中分布于100~140之间,50~140,140~200灰度级间像素分布均匀
%缺少0~50,200~255灰度级的像素
%实现分段灰度线性变换
%灰度值在0~100变换到0~50,100~140变换到50~200,140~200变换到200~255
g0=0; f0=0;
g1=50; f1=100;
g2=200; f2=140;
g3=255; f3=255;
subplot(2,3,3);
X=[f0 f1 f2 f3];
Y=[g0 g1 g2 g3];
plot(X,Y);
title(变换线);
k1=(g1-g0)/(f1-f0);
k2=(g2-g1)/(f2-f1);
k3=(g3-g2)/(f3-f2);
[m n]=size(I);
I=double(I);
for i=1:m
for j=1:n
if(I(i,j)=f0)(I(i,j)f1) G(i,j)=k1*I(i,j);
else if(I(i,j)=f1)(I(i,j)f2) G(i,j)=k2*(I(i,j)-f1)+g1;
else
显示全部