北科大数字图像处理实验报告.docx

上传人:b****8 文档编号:23895656 上传时间:2023-05-22 格式:DOCX 页数:18 大小:1.12MB
下载 相关 举报
北科大数字图像处理实验报告.docx_第1页
第1页 / 共18页
北科大数字图像处理实验报告.docx_第2页
第2页 / 共18页
北科大数字图像处理实验报告.docx_第3页
第3页 / 共18页
北科大数字图像处理实验报告.docx_第4页
第4页 / 共18页
北科大数字图像处理实验报告.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

北科大数字图像处理实验报告.docx

《北科大数字图像处理实验报告.docx》由会员分享,可在线阅读,更多相关《北科大数字图像处理实验报告.docx(18页珍藏版)》请在冰豆网上搜索。

北科大数字图像处理实验报告.docx

北科大数字图像处理实验报告

北京科技大学计算机与通信工程学院

实验报告

实验名称:

《数字图像处理》课程实验

学生姓名:

徐松松

专业:

计算机科学与技术

班级:

计1304

学号:

41345053

指导教师:

王志明

实验成绩:

实验时间:

2016年12月15日

、实验目的与实验要求

1、实验目的

1.熟悉图像高斯、脉冲等噪声的特点,以及其对图像的影响;

2.理解图像去噪算法原理,并能编程实现基本的图像去噪算法,达到改善图像质量的效果,并能对算法性能进行简单的评价。

3.理解图像分割算法的原理,并能编程实现基本的灰度图像分割算法,并显示图像分割结果。

2、实验要求

1.对于给定的两幅噪声图像(test1.jpg,test2.jpg),设计或选择至少两种图像滤波算法对图像进行去噪。

2.利用给出的参考图像(org1.jpg,org2.jpg),对不同算法进行性能分析比较。

3.对于给定的两幅数字图像(test.jpg,test4.jpg),将其转换为灰度图像,设计或选择至少两种图像分割算法对图像进行分割,用适当的方式显示分割结果,并对不同算法进行性能分析比较。

二、实验设备(环境)及要求

1.Mac/Windows计算机

2.Matlab编程环境。

三、实验内容与步骤

1、实验1

(1)实验内容

1.对于给定的两幅噪声图像(test1.jpg,test2.jpg),设计或选择至少两种图像滤波算法对图像进行去噪。

2.利用给出的参考图像(org1.jpg,org2.jpg),对不同算法进行性能分析比较。

(2)主要步骤

1.打开Matlab编程环境;

2.利用’imread'函数读入包含噪声的原始图像数据;

3.利用’imshow'函数显示所读入的图像数据;

结果显示:

屮」■ffUserstxss►Documents►MATLAB

 

»Irinread(1testl.jpg');

»imshow(I);

»F^imreadi*test2.jpd1H犍逞便用impact(line349}交件"testljpd-不存在”

»F=ijnread(*test2.jp^1aaimshowfF);

扛»

4.编码实现图像滤波算法,对原始噪声图像进行滤波处理分别用均值滤波,中值滤波和维纳滤波如下:

代码:

J=imread('test1.jpg');

 

卷积运算

'average',4),J)/255;

%采用二维中值滤波函数进行滤波

K1=wiener2(J,[44]);%对噪声图像进行二维自适应维纳滤波

subplot(2,2,1);imshow(J);

title('加噪图像');

subplot(2,2,2);imshow(K2);

title('均值滤波后的图像’);

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

title('中值滤波后的图像’);

subplot(2,2,4);imshow(K1);

title('维纳滤波后的图像’);

imwrite(K2,'均值滤波图像.jpg','quality',100);

imwrite(K,'中值滤波图像.jpg','quality',100);

imwrite(K1,'维纳滤波图像.jpg','quality',100);

处理结果如下:

 

细节如下:

 

原始图像

均值滤波

 

中值滤波维纳滤波:

对图像二的处理结果:

原始图像均值滤波

中值滤波

维纳滤波

 

);

);

5.计算滤波后图像与原图的差异(如PSNR、MSE等);

J=imread('test1.jpg'

J2=imread('org1.jpg'%h=ones(4,4)/16;

%B=conv2(J,h);

diff2=(double(J2)-(M))A2;

mse2=mean(diff2(:

));

psnr2=double(10*log10(255A2/mse2));

结果:

对于test1.jpg

nols*_).mcalculate!

.muntitled?

-+

*

1A

1

-J=iirrejd('te5tl.jpg'};

U

ans

0

2

-Ji=imread{Jpgk>:

dilT

512x512douWt

3

材4}/IE;躬严莖4则的全1般绘

d

diff1

512x512double

4

5iB=conv2(J,hl

diff2

512x512double

5

K2=f鼻时沁〕tJ)/255;血値滤聂樓扳」

I

512x512uinrS

6

Km申踊理注函欧对声干1

zd

」2

512x512umtS

7

说计行扫怡庄箱启医悻的PM5EN門NR

_LI

K

512x512uintS

S

diff1^(double(J2K2)}.

ZL

Kl

512x512utnlS

&

-m!

sel=oicani{diffl(s));

LL

KZ

5cfoutjie

10

P5nrl=d(]uljlel10*logl0C255*2/m5ell);

M

占丄2x512double

msel

L639Lt+O4

11

吊计J:

中茁:

it泊毛『:

赛项宥拦

12

-H=dauble(K);

mse2

25L-4171

13

-diff2-(double(J2)-(H)

XIpsnirl

5.9&49

mse2=mean(diff2(I));

卫p^nr2

24.U64

15■p5nr2adouble(l»*logl04255A2/mse2));

16

 

均值滤波:

MSE=1.6391e+04,PSNR=5.9848

中值滤波:

MSE=251.4171,PSNR=24.1269

对于test2.jpg

2

蜿IB韶-/Users/xst^DcKUmen

“X

noisel.n-caJculatel.fHjntitkc2+

~■_一L-.

A

1

-J=Jl・「e3cK'test2-jpg');

