数字图像处理第二次免费范文精选
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告
哈尔滨工程大学教务处制
1.实验项目名称:基于Matlab语言的数字图像处理技术
2.实验目的:
熟悉并掌握基于Matlab语言的数字图像增强(直方图增强、均值滤波、中值滤波)、变换(高、低通滤波)和分割等处理技术。
3.实验内容与实验步骤:
1)选做1
(1)对一幅灰度图像tire.tif(图1),采用histeq函数灰度直方图均衡化,在一个窗口中显示原始和均衡化图,以及相应得的直方图(函数imhist)。
程序如下:
>> I=imread('tire.tif');
J=histeq(I);
subplot(2,2,1);
imshow(I);
title('原始图象');
subplot(2,2,2);
imhist(I);
title('原始图象直方图')
axis([0 255 0 2500]);
subplot(2,2,3);
imshow(J);
title('均衡化后的图象');
subplot(2,2,4);
imhist(J);
axis([0 255 0 2550]);
title('均衡化后的直方图');
(2)对一幅带有噪声图像rice.png(图2),分别选择3×3、5×5等模板进行均值滤波(函数filter2和fspecial),以及采用medfilt2进行函数非线性模板中值滤波,同时观察噪声图像、不同尺寸模板的滤波后图像,对噪声的滤波效果图像进行比较。
程序如下:
>> I=imread('rice.png');
>> K1=imfilter(I,fspecial('average',3));
>> K2=imfilter(I,fspecial('average',5));
>> K3=medfilt2(I,[3,3]);
>> K4=medfilt2(I,[5,5]);
>> subplot(2,3,1);
>> imshow(I);
>> title('原始图象');
>> subplot(2,3,2);
imshow(K1);
title('3*3模板均值滤波');
>> subplot(2,3,3);
imshow(K2);
title('5*5模板均值滤波');
>> subplot(2,3,4);
imshow(K3);
title('3*3模板中值滤波');
subplot(2,3,5);
imshow(K4);
title('5*5模板中值滤波');
(3)采用函数fspecial,用sobel算子、prewitt算子、log算子对某一图像进行锐化滤波,并观察滤波效果。
程序如下:
>> I=imread('D:\MATLAB7\toolbox\images\imdemos\rice.png');
[BW1,T1]=edge(I,'sobel');
[BW2,T2]=edge(I,'prewitt');
[BW3,T3]=edge(I,'log');
subplot(2,2,1);imshow(I);title('原始图像');
subplot(2,2,2);imshow(BW1);title('sobel边缘检测');
subplot(2,2,3);imshow(BW2);title('prewitt边缘检测');
subplot(2,2,4);imshow(BW3);title('log边缘检测');
(4)对一幅图像加入椒盐噪声后,采用函数lpfilter实现低通滤波,采用函数hpfilter实现高通滤波,并分析滤波效果。
程序如下:
>> J=imread('D:\MATLAB7\toolbox\images\imdemos\eight.tif');
subplot(3,3,1);imshow(J);
J=double(J);
f=fft2(J);
g=fftshift(f);
subplot(3,3,2);imshow(log(abs(g)),[]);
color(jet(64));
[M,N]=size(f);
n1=floor(M/2);
n2=floor(N/2);
d0=5;
for i=1:M
for j=1:N
d=sqrt((i-n1)^2+(j-n2)^2);
if d<=d0
h=1;
else h=0;
end
g(i,j)=h*g(i,j);
end
end
g=ifftshift(g);
g=uint8(real(ifft2(g)));
subplot(3,3,3);
imshow(g)
>> J=imread('D:\MATLAB7\toolbox\images\imdemos\eight.tif'); subplot(2,3,1);imshow(uint8(J));
xlabel('(a)模糊图像');
J=double(J);
f=fft2(J);
g=fftshift(f);
subplot(2,3,2);imshow(log(abs(g)),[]);
color(jet(64));。