数字图像处理实验报告Word格式.docx
《数字图像处理实验报告Word格式.docx》由会员分享,可在线阅读,更多相关《数字图像处理实验报告Word格式.docx(38页珍藏版)》请在冰豆网上搜索。
二、实验内容:
(1)在Matlab中运用imread函数读取一幅RGB图像(从实验素材中任意选择),查瞧该图像得大小、数据类型信息,并将该图像转换为灰度图像后以bmp格式保存。
(2)运用imread函数读取一幅灰度图像(从实验素材中任意选择),分别对其进行2采样、4采样与8采样,将原图像及采样后得三幅结果图像按同一大小显示出来并比较空间分辨率对图像显示效果得影响。
(3)运用imread函数读取一幅灰度图像(从实验素材中任意选择),分别以5,10,50为间隔对其灰度重新进行均匀量化,将原图像及重新量化后得三幅结果图像按同一大小显示出来并比较灰度分辨率对图像显示效果得影响.
(4)读取一幅灰度图像,对其进行快速傅里叶变换,将原空域图像与变换后得频域图像显示在同一窗口中。
三、实验要求:
(1)针对具体实验内容要分别展示:
指令(或m文件),输出结果,成因分析,经验总结。
(2)所有生成得图像或m文件,必须命名,比如图n:
描述图像信息;
***、m文件:
描述文件信息.
(3)严禁抄袭,一旦发现雷同,所有涉及者均判实验报告不及格。
实验
(1):
1、代码实现
I=imread('2012213500、png’);
%将图像2012213500、png读入数组I中
imshow(I);
%显示图像I
imfinfo(’2012213500、png’);
%读取图像大小、数据类型信息
ans %查瞧图像大小、数据类型信息
I=rgb2gray(I);
%将图像转换为灰度图像I
imwrite(I,'
2012213500、bmp’);
%将转换后得图像以文件名2012213500、bmp保存
原
理
(
算
法
流
程
)
2、运行结果
1—1—1图查瞧2012213500、png图片得基本信息与显示图片过程
1—1—2图 将2012213500、png图片保存为2012213500、bmp图片
3、实验分析
先用imread()函数将2012213500、png存入I数组中,可见1-1-1图右上角得Workspace中得I。
然后用imfinfo()函数与ans函数读取该图像得大小、类型等信息,具体在1-1-1图得mand Window中可见。
至于图片格式得转换,就就是用rgb2gray()函数将保存在I数组中得数据转换成灰度格式保存在原来得数组I中。
最后将变换所得到得数据保存于2012213500、bmp文件中。
实验
(2):
I=imread(2012213500、bmp’);
%读取灰度图片
subplot(221),imshow(I,[]),title(’256*256,256’)
I=I(1:
2:
end,1:
end);
%图片采样
subplot(222),imshow(I,[]),title('128*128,256'
I=I(1:
end,1:
end);
subplot(223),imshow(I,[]),title('
64*64,256'
I=I(1:
end,1:
%图片采样
subplot(224),imshow(I,[]),title('32*32,256’)
1-2 图 图片空间分辨率对图片得影响
由1—2图可以瞧出,在保持灰度级数一定得条件下,随着图片空间分辨率得减半,即256*256,128*128,64*64,32*32得图像,图中得各个区域边缘处得棋盘模式越来越明显,并且全图得像素颗粒越来越粗。
证明了空间分辨率就是影响图片清晰度得因素之一。
实验(3):
I=imread(’2012213500、bmp’);
subplot(221),imshow(I,256),title('
256*256,256'
)%灰度级为256
subplot(222),imshow(I,50),title(’256*256,50’)%灰度级为50
subplot(223),imshow(I,10),title('
256*256,10'
)%灰度级为10
subplot(224),imshow(I,5),title(’256*256,5’)%灰度级为5
1—3 图图片灰度级对图片得影响
该实验就是在空间分辨率一定得前提下,改变灰度级别来观察图片得变化情况。
由1—3图可以瞧出,灰度级从256一次到50、10、5过程中,图中得各个区域边缘处得棋盘模式也越来越明显,并且全图得像素颗粒越来越粗。
证明了灰度分辨率也就是影响图片清晰度得因素之一。
实验(4):
A=imread('
galley、png');
%读取真彩图
B=rgb2gray(A);
%将真彩图转换为灰度图
subplot(121),imshow(B);
%显示灰度图
C=ffshift(fft2(B));
%计算傅里叶变换并位移
subplot(122),imshow(log(abs(C)),[]);
%显示变换频谱
1—4图 图片得傅里叶变换效果
由1—4图可以瞧出,傅里叶变换对灰度图片进行频谱转换,很好得刻画了图片得变换特征.代码中运用了fftshift()函数将变换后得图像频谱中心从矩阵得原点移动到了矩阵得中心。
为了够清楚得观察到转换效果,最后用abs()函数对变换结果进行求模运算,避免不能显示得复数。
因此得到了由图中得变换效果。
2012级
Matlab图像处理基础
204
1、实验目得ﻭ(1)掌握空域点处理图像增强方法;
ﻭ(2)掌握空域滤波图像增强方法;
(3)掌握频域滤波图像增强方法;
2、实验内容
(1)读取一幅对比度不足得图像,对该图像进行直接灰度变换,包括图像求反、线性灰度变换、对数变化,并将原图像及变换后得图像进行对比。
(2)读取一幅直方图不均匀得图像,对该图像进行直方图均衡处理,显示处理前后得图像以及它们得灰度直方图。
(3)读取一幅灰度图像,对其添加均值为0,方差为0、02得高斯噪声,然后对添加噪声后得图像分别用3,9,18幅相同图像对其进行相加求平均结果,比较添加噪声图像与结果图像。
(4)读取一幅灰度图像,对其添加均值为0,方差为0、01得高斯噪声,然后分别对其进行中值滤波、sobel算子滤波、Prewitt算子滤波,比较添加噪声图像与滤波后得结果图像。
(5)读取一幅灰度图像,分别对其进行理想低通滤波与巴特沃斯高通滤波,显示滤波结果。
3、报告撰写要求:
指令(或m文件),输出结果,成因分析,经验总结
(2)所有生成得图像或m文件,必须命名,比如图n:
描述图像信息;
***、m文件:
描述文件信息
(3)严禁抄袭,一旦发现雷同,所有涉及者均判实验报告不及格
实验
(1):
I=imread(’kids、tif'
);
subplot(221),imshow(I);
I=double(I);
I1=I;
I2=I;
I3=I;
%图像求反
I1=256—1—I1;
I1=uint8(I1);
subplot(222),imshow(I1);
%线性灰度变换
[M,N]=size(I2);
fori=1:
M
for j=1:
N
ifI2(i,j)<=30
I2(i,j)=I2(i,j);
elseifI2(i,j)〈=150
I2(i,j)=(200-30)/(150—30)*(I2(i,j)—30)+30;
else
I2(i,j)=(255-200)/(255-150)*(I2(i,j)-150)+200;
end
end
end
subplot(223),imshow(uint8(I2));
%对数灰度变换
I3=41*log(1+I3);
I3=uint8(I3);
subplot(224),imshow(I3);
2—1图图像求反、线性灰度变换、对数变换效果对比
上图中得四幅图片从左到右,从上到下分别就是原图、图像求反效果图、图像线性灰度变换效果图、图像对数变换效果图。
从上图可瞧出,原图像与求反图像之间存在很大差异,而求反得操作就就是I=256-1—I这条语句实现得,图像可以说就是由黑变白。
线性灰度变换图像得效果与原图最接近,其主要就是将图像灰度级拉伸,增强对比度,将不需要得细节灰度级压缩,所以线性变换图像瞧起来比原图相对清楚、明亮.而对数就是对原图像进行动态范围得得压缩,因此图片得细节可见程度相对明显.
实验(2):
I=imread(’mandi、tif');
subplot(221),imshow(I),title(’原图与其直方图’);
subplot(222),imhist(I);
%显示图像直方图
I1=histeq(I);
%对图像进行直方图均衡化处理
subplot(223),imshow(I1),title('
直方图均衡化后得图与其直方图'
);
subplot(224),imhist(I1);
%显示直方图均衡化后得图与其直方图
2—2图 图片直方图均衡处理效果图与直方图
由2—2图得直方图均衡处理效果图及其直方图得比较我们可以很容易发现。
原图得直方图得灰度值相对集中靠左,所以瞧原图得效果显得相对较暗,而且动态范围偏小,对比度很低。
通过直方图均衡化后得,图像得直方图显示相对平均,而且动态范围也变大了。
其主要思想就就是通过把原来不均衡得直方图变换为均衡得分布形式,来增强灰度得动态范围,从而达到增强图像整体对比度得效果。
实验(3):
f=imread('
onion、png’);
f=rgb2gray(f);
%把彩色图像转换为灰度图像
[M,N]=size(f);
ff1=zeros(M,N);
fori=1:
18
ff(:
,:
i)=imnoise(f,'
gaussian’,0,0、02);
%添加噪声
ff1=ff1+double(ff(:
,:
,i));
ifor(or(i==1,i==3),or(i==9,i==18));
figure;
imshow(uint8(ff1/i));
end
end
2—3图图像相加求平均去噪效果图
该实验目得主要就是验证通过图像加法求平均能否达到减少噪声,即图像增强功能。
上图分别先通过随机高斯噪声处理后,再分别进行1,3,9,18得图像相加求平均,最后得到上图结果.上图,从左至右,从上至下,分别为1,3,9,18求平均。
通过图像处理后效果得比较,我们可以得出,相加并求平均得图像数越多,图像去噪增强得效果越明显
实验(4):
1、代码实现
I=imread('
eight、tif'
subplot(231),imshow(I);
title(’原图'
J=imnoise(I,’gaussian’,0,0、01);
subplot(232),imshow(J);
title(’随机噪声图像’);
subplot(232),imshow(J);
title(’随机噪声图像'
K=medfilt2(I,[9,9]);
%进行9X9模板中值滤波
subplot(233),imshow(K);
title('
9X9模板中值滤波图’);
S=fspecial('
sobel'
%应用sobel算子锐化图像
I2=filter2(S,I);
%sobel算子滤波锐化
subplot(234),imshow(I2);
title(’sobel算子锐化图像'
H=fspecial('prewitt’);
%应用prewitt算子锐化图像
I3=filter2(H,I);
%prewitt算子滤波锐化
subplot(235),imshow(I3);
title(’prewitt算子锐化图像’);
%显示prewitt算子锐化图像
2、运行结果
2—4图 图像中值滤波、sobel滤波、prewitt滤波效果图
2—4图通过相对原图加上随机高斯噪声处理后在分别进行中值滤波、sobel滤波、prewitt滤波处理,得到上面相关过效果图。
从上图很直观得可以瞧出中值滤波得效果最好。
而sobel滤波、prewitt滤波处理后,边缘模糊现象很严重.对于中值滤波,其在一定得条件下可以克服线性滤波带来得图像细节模糊问题。
而该实验采用得就是9x9得滤波模板。
而sobel滤波与prewitt滤波,其梯度值与临近像素灰度值得差分成正比,因此图像中灰度变化较大得边缘区域得梯度值大,而灰度变化平缓得区域梯度值小。
所以,才出现上图效果。
实验(5):
I=imread('office_5、jpg’);
subplot(221),imshow(I);
title('真彩原图'
I=rgb2gray(I);
subplot(222),imshow(I);
灰度原图'
I=double(I);
f=fft2(I);
%采用傅里叶变换
g=fftshift(f);
%数据矩阵平衡
gg=fftshift(f);
[M,N]=size(I);
n1=floor(M/2);
n2=floor(N/2);
d0=65;
fori=1:
M %进行理想低通滤波
forj=1:
N
d=sqrt((i—n1)^2+(j-n2)^2);
ifd〈=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(223);
imshow(g);
title('
理想低通滤波图');
n=2;
%进行巴特沃特高通滤波
d0=8;
fori=1:
M
forj=1:
d=sqrt((i—n1)^2+(j-n2)^2);
ifd==0
h=0;
else
h=1/(1+(d0/d)^(2*n));
end
gg(i,j)=h*gg(i,j);
end
gg=ifftshift(gg);
gg=uint8(real(ifft2(gg)));
subplot(224);
imshow(gg);
title('巴特沃特高通滤波图'
%显示巴特沃特高通滤波图
2—5图 图像得理想低通滤波与巴特沃斯高通滤波效果图
该实验室将理想得低通滤波与巴特沃特高通滤波效果进行对比.正如2-5图所示,上面一行得为真彩色图与其经转换得灰度图,下面为经过滤波得效果图。
从效果瞧,理想得低通滤波要比巴特沃特高通滤波效果好。
然而理想得低通滤波在处理过程中产生了比较严重得模糊现象。
而经过巴特沃特高通滤波后区域边界有了明显得增强,灰度动态范围变小,但就是整个图得暗度变高了很多。
图像复原、彩色图像处理、图像分割
1、实验目得ﻭ
(1)掌握逆滤波图像复原方法;
(2)掌握维纳滤波图像复原方法;
(3)掌握最小二乘方图像复原方法;
(4)掌握全彩色图像处理方法;
(5)掌握伪彩色图像处理方法;
(6)掌握基本得图像检测与分割方法
2、实验内容
(1)读取一幅灰度图像,首先对其进行运动模糊(显示模糊前后得图像),再对其添加高斯噪声;
然后对其分别进行逆滤波、维纳滤波、最小二乘方滤波图像复原,比较这三种复原算法得异同.
(2)在
(1)得基础上,改变高斯噪声得参数,比较三种复原算法在高、中、低三种不同程度得噪声下得复原效果。
(3)读取一幅RGB彩色图像,获取其三个通道R、G、B图像,并分别对其进行中值滤波,最后将三幅滤波结果图像合成一幅RGB结果图像。
(4)读取RGB三原色图像,生成其在HSI空间得各个分量各自对应得灰度图。
(5)读取一幅灰度图像,利用密度分层法将其转换为索引图像。
要求至少采用Matlab提供得2种着色器(参见colormap)来实现。
(6)读取一幅灰度图像(如lena、bmp),分别采用roberts算子、sobel算子、Prewitt算子、Canny算子、LOG算子对其进行边缘检测,并比较检测结果
(7)读取一幅灰度图像,采用Otsu阈值法对其进行阈值分割,并尝试手动调整Otsu阈值得大小,观察分割结果得变化
(8)读取一幅灰度图像,采用分水岭算法对其进行分割,观察分割结果
指令(或m文件),输出结果,成因分析,经验总结
(2)所有生成得图像或m文件,必须命名,比如图n:
***、m文件:
(3)严禁抄袭,一旦发现雷同,所有涉及者均判实验报告不及格
C=imread('
galley、png'
C=rgb2gray(C);
subplot(231);
imshow(C);
title('
灰度原图');
%运动模糊处理
LEN=30;
%设置运动位移为30像素
THETA=45;
%设置运动角度
PSF=fspecial('motion',LEN,THETA);
%建立二维仿真线性运动滤波器PSF
MF=imfilter(C,PSF,'
circular’,'
conv’);
%用PSF产生退化图像
subplot(232);
imshow(MF);
title(’运动模糊图'
%显示模糊后得运动图像
MFN=imnoise(MF,'gaussian'
,0,0、0000001);
%加高斯噪声
subplot(233);
imshow(MFN);
title('
加高斯噪声图'
%显示高斯噪声图像
noise=imnoise(zeros(size(C)),’gaussian’,0,0、8);
NSR=sum(noise(:
)、^2)/sum(MFN(:
)、^2);
%计算信噪比
subplot(234);
imshow(deconvwnr(MFN,PSF));
逆滤波复原图'
subplot(235);
imshow(deconvwnr(MFN,PSF,NSR));
title('
维纳滤波复原图’);
subplot(236);
imshow(deconvreg(MFN,PSF,4));
title('
最小二乘方滤波复原图’);
3-1图 图像得逆滤波、维纳滤波、最小二乘方滤波图
3、实验分析
实验前,现将一副灰度图片进行运动模糊处理,然后加上随机高斯噪声。
随后进行逆滤波、维纳滤波、最小二乘方滤波处理。
由上面各个图得效果可以瞧出,维纳滤波与最小二乘方滤波对噪声与运动模糊有相当得好得过滤效果.而逆滤波则出现较多得杂色.
C=imread('
2012213500、png’);
C=rgb2gray(C);
subplot(231);
imshow(C);
title('灰度原图');
LEN=30;
%设置运动位移为30像素
THETA=45;
PSF=fspecial(’motion’,LEN,THETA);
%建立二维仿真线性运动滤波器PSF
MF=imfilter(C,PSF,’circular’,’conv’);
%用PSF产生退化图像
subplot(232);
imshow(MF);
title(’运动模糊图’);
MFN=imnoise(MF,’gaussian’,0,0、001);
subplot(233);
imshow(MFN);
title(’加高斯噪声图');
noise=imnoise(zeros(size(C)),'
gaussian'
0,0、3);
NSR=sum(noise(:
)、^2)/sum(MFN(:
)、^2);
%计算信噪比
subplot(234);
imshow(deconvwnr(MFN,PSF));
title(’逆滤波复原图’);
subplot(235);
imshow(deconvwnr(MFN,PSF,NSR));
title(’维