一、实验目的:
(1)进一步掌握图像处理工具Matlab,熟悉基于Matlab的图像处理函数。
(2)掌握各种图像增强方法。
二、实验原理(略)
三、实验步骤(包括分析、代码和波形)
首先来看看这个实验的内容。
1.打开一幅彩色图像Image1,使用Matlab图像处理函数,对其进行下列变换:
(1)将Image1灰度化为gray,统计并显示其灰度直方图;
(2)对gray进行分段线性变换;
(3)对gray进行直方图均衡化;
(4)对gray进行伪彩色增强;
(5)对gray添加噪声并平滑;
(6)对gray利用Sobel算子锐化;
(7)实验要求中的拓展内容。
实验的思路是很明确的,结合原理中的讨论,我们只要按照题目的要求依据参考代码、查看运行并进行验证就可以了,不需要计算。
**下面是第(1)小题的代码。**该部分将Image1灰度化为gray,统计并显示其灰度直方图;
Image1=im2double(imread('fj.jpg'));
gray=rgb2gray(Image1);
imhist(gray);
[h,w]=size(gray);
NewImage1=zeros(h,w);
a=80/256; b=180/256; c=30/256; d=220/256;
for x=1:w
for y=1:h
if gray(y,x)<a
NewImage1(y,x)=gray(y,x)*c/a;
elseif gray(y,x)<b
NewImage1(y,x)=(gray(y,x)-a)*(d-c)/(b-a)+c;
else
NewImage1(y,x)=(gray(y,x)-b)*(255-d)/(255-b)+d;
end
end
end
figure,imshow(NewImage1),title('分段线性变换');
得到的灰度直方图如下图:
**下面是第(2)小题的代码。**对gray进行分段线性变换
Image1=im2double(imread('fj.jpg'));
gray=rgb2gray(Image1);
imhist(gray);
[h,w]=size(gray);
NewImage1=zeros(h,w);
a=80/256; b=180/256; c=30/256; d=220/256;
for x=1:w
for y=1:h
if gray(y,x)<a
NewImage1(y,x)=gray(y,x)*c/a;
elseif gray(y,x)<b
NewImage1(y,x)=(gray(y,x)-a)*(d-c)/(b-a)+c;
else
NewImage1(y,x)=(gray(y,x)-b)*(255-d)/(255-b)+d;
end
end
end
figure,imshow(NewImage1),title('分段线性变换');
得到的分段线性变换如下图:
**下面是第(3)小题的代码。**对gray进行直方图均衡化;
NewImage2=histeq(gray);
figure,imshow(NewImage2),title('直方图均衡化');
得到的直方图均衡化的图如下:
**下面是第(4)小题的代码。**对gray进行伪彩色增强
NewImage3=zeros(h,w,3);
for x=1:w
for y=1:h