lJ

Xj乙砒

0

2

J2=Imread(1arg2.jpgM;

i.diff

512nS12double

1

%h=ones(斗,4)八召珂卜生4詁的全燈蛋

jdiffl

4

%B>conv20(h);%卷壮运绘

.iChf口

512x512

5

K2=filter2(tspecial('iverage.4}Jj/155;

^_|J

512x512umtB

6

K=BCdf丄l说口)注舉用二:

fit血厭鮭敷E品仃It"缨哦品诫再干!

rdj2

5i.2)t512utn(8

7

%汁舄旳佰蕊菠启團僚的PHSE与PShR

iK

512x512uintS

-dlfn-{double(J2)-(K2}k*2;

iKl

51^x517uintS

9

-msei=™e5n(tflffl(;));

iK2

512x512doubk

IB

psnrl-

tdw

512x512double

11

*汁屛申傍血浪后的寻项指斬

田ra^el

1.72S;&+04

12

M=dauble(K);

□m^e2

31.1728

13

diff2*rdouble(J21-(H)}.*2f

EP^nrl

5,7550

-(diff2(:

});

I:

p$nr2

33.1931

15

16

psnrl-doubleU0Hofllfit2S5^2/ffSc2));

均值滤波:

MSE=1.7382e+04,PSNR=5.7550

中值滤波:

MSE=31.1728,PSNR=33.1931

实验2

(1)实验内容

对图像进行分割并显示。

(2)主要步骤

1.打开Matlab编程环境。

2.利用‘imread'函数读入包含噪声的原始图像数据。

>>匸imread('test3.jpg');

3.利用‘imshow'函数显示所读入的图像数据。

>>imshow(l);

命令行窗口

X-Lx

»I=imread('test3»jpg1);

»whosI

NameSize

Bytes

Class

Attributes

I321x481x3

463203

uintS

»imshowtI);

文件镰辑查看插入工*桌面闔口帯助■

□aHteo®

结果为:

5.编码实现图像分割,对原始图像进行区域分割,并得到各个区域的标号

1.利用双分法

先给出原图的直方图,再定出阈值(门限)T,一般取两个峰值间的谷值。

代码:

I=imread('test3.jpg');

subplot(1,2,1);

i=rgb2gray(l);

imhist(i);

title('原始图像直方图’);

thread=75/255;

subplot(1,2,2);

i3=im2bw(i,thread);

imshow(i3);

title('分隔结果’);

从直方图看出两个峰值的谷值大概为75,取作阀值

分隔结果:

分割结実

 

 

图片二处理:

代码:

l=imread('test4.jpg');subplot(1,2,1);

i=rgb2gray(l);

imhist(i);

title('原始图像直方图’);thread=50/255;

subplot(1,2,2);

i3=im2bw(i,thread);

imshow(i3);

title('分隔结果’);

阀值定为50,处理结果如下:

分劃结異

 

 

分隔方法二:

分水岭分隔法

基本思想:

1•把图像看作一个三维拓扑地形图

2•集水盆:

局部极小点及其影响区域

3•分水岭:

集水盆的边界

4.目标:

在图像中找出不同的集水盆和分水岭

代码:

F=imread('test3.jpg');

f=rgb2gray(F);

subplot(2,2,1);

imshow(f);

title('原始灰度图像’);f=double(f);

));

));

hv=fspecial('prewitt');hh=hv.';

gv=abs(imfilter(f,hv,'replicate'

gh=abs(imfilter(f,hh,'replicate'

g=sqrt(gv.A2+gh.A2);

L=watershed(g);

wr=L==0;

subplot(2,2,2);imshow(wr);

title('分水岭');

f(wr)=225;

subplot(2,2,3);

imshow(uint8(f));

title('分隔结果’);rm=imregionalmin(g);subplot(2,2,4);

imshow(rm);

title('局部极小值’);

结果:

 

分水靜

局部极小值

 

分隔结果

局部极小值

 

 

 

四:

实验结果与分析

结果符合预期,分隔图像用双分法结果较好。

对于测试图片用中值滤波处理效果较好。

五:

结论(讨论)

1、实验结论

了解了数字图像的基本处理方法,掌握了几种分隔图像方法和去噪滤波方法。

2、讨论

对不同的图像需要判断用哪种处理方法为好。

六、教师评审

教师评语

实验成绩

签名:

日期:

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

当前位置:首页 > 成人教育 > 远程网络教育

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

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