数字图像处理实验报告Word文件下载.docx
- 文档编号:812157
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:20
- 大小:1.70MB
数字图像处理实验报告Word文件下载.docx
《数字图像处理实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《数字图像处理实验报告Word文件下载.docx(20页珍藏版)》请在冰点文库上搜索。
z=immultiply(x,y);
相乘结果'
Subplot(3,2,6);
z=imdivide(x,y);
相除结果'
3、对一幅图像进行灰度变化,实现图像变亮、变暗和负片效果,在同一个窗口内分成四个子窗口来分别显示,注上文字标题。
Subplot(2,2,1)
\数字图像处理\23.jpg'
imshow(i)
原图'
Subplot(2,2,2)
J=imadjust(i,[],[],3);
imshow(J)
变暗'
Subplot(2,2,3)
J=imadjust(i,[],[],0.4)
变亮'
Subplot(2,2,4)
J=255-i
Imshow(J)
变负'
二、实验总结
分析图像的代数运算结果,分别陈述图像的加、减、乘、除运算可能的应用领域。
解答:
图像减运算与图像加运算的原理和用法类似,同样要求两幅图像X、Y的大小类型相同,但是图像减运算imsubtract()有可能导致结果中出现负数,此时系统将负数统一置为零,即为黑色。
乘运算实际上是对两幅原始图像X、Y对应的像素点进行点乘(X.*Y),将结果输出到矩阵Z中,若乘以一个常数,将改变图像的亮度:
若常数值大于1,则乘运算后的图像将会变亮;
叵常数值小于是,则图像将会会暗。
可用来改变图像的灰度级,实现灰度级变换,也可以用来遮住图像的某些部分,其典型应用是用于获得掩膜图像。
除运算操作与乘运算操作互为逆运算,就是对两幅图像的对应像素点进行点(X./Y),imdivide()同样可以通过除以一个常数来改变原始图像的亮度,可用来改变图像的灰度级,其典型运用是比值图像处理。
加法运算的一个重要应用是对同一场景的多幅图像求平均值
减法运算常用于检测变化及运动的物体,图像相减运算又称为图像差分运算,差分运算还可以用于消除图像背景,用于混合图像的分离。
实验二图像基本操作
1.调试运行8倍减采样程序,分析程序,对每条语句给出注释,并显示最终执行结果。
1、调试运行8倍减采样程序,分析程序,对每条语句给出注释,并显示最终执行结果。
a=imread(‘F:
\3.jpg’);
%读取图片
b=rgb2gray(a);
%变为灰度图像
[wid,hei]=size(b);
%改变图片大小
quartimg=zeros(wid/2+1,hei/2+1);
i1=1;
j1=1;
fori=1:
2:
wid
forj=1:
hei
quartimg(i1,j1)=b(i,j);
j1=j1+1;
end
i1=i1+1;
end
figure
imshow(uint8(quartimg))%显示输出图像
2、显示一幅灰度图像a,改变图像亮度使其整体变暗得到图像b,显示两幅图像的直方图
Subplot(1,2,1);
a=imread('
\数字图像处理实验\数字图像处理\20.jpg'
);
imshow(a);
a'
Subplot(1,2,2);
b=imadjust(a,[],[],3);
b'
显示直方图程序:
imhist(a);
a的直方图'
imhist(b);
b的直方图'
3、对图像b进行直方图均衡化,显示结果图像和对应直方图。
j=histeq(b);
imshow(j);
title('
b均衡化'
imhist(j);
b均衡化后的直方图'
均衡化的图像和直方图:
4、读入图像c,执行直方图规定化,使图像a的灰度分布与c大致相同,显示变换后图像及对应直方图。
[counts,x]=imhist(c);
Subplot(2,2,1);
imshow(a);
图a'
Subplot(2,2,2);
c=imread('
\数字图像处理\13.jpg'
imshow(c);
图c'
Subplot(2,2,3);
j=histeq(a,counts);
Subplot(2,2,4);
imhist(j)
实验三图像变换
1、对一幅图像进行缩小,显示原始图像与处理后图像,分别对其进行傅里叶变换,显示变换后结果,分析原图的傅里叶谱与平移后傅里叶频谱的对应关系。
F:
\数字图象处理\17.jpg'
y=rgb2gray(i);
subplot(2,2,1);
imshow(y);
j=imresize(y,0.5);
subplot(2,2,2);
缩小图'
m=fft2(y);
subplot(2,2,3);
imshow(abs(log(m)),[]);
原图傅里叶变化'
n=fft2(j);
subplot(2,2,4);
imshow(abs(log(n)),[]);
缩小图傅里叶变化'
2、对一幅图像进行旋转,显示原始图像与处理后图像,分别对其进行傅里叶变换,显示变换后结果,分析原图的傅里叶谱与旋转后傅里叶频谱的对应关系。
j=rgb2gray(i);
m=imrotate(j,45,'
bilinear'
imshow(m);
旋转图'
p=fftshift(fft2(j));
imshow(abs(log(p)),[]);
q=fftshift(fft2(m));
imshow(abs(log(q)),[]);
旋转图傅里叶变化'
实验四常用图像增强方法
1、采用二维中值滤波函数medfilt2对受椒盐噪声干扰的图像滤波,窗口分别采用3*3,5*5,7*7
\数字图像处理\24.jpg'
j=imnoise(a,'
salt&
pepper'
0.04);
椒盐噪声图像'
I_Filter1=medfilt2(j,[33]);
imshow(I_Filter1);
3X3'
I_Filter2=medfilt2(j,[55]);
imshow(I_Filter2);
5X5'
I_Filter3=medfilt2(j,[77]);
imshow(I_Filter3);
7X7'
2、采用MATLAB中的函数filter2对受噪声干扰的图像进行均值滤波
subplot(1,2,1);
subplot(1,2,2);
h=fspecial('
average'
m=filter2(h,j);
均值滤波'
3、采用三种不同算子对图像进行锐化处理。
subplot(1,4,1);
\数字图像处理\16.jpg'
i1=rgb2gray(i);
imshow(i1);
原图像'
subplot(1,4,2);
laplacian'
i2=filter2(h,i1);
imshow(i2);
拉式算子'
subplot(1,4,3)
prewitt'
i3=filter2(h,i1);
imshow(i3);
prewitt算子'
)subplot(1,4,4)h=fspecial('
sobel'
i4=filter2(h,i1)imshow(i4);
sobel算子'
1、比较不同平滑滤波器的处理效果,分析其优缺点
中值滤波比低通滤波消除噪声更有效。
因为噪声多为尖峰状干扰,若用低通滤波虽能去除噪声但陡峭的边缘将被模糊。
中值滤波能去除点状尖峰干扰而边缘不会变坏。
理想低通滤波器平滑处理的概念是清晰的,但在处理过程中会产生较严重的模糊和振铃现象。
这种现象正是由于傅里叶变换的性质决定的。
2、比较不同锐化滤波器的处理效果,分析其优缺点
梯度算子:
梯度对应的是一阶导数,梯度算子是一阶导数算子。
梯度方向:
在图像灰度最大变化率上,反映出图像边缘上的灰度变化。
梯度处理经常用于工业检测、辅助人工检测缺陷,或者是更为通用的自动检测的预处理。
拉普拉斯微分算子强调图像中灰度的突变,弱化灰度慢变化的区域。
这将产生一幅把浅灰色边线、突变点叠加到暗背景中的图像。
实验五图像恢复和图像分割
1、产生运动模糊图像,运用维纳滤波进行图像恢复,显示结果。
\car.jpg'
I1=rbg2gray(i);
I=im2double(I1);
subplot(1,3,1)
imshow(I);
title(‘原图像’)
LEN=21;
THETA=11;
PSF=fspecial('
motion'
LEN,THETA);
blurred=imfilter(I,PSF,'
conv'
'
circular'
subplot(1,3,2);
imshow(blurred);
模拟运动模糊图像'
wnr2=deconvwnr(blurred,PSF);
subplot(1,3,3);
imshow(wnr2);
维纳滤波恢复后图像'
2、采用三种不同算子检测图像边缘,显示结果
i=imread('
I=rgb2gray(i);
imshow(I);
BW1=edge(I,'
subplot(2,2,2);
imshow(BW1);
prewit算子边缘检测'
BW2=edge(I,'
zerocross'
subplot(2,2,3);
imshow(BW2);
zerocross算子边缘检测'
BW3=edge(I,'
log'
subplot(2,2,4);
imshow(BW3);
log算子边缘检测'
3、对二值图像分别进行方形模板3*3和5*5的膨胀和腐蚀操作,显示结果。
i=imread('
\16.jpg'
I=im2bw(i,0.5);
subplot(2,3,1);
二值图像'
se=strel('
square'
3);
se1=strel('
5);
I1=imdilate(I,se);
subplot(2,3,2);
imshow(I1);
3*3膨胀图像'
I2=imdilate(I,se1);
subplot(2,3,3);
imshow(I2);
5*5膨胀图像'
subplot(2,3,4);
erodedBW=imerode(I,se);
subplot(2,3,5);
imshow(erodedBW);
3*3腐蚀图像'
erodedBW1=imerode(I,se1);
subplot(2,3,6);
imshow(erodedBW1);
5*5腐蚀图像'
实验六图像处理实际应用
1、调试运行下列程序,分析程序,对每条语句给出注释,并显示最终执行结果。
总结算法思想及优缺点
总结:
对于特定位置的车牌识别算法非常高效,但对于含有噪声等其他因素的车牌分割处理,相对来说算法还有待完善。
三、实验内容
调试运行下列程序,分析程序,对每条语句给出注释,并显示最终执行结果。
总结算法思想及优缺点.
I=imread('
Car.jpg'
[y,x,z]=size(I);
%返回I各维的尺寸,并存储在变量y、x、z中
myI=double(I);
%换成双精度数值
%%%%%%%%%%%RGBtoHSI%%%%%%%%
%begin横向扫描
tic%计算tic与toc之间程序的运行时间
%%%%%%%%Y方向%%%%%%%%%%分割字符按行积累量
Blue_y=zeros(y,1);
%产生y*1的全0矩阵
y%给定i的范围
x:
x%给定j的范围
if((myI(i,j,1)<
=30)&
&
((myI(i,j,2)<
=62)&
(myI(i,j,2)>
=51))&
((myI(i,j,3)<
=142)&
(myI(i,j,3)>
=119)))%蓝色RGB的灰度范围
Blue_y(i,1)=Blue_y(i,1)+1;
%蓝色像素点统计
end
[tempMaxY]=max(Blue_y);
%Y方向车牌区域确定
%temp为向量white_y的元素中的最大值,MaxY为该值的索引(在向量中的位置)
PY1=MaxY;
%y矩阵的最大元素
while((Blue_y(PY1,1)>
=5)&
(PY1>
1))确定蓝色RGBBlue_y所在位置
PY1=PY1-1;
%对车牌区域的修正,向上调整
end
PY2=MaxY;
while((Blue_y(PY2,1)>
(PY2<
y))
PY2=PY2+1;
IY=I(PY1:
PY2,:
:
%IY为原始图像I中截取的纵坐标在PY1:
PY2之间的部分
%end横向扫描
%begin纵向扫描
%%%%%%%%X方向%%%%%%%%%%
Blue_x=zeros(1,x);
%产生y*1的全0矩阵
forj=1:
x
fori=PY1:
PY2
=119)))
Blue_x(1,j)=Blue_x(1,j)+1;
%Blue_x的矩阵加一
PX1=1;
while((Blue_x(1,PX1)<
3)&
(PX1<
x))%确定蓝色RGBBlue_x的位置
PX1=PX1+1;
%对车牌区域的修正向下调整
PX2=x;
while((Blue_x(1,PX2)<
(PX2>
PX1))%确定蓝色RGBBlue_x的位置
PX2=PX2-1;
End
%end纵向扫描
PX1=PX1-2;
%对车牌区域的修正
PX2=PX2+2;
Plate=I(PY1:
PY2,PX1-2:
PX2,:
t=toc%读取计时
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure,imshow(I);
%原始图像'
figure,plot(Blue_y);
grid%创建图像窗口,绘制Blue_y图像,画出网格线'
figure,plot(Blue_x);
grid%创建图像窗口,绘制Blue_x图像,画出网格线'
figure,imshow(Plate);
%车牌截取结果'
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字图像 处理 实验 报告