数字图像处理实验报告全答案.docx

上传人:b****1 文档编号:535540 上传时间:2023-04-29 格式:DOCX 页数:25 大小:23.13KB
下载 相关 举报
数字图像处理实验报告全答案.docx_第1页
第1页 / 共25页
数字图像处理实验报告全答案.docx_第2页
第2页 / 共25页
数字图像处理实验报告全答案.docx_第3页
第3页 / 共25页
数字图像处理实验报告全答案.docx_第4页
第4页 / 共25页
数字图像处理实验报告全答案.docx_第5页
第5页 / 共25页
数字图像处理实验报告全答案.docx_第6页
第6页 / 共25页
数字图像处理实验报告全答案.docx_第7页
第7页 / 共25页
数字图像处理实验报告全答案.docx_第8页
第8页 / 共25页
数字图像处理实验报告全答案.docx_第9页
第9页 / 共25页
数字图像处理实验报告全答案.docx_第10页
第10页 / 共25页
数字图像处理实验报告全答案.docx_第11页
第11页 / 共25页
数字图像处理实验报告全答案.docx_第12页
第12页 / 共25页
数字图像处理实验报告全答案.docx_第13页
第13页 / 共25页
数字图像处理实验报告全答案.docx_第14页
第14页 / 共25页
数字图像处理实验报告全答案.docx_第15页
第15页 / 共25页
数字图像处理实验报告全答案.docx_第16页
第16页 / 共25页
数字图像处理实验报告全答案.docx_第17页
第17页 / 共25页
数字图像处理实验报告全答案.docx_第18页
第18页 / 共25页
数字图像处理实验报告全答案.docx_第19页
第19页 / 共25页
数字图像处理实验报告全答案.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

数字图像处理实验报告全答案.docx

《数字图像处理实验报告全答案.docx》由会员分享,可在线阅读,更多相关《数字图像处理实验报告全答案.docx(25页珍藏版)》请在冰点文库上搜索。

数字图像处理实验报告全答案.docx

数字图像处理实验报告全答案

实验一常用MATLAB图像处理命令

一、实验目的

1、熟悉并掌握MATLAB工具的使用;

2、实现图像的读取、显示、代数运算和简单变换。

二、实验环境

MATLAB6.5以上版本、WIN*P或WIN2000计算机

三、常用函数

●读写图像文件

1imread

imread函数用于读入各种图像文件,如:

a=imread('e:

\w01.tif')

2imwrite

imwrite函数用于写入图像文件,如:

imwrite(a,'e:

\w02.tif',’tif’)

3imfinfo

imfinfo函数用于读取图像文件的有关信息,如:

imfinfo('e:

\w01.tif')

●图像的显示

1image

image函数是MATLAB提供的最原始的图像显示函数,如:

a=[1,2,3,4;4,5,6,7;8,9,10,11,12];

image(a);

2imshow

imshow函数用于图像文件的显示,如:

i=imread('e:

\w01.tif');

imshow(i);

title〔‘原图像’〕%加上图像标题

3colorbar

colorbar函数用显示图像的颜色条,如:

i=imread('e:

\w01.tif');

imshow(i);

colorbar;

4figure

figure函数用于设定图像显示窗口,如:

figure

(1);/figure

(2);

5subplot

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

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

6plot

绘制二维图形

plot〔y〕

Plot〔*,y〕*y可以是向量、矩阵。

●图像类型转换

1rgb2gray//灰色

把真彩图像转换为灰度图像

i=rgb2gray〔j〕

2im2bw//黑白

通过阈值化方法把图像转换为二值图像

I=im2bw〔j,level〕

Level表示灰度阈值,取值围0~1〔即0.n〕,表示阈值取自原图像灰度围的n%

3imresize

改变图像的大小

I=imresize〔j,[mn]〕将图像j大小调整为m行n列

●图像运算

1imadd

两幅图像相加,要求同样大小,同种数据类型

Z=imadd〔*,y〕表示图像*+y

2imsubstract

两幅图像相减,要求同样大小,同种数据类型

Z=imsubtract〔*,y〕表示图像*-y

3immultiply

Z=immultiply〔*,y〕表示图像**y

4imdivide

Z=imdivide〔*,y〕表示图像*/y

5:

m=imadjust(a,[,],[0.5;1]);%图像变亮

n=imadjust(a,[,],[0;0.5]);%图像变暗

g=255-a;%负片效果

四、实验容〔请将实验程序填写在下方适宜的位置,实验图像结果拷屏粘贴〕

1、读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口分成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题。

a=imread('f:

\1.jpg')

i=rgb2gray(a)

I=im2bw(a,0.5)

subplot(3,1,1);imshow(a);title('原图像')

subplot(3,1,2);imshow(i);title('灰度图像')

subplot(3,1,3);imshow(I);title('二值图像')

2、对两幅不同图像执行加、减、乘、除操作,在同一个窗口分成五个子窗口来分别显示,注上文字标题。

a=imread('f:

\1.jpg')

A=imresize(a,[800800])

b=imread('f:

\2.jpg')

B=imresize(b,[800800])

Z1=imadd(A,B)

Z2=imsubtract(A,B)

Z3=immultiply(A,B)

Z4=imdivide(A,B)

subplot(3,2,1);imshow(A);title('原图像A')

subplot(3,2,2);imshow(B);title('原图像B')

subplot(3,2,3);imshow(Z1);title('加法图像')

subplot(3,2,4);imshow(Z2);title('减法图像')

subplot(3,2,5);imshow(Z3);title('乘法图像')

subplot(3,2,6);imshow(Z2);title('除法图像')

3、对一幅图像进展灰度变化,实现图像变亮、变暗和负片效果,在同一个窗口分成四个子窗口来分别显示,注上文字标题。

a=imread('f:

\1.jpg');

m=imadjust(a,[,],[0.5;1]);%图像变亮

n=imadjust(a,[,],[0;0.5]);%图像变暗

g=255-a;%负片效果

subplot(2,2,1);imshow(a);title('原图像')

subplot(2,2,2);imshow(m);title('图像变亮')

subplot(2,2,3);imshow(n);title('图像变暗')

subplot(2,2,4);imshow(g);title('负片效果')

4、熟悉数字图像处理常用函数的使用,调出帮助文档查看其各种不同用法。

方法:

选择函数〔函数所在区变暗〕,点右键弹出菜单,选择“HelponSelection〞

五、实验总结

分析图像的代数运算结果,分别述图像的加、减、乘、除运算可能的应用领域。

实验四常用图像增强方法

一、实验目的

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

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

二、实验环境

MATLAB6.5以上版本、WIN*P或WIN2000计算机

三、相关知识

1imnoise

imnoise函数用于对图像生成模拟噪声,如:

i=imread('e:

\w01.tif');

j=imnoise(i,'gaussian',0,0.02);模拟均值为0方差为0.02的高斯噪声,

j=imnoise(i,'salt&pepper',0.04)模拟叠加密度为0.04的椒盐噪声

2fspecial

fspecial函数用于产生预定义滤波器,如:

h=fspecial('sobel');%sobel水平边缘增强滤波器

h=fspecial('gaussian');%高斯低通滤波器

h=fspecial('laplacian');%拉普拉斯滤波器

h=fspecial('log');%高斯拉普拉斯〔LoG〕滤波器

h=fspecial('average');%均值滤波器

3基于卷积的图像滤波函数

imfilter函数,filter2函数,二维卷积conv2滤波,都可用于图像滤波,用法类似,如:

i=imread('e:

\w01.tif');

h=[1,2,1;0,0,0;-1,-2,-1];%产生Sobel算子的水平方向模板

j=filter2(h,i);

或者:

h=fspecial(‘prewitt’)

I=imread('cameraman.tif');

imshow(I);

H=fspecial('prewitt‘);%预定义滤波器

M=imfilter(I,H);

imshow(M)

或者:

i=imread('e:

\w01.tif');

h=[1,1,1;1,1,1;1,1,1];

h=h/9;

j=conv2(i,h);

4其他常用滤波举例

〔1〕中值滤波

medfilt2函数用于图像的中值滤波,如:

i=imread('e:

\w01.tif');

j=medfilt2(i,[MN]);对矩阵i进展二维中值滤波,领域为M*N,缺省值为3*3

〔2〕利用拉氏算子锐化图像,如:

i=imread('e:

\w01.tif');

j=double(i);

h=[0,1,0;1,-4,0;0,1,0];%拉氏算子

k=conv2(j,h,'same');

三、实验步骤

1、采用二维中值滤波函数medfilt2对受椒盐噪声干扰的图像滤波,窗口分别采用3*3,5*5,7*7

I=imread('f:

\lena.png');

J=imnoise(I,'salt&pepper',0.04);

K1=medfilt2(J,[33]);%对矩阵i进展二维中值滤波,领域为3*3

K2=medfilt2(J,[55]);

K3=medfilt2(J,[77]);

subplot(2,2,1);imshow(J);title('椒盐噪声干扰图像')

subplot(2,2,2);imshow(K1);title('领域为3*3二维中值滤波')

subplot(2,2,3);imshow(K2);title('领域为5*5二维中值滤波')

subplot(2,2,4);imshow(K3);title('领域为7*7二维中值滤波')

2、采用MATLAB中的函数filter2对受噪声干扰的图像进展均值滤波

I=imread('f:

\lena.png');

j=imnoise(i,'gaussian',0,0.02);%模拟均值为0方差为0.02的高斯噪声,

M=filter2(fspecial('average',9),J)/255;%模板尺寸为9

subplot(2,1,1);imshow(j);title('噪声干扰图像')

subplot(2,1,2);imshow(M);title('改良后的图像')

3、采用三种不同算子对图像进展锐化处理。

i=imread('f:

\1.jpg')

I=rgb2gray(s)

H=fspecial('sobel')%应用Sobel算子锐化图像

I1=filter2(H,I)%Sobel算子滤波锐化

H=fspecial('prewitt')%应用prewitt算子锐化图像

I2=filter2(H,I)%prewitt算子滤波锐化

H=fspecial('log')%应用log算子锐化图像

I3=filter2(H,I)%log算子滤波锐化

subplot(2,2,1);imshow(i);title('原图像')

subplot(2,2,2);imshow(I1);title('Sobel算子锐化图像')

subplot(2,2,3);imshow(I2);title('prewitt算子锐化图像')

subplot(2,2,4);imshow(I3);title('log算子锐化图像')

四、实验总结

1、比拟不同平滑滤波器的处理效果,分析其优缺点

2、比拟不同锐化滤波器的处理效果,分析其优缺点

实验五图像恢复和图像分割

一、实验目的

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

2、理解并掌握常用的图像的恢复和分割技术。

二、实验环境

MATLAB6.5以上版本、WIN*P或WIN2000计算机

三、相关知识

1deconvwnr

维纳滤波,

用法:

J=deconvwnr(I,PSF,NSR)

用维纳滤波算法对图片I进展图像恢复后返回图像J。

I是一个N维数组。

PSF是点扩展函数的卷积。

NSP是加性噪声的噪声对信号的功率比。

如:

I=im2double(imread('cameraman.tif'));

imshow(I);

title('OriginalImage');

%模拟运动模糊

LEN=21;

THETA=11;

PSF=fspecial('motion',LEN,THETA);

blurred=imfilter(I,PSF,'conv','circular');

figure,imshow(blurred)

%恢复图像

wnr2=deconvwnr(blurred_noisy,PSF);

figure,imshow(wnr2)

title('RestorationofBlurred')

2edge

检测灰度或者二值图像的边缘,返回一个二值图像,1像素是检测到的边缘,0像素是非边缘。

用法:

BW=edge(I,'sobel',thresh,direction),

I为检测对象;边缘检测算子可用sobel,roberts,prewitt,zerocross,log,canny;

thresh指定阈值,检测时忽略所有小于阈值的边缘,默认自动选择阈值;direction方向,在所指定的方向direction上,用算子进展边缘检测horizontal(水平方向)、vertical(垂直方向)或both(两个方向)。

如:

I=imread('circuit.tif');

BW1=edge(I,'prewitt');

imshow(BW1);

3strel

创立形态学构造元素。

用法:

SE=STREL('arbitrary',NHOOD,HEIGHT)创立一个指定领域的非平面构造化元素。

HEIGHT是一个矩阵,大小和NHOOD一样,他指定了NHOOD中任何非零元素的高度值。

SE=STREL('ball',R,H,N)创立一个空间椭球状的构造元素,其*-Y平面半径为R,高度为H。

R必须为非负整数,H是一个实数。

N必须为一个非负偶数。

当N>0时此球形构造元素由一系列空间线段构造元素来近似。

SE=STREL('diamond',R)创立一个指定大小R平面钻石形状的构造化元素。

R是从构造化元素原点到其点的距离,必须为非负整数。

SE=STREL('disk',R,N)创立一个指定半径R的平面圆盘形的构造元素。

这里R必须是非负整数.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('circles.png');

se=strel('disk',11);

erodedBW=imerode(originalBW,se);

imshow(originalBW),figure,imshow(erodedBW)

5imdilate

膨胀图像

用法:

IM2=imdilate(IM,SE)

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

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

如:

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

I=imread('cameraman.tif');

se=strel('ball',5,5);

I2=imdilate(I,se);

imshow(I),title('Original')

figure,imshow(I2),title('Dilated')

三、实验步骤

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

i=imread('f:

\1.jpg')

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);title('恢复图像')

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

i=imread('f:

\1.jpg')

BW1=edge(I,'prewitt');

BW2=edge(I,'zerocross');

BW3=edge(I,'canny');

subplot(2,2,1);imshow(i);title('原图像')

subplot(2,2,2);imshow(BW1);title('prewitt边缘图')

subplot(2,2,3);imshow(BW2);title('zerocross边缘图')

subplot(2,2,4);imshow(BW3);title('canny边缘图')

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

a=imread('f:

\1.jpg')

i=rgb2gray(a)

I=im2bw(a,0.5)

se3=strel('disk',3);

erodedBW1=imerode(I,se3);

se4=strel('disk',5);

erodedBW2=imerode(I,se4);

se1=strel('ball',3,3);

I1=imdilate(a,se1);

se2=strel('ball',5,5);

I2=imdilate(a,se2);

subplot(2,2,1);imshow(I1);title('3*3膨胀图像')

subplot(2,2,2);imshow(I2);title('5*5膨胀图像')

subplot(2,2,3);imshow(erodedBW1);title('3*3腐蚀图像')

subplot(2,2,4);imshow(erodedBW2);title('5*5腐蚀图像')

实验六图像处理实际应用

一、实验目的

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

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

二、实验环境

MATLAB6.5以上版本、WIN*P或WIN2000计算机

三、实验容

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

总结算法思想及优缺点.

I=imread('Car.jpg');

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

myI=double(I);

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

tic

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

Blue_y=zeros(y,1);

fori=1:

y

forj=1:

*

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

end

[tempMa*Y]=ma*(Blue_y);%Y方向车牌区域确定

PY1=Ma*Y;

while((Blue_y(PY1,1)>=5)&&(PY1>1))

PY1=PY1-1;

end

PY2=Ma*Y;

while((Blue_y(PY2,1)>=5)&&(PY2

PY2=PY2+1;

end

IY=I(PY1:

PY2,:

:

);

%%%%%%%%*方向%%%%%%%%%%

Blue_*=zeros(1,*);

forj=1:

*

fori=PY1:

PY2

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)))

Blue_*(1,j)=Blue_*(1,j)+1;

end

end

end

P*1=1;

while((Blue_*(1,P*1)<3)&&(P*1<*))

P*1=P*1+1;

end

P*2=*;

while((Blue_*(1,P*2)<3)&&(P*2>P*1))

P*2=P*2-1;

end

P*1=P*1-2;%对车牌区域的修正

P*2=P*2+2;

Plate=I(PY1:

PY2,P*1-2:

P*2,:

);

t=toc%读取计时

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

figure,imshow(I);

figure,plot(Blue_y);grid

figure,plot(Blue_*);grid

figure,imshow(IY);

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

I=imread('f:

\Car.jpg');%读取图片

[y,*,z]=size(I);%给定图片大小

myI=double(I);%返回双精度值

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

tic%计时开场

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

Blue_y=zeros(y,1);%一列全零矩阵

fori=1:

y%给定i的围

forj=1:

*%给定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;%y矩阵加一

end

end

end

[tempMa*Y]=ma*(Blue_y);%Y方向车牌区域确定

PY1=Ma*Y;%y矩阵的最大元素

while((Blue_y(PY1,1)>=5)&&(PY1>1))%确定蓝色RGBBlue_y所在位置

PY1=PY1-1;%对车牌区域的修正,向上调整

end

PY2=Ma*Y;%y矩阵的最大元素

while((Blue_y(PY2,1)>=5)&&(PY2

PY2=PY2+1;%对车牌区域的修正向下调整

end

IY=I(PY1:

PY2,:

:

);%行的围

%%%%%%%%*方向%%%%%%%%%%

Blue_*=zeros(1,*);%一行全一矩阵

forj=1:

*%给定j的取值围

fori=PY1:

PY2%给定i的取值围

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

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2