数字图像处理实验报告全答案Word格式文档下载.docx

上传人:b****4 文档编号:18189242 上传时间:2022-12-14 格式:DOCX 页数:26 大小:775.75KB
下载 相关 举报
数字图像处理实验报告全答案Word格式文档下载.docx_第1页
第1页 / 共26页
数字图像处理实验报告全答案Word格式文档下载.docx_第2页
第2页 / 共26页
数字图像处理实验报告全答案Word格式文档下载.docx_第3页
第3页 / 共26页
数字图像处理实验报告全答案Word格式文档下载.docx_第4页
第4页 / 共26页
数字图像处理实验报告全答案Word格式文档下载.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

数字图像处理实验报告全答案Word格式文档下载.docx

《数字图像处理实验报告全答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数字图像处理实验报告全答案Word格式文档下载.docx(26页珍藏版)》请在冰豆网上搜索。

数字图像处理实验报告全答案Word格式文档下载.docx

5subplot

把图形窗口分成多个矩形部分,每个部分可以分别用来进行显示。

Subplot(m,n,p)分成m*n个小窗口,在第p个窗口中创建坐标轴为当前坐标轴,用于显示图形。

6plot

绘制二维图形

plot(y)

Plot(x,y)xy可以是向量、矩阵。

●图像类型转换

1rgb2gray

N须是0,4,6,8.当N大于0时,圆盘形结构元素由一组N(或N+2)个周期线结构元素来近似。

当N等于0时,不使用近似,即结构元素的所有像素是由到中心像素距离小于等于R的像素组成。

N可以被忽略,此时缺省值是4。

注:

形态学操作在N>

0情况下要快于N=0的情形。

如:

se1=strel('

square'

11)%11乘以11的正方形

4imerode

腐蚀图像

用法:

IM2=imerode(IM,SE) 

腐蚀灰度、二进制或压缩二进制图像IM,返回腐蚀图像IM2。

参数SE是函数strel返回的一个结构元素体或是结构元素体阵列。

使用一个盘状结构元素腐蚀一幅二进制图像。

originalBW=imread('

'

se=strel('

disk'

11);

erodedBW=imerode(originalBW,se);

imshow(originalBW),figure,imshow(erodedBW)

5imdilate

膨胀图像

IM2=imdilate(IM,SE)

膨胀灰度图像、二值图像、或者打包的二值图像IM,返回膨胀图像M2。

变量SE是一个结构元素或者一个结构元素的数组,其是通过strel函数返回的。

利用一个运行结构元素膨胀灰度图像。

I=imread('

ball'

5,5);

I2=imdilate(I,se);

imshow(I),title('

Original'

figure,imshow(I2),title('

Dilated'

三、实验步骤

1、产生运动模糊图像,运用维纳滤波进行图像恢复,显示结果。

i=imread('

f:

I=rgb2gray(s)

I=im2double(I);

%模拟运动模糊

LEN=21;

THETA=11;

PSF=fspecial('

motion'

LEN,THETA);

blurred=imfilter(I,PSF,'

conv'

'

circular'

%恢复图像

wnr2=deconvwnr(blurred,PSF);

subplot(1,2,1);

imshow(blurred);

title('

运动模糊图像'

subplot(1,2,2);

imshow(wnr2);

恢复图像'

2、采用三种不同算子检测图像边缘,显示结果。

BW1=edge(I,'

prewitt'

BW2=edge(I,'

zerocross'

BW3=edge(I,'

canny'

subplot(2,2,1);

原图像'

subplot(2,2,2);

imshow(BW1);

prewitt边缘图'

subplot(2,2,3);

imshow(BW2);

zerocross边缘图'

subplot(2,2,4);

imshow(BW3);

canny边缘图'

3、对二值图像分别进行方形模板3*3和5*5的膨胀和腐蚀操作,显示结果。

i=rgb2gray(a)

I=im2bw(a,

se3=strel('

3);

erodedBW1=imerode(I,se3);

se4=strel('

5);

erodedBW2=imerode(I,se4);

3,3);

I1=imdilate(a,se1);

se2=strel('

I2=imdilate(a,se2);

imshow(I1);

3*3膨胀图像'

imshow(I2);

5*5膨胀图像'

imshow(erodedBW1);

3*3腐蚀图像'

imshow(erodedBW2);

5*5腐蚀图像'

实验六图像处理实际应用

1、熟悉并掌握MATLAB图像处理工具箱的使用;

2、理解并掌握常用的图像处理技术。

三、实验内容

调试运行下列程序,分析程序,对每条语句给出注释,并显示最终执行结果。

总结算法思想及优缺点.

I=imread('

[y,x,z]=size(I);

myI=double(I);

%%%%%%%%%%%RGBtoHSI%%%%%%%%

tic

%%%%%%%%Y方向%%%%%%%%%%

Blue_y=zeros(y,1);

fori=1:

y

forj=1:

x

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

end

[tempMaxY]=max(Blue_y);

%Y方向车牌区域确定

PY1=MaxY;

while((Blue_y(PY1,1)>

=5)&

(PY1>

1))

PY1=PY1-1;

end

PY2=MaxY;

while((Blue_y(PY2,1)>

(PY2<

y))

PY2=PY2+1;

IY=I(PY1:

PY2,:

:

%%%%%%%%X方向%%%%%%%%%%

Blue_x=zeros(1,x);

forj=1:

fori=PY1:

PY2

=119)))

Blue_x(1,j)=Blue_x(1,j)+1;

PX1=1;

while((Blue_x(1,PX1)<

3)&

(PX1<

x))

PX1=PX1+1;

PX2=x;

while((Blue_x(1,PX2)<

(PX2>

PX1))

PX2=PX2-1;

PX1=PX1-2;

%对车牌区域的修正

PX2=PX2+2;

Plate=I(PY1:

PY2,PX1-2:

PX2,:

t=toc%读取计时

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

figure,imshow(I);

figure,plot(Blue_y);

grid

figure,plot(Blue_x);

figure,imshow(IY);

添加注释和改正后的程序:

%读取图片

%给定图片大小

%返回双精度值

tic%计时开始

%一列全零矩阵

y%给定i的范围

x%给定j的范围

%y矩阵加一

%y矩阵的最大元素

1))%确定蓝色RGBBlue_y所在位置

%对车牌区域的修正,向上调整

%y矩阵的最大元素

y))%确定蓝色RGBBlue_y所在位置

%对车牌区域的修正向下调整

%行的范围

%一行全一矩阵

x%给定j的取值范围

PY2%给定i的取值范围

=119)))%调整I中的范围

%Blue_x的矩阵加一

%当PX1等于1时

x))%确定蓝色RGBBlue_x的位置

%当PX2等于x时

PX1))%确定蓝色RGBBlue_x的位置

%对车牌区域的修正

%矩阵行列的范围

t=toc%读取计时

%创建图像窗口,显示图像I

grid%创建图像窗口,绘制Blue_y图像,画出网格线

grid%创建图像窗口,绘制Blue_x图像,画出网格线

figure,imshow(Plate);

%创建图像窗口,显示图像Plate

t=

实验二图像基本操作

1、熟悉及掌握图像的采样原理,实现图像的采样过程,进行图像的灰度转换。

2、理解直方图的概念及应用,实现图像直方图的显示,及通过直方图均衡和直方图规定化方法对图像进行修正。

三、相关函数

●图像的增强

1、直方图

imhist函数用于数字图像的直方图计算或显示,

imhist(I, 

n)计算和显示图像I的直方图,n为指定的灰度级数目,默认为256。

如果I是二值图像,那么n仅有两个值。

[counts,x] 

imhist(...)返回直方图数据向量counts,相应的色彩值向量x。

imhist(i);

2、直方图均衡化

histeq函数用于数字图像的直方图均衡化,

J=histeq(I,n) 

均衡化后的级数n,缺省值为64。

J=histeq(I,hgram)"

直方图规定化"

,即将原是图象I的直方图变换成用户指定的向量hgram(即指定另一幅图像的直方图数据向量)。

j=histeq(i,N);

对图像i执行均衡化,得到具有N个灰度级的灰度图像j,N缺省值为64

3、灰度调整

imadjust函数用于数字图像的灰度或颜色调整,

J=imadjust(I)将灰度图像I中的亮度值映射到J中的新值并使1%的数据是在低高强度和饱和,这增加了输出图像J的对比度值。

J=imadjust(I,[low_in;

high_in],[low_out;

high_out])

将图像I中的亮度值映射到J中的新值,即将low_in至high_in之间的值映射到low_out至high_out之间的值。

low_in以下与high_in以上的值被剪切掉了,也就是说,low_in以下的值映射到low_out,high_in以上的值映射到high_out。

它们都可以使用空的矩阵[],默认值是[01]。

j=imadjust(i,[,],[]);

将图像i转换为j,使灰度值从~与缺省值0~1相匹配

●运算函数

1、Zeros生成全0数组或矩阵

如B=zeros(m,n)orB=zeros([mn])返回一个m*n全0矩阵

2、取整函数

floor最小取整函数

round四舍五入取整函数

ceil最大取整函数

如a=[,,,,,+]

I=round(a)

I=[-203672+4i]

四、实验内容

1、对一幅图像进行2倍、4倍、8倍和16倍减采样,显示结果。

a=imread('

/'

b=rgb2gray(a);

form=1:

4

figure

[width,height]=size(b);

quartimage=zeros(floor(width/(m)),floor(height/(2*m)));

k=1;

n=1;

fori=1:

(m):

width

(2*m):

height

quartimage(k,n)=b(i,j);

n=n+1;

k=k+1;

end

imshow(uint8(quartimage));

End

2、显示一幅灰度图像a,改变图像亮度使其整体变暗得到图像b,显示两幅图像的直方图。

c=rgb2gray(a)

b=c-46

subplot(2,1,1);

imhist(c);

subplot(2,1,2);

imhist(b);

变暗后的图像'

3、对图像b进行直方图均衡化,显示结果图像和对应直方图。

b=imread('

c=rgb2gray(b)

j=histeq(c)

subplot(2,2,1),imshow(c)

subplot(2,2,2),imshow(j)

subplot(2,2,3),imhist(c)%显示原始图像直方图

subplot(2,2,4),imhist(j)%显示均衡化后图像的直方图

4、读入图像c,执行直方图规定化,使图像a的灰度分布与c大致相同,显示变换后图像及对应直方图。

>

J=histeq(I,64);

%均衡化成32个灰度级的直方图

[counts,x]=imhist(J);

%返回直方图图像向量counts

Q=rgb2gray(b)

M=histeq(Q,counts);

%将原始图像Q的直方图变成指定向量counts

figure,

subplot(3,2,1),imshow(I);

subplot(3,2,2),imshow(Q);

subplot(3,2,3),imhist(I);

subplot(3,2,4),imhist(Q)

subplot(3,2,5),imhist(J);

subplot(3,2,6),imhist(M);

实验三图像变换

1、熟悉及掌握图像的变换原理及性质,实现图像的傅里叶变换。

●图像的变换

1fft2

fft2函数用于数字图像的二维傅立叶变换,如:

j=fft2(i);

由于MATLAB无法显示复数图像,因此变换后的结果还需进行求模运算,即调用abs函数。

之后常常还进行对数变换,即调用log函数,以减缓傅里叶谱的快速衰减,更好地显示高频信息。

2ifft2

ifft2函数用于数字图像的二维傅立叶反变换,如:

j=fft2(i);

k=ifft2(j);

3fftshift

用于将变换后图像频谱中心从矩阵的原点移动到矩阵的中心

B=fftshift(i)

4利用fft2计算二维卷积

利用fft2函数可以计算二维卷积,如:

a=[8,1,6;

3,5,7;

4,9,2];

b=[1,1,1;

1,1,1;

1,1,1];

a(8,8)=0;

b(8,8)=0;

c=ifft2(fft2(a).*fft2(b));

c=c(1:

5,1:

5);

利用conv2(二维卷积函数)校验,如:

c=conv2(a,b);

1、对一幅图像进行平移,显示原始图像与处理后图像,分别对其进行傅里叶变换,显示变换后结果,分析原图的傅里叶谱与平移后傅里叶频谱的对应关系。

s=imread('

%读入原图像

i=rgb2gray(s)

i=double(i)

%傅里叶变换

k=fftshift(j);

%直流分量移到频谱中心

l=log(abs(k));

%对数变换

m=fftshift(j);

%直流分量移到频谱中心

RR=real(m);

%取傅里叶变换的实部

II=imag(m);

%取傅里叶变换的虚部

A=sqrt(RR.^2+II.^2);

%计算频谱府幅值

A=(A-min(min(A)))/(max(max(A)))*255;

%归一化

b=circshift(s,[800450]);

%对图像矩阵im中的数据进行移位操作

b=rgb2gray(b)

b=double(b)

c=fft2(b);

e=fftshift(c);

l=log(abs(e));

f=fftshift(c);

WW=real(f);

%取傅里叶变换的实部B

ZZ=imag(f);

B=sqrt(WW.^2+ZZ.^2);

B=(B-min(min(B)))/(max(max(B)))*255;

imshow(s);

imshow(uint8(b));

;

平移图像'

imshow(A);

离散傅里叶频谱'

imshow(B);

平移图像离散傅里叶频谱'

2、对一幅图像进行旋转,显示原始图像与处理后图像,分别对其进行傅里叶变换,显示变换后结果,分析原图的傅里叶谱与旋转后傅里叶频谱的对应关系。

b=imrotate(s,-90);

ims

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1