数字图像处理课程设计实验报告参考模板.docx

上传人:b****8 文档编号:9864872 上传时间:2023-02-07 格式:DOCX 页数:15 大小:1.76MB
下载 相关 举报
数字图像处理课程设计实验报告参考模板.docx_第1页
第1页 / 共15页
数字图像处理课程设计实验报告参考模板.docx_第2页
第2页 / 共15页
数字图像处理课程设计实验报告参考模板.docx_第3页
第3页 / 共15页
数字图像处理课程设计实验报告参考模板.docx_第4页
第4页 / 共15页
数字图像处理课程设计实验报告参考模板.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

数字图像处理课程设计实验报告参考模板.docx

《数字图像处理课程设计实验报告参考模板.docx》由会员分享,可在线阅读,更多相关《数字图像处理课程设计实验报告参考模板.docx(15页珍藏版)》请在冰豆网上搜索。

数字图像处理课程设计实验报告参考模板.docx

数字图像处理课程设计实验报告参考模板

上海理工大学

计算机工程学院

 

实验报告

 

实验名称

红细胞数目统计

课程名称

数字图像处理

 

姓名

王磊

学号

0916020226

日期

2012-11-27

地点

图文信息中心

成绩

教师

韩彦芳

 

一、设计内容:

主题:

《红细胞数目检测》

详细说明:

读入红细胞图片,通过中值滤波,开运算,闭运算,以及贴标签等方法获得细胞个数。

二、现实意义:

细胞数目检测在现实生活中的意义主要体现在医学上的作用,可通过细胞数目的检测来查看并估计病人或动物的血液中细胞数,如估测血液中红细胞、白细胞、血小板、淋巴细胞等细胞的数目,同时也可检测癌细胞的数目来查看医疗效果,根据这一系列的指标来对病人或动物进行治疗,是具有极其重要的现实作用的。

三、涉及知识内容:

1、中值滤波

2、开运算

3、闭运算

4、二值化

5、贴标签

四、实例分析及截图效果:

(1)代码如下:

1、程序中定义图像变量说明

(1)Image--------------------------------------------------------------原图变量;

(2)Image_BW-------------------------------------------------------值化图象;

(3)Image_BW_medfilt-------------------------中值滤波后的二值化图像;

(4)Optimized_Image_BW---通过“初次二值化图像”与“中值滤波后的二值化图像”进行“或”运算优化图像效果;

(5)Reverse_Image_BW--------------------------优化后二值化图象取反;

(6)Filled_Image_BW----------------------已填充背景色的二进制图像;

(7)Open_Image_BW--------------------------------------开运算后的图像;

2、实现代码:

%-------图片前期处理-------------------

%第一步:

读取原图,并显示

A=imread('E:

\红细胞3.png');

Image=rgb2gray(A);%RGB转化成灰度图

figure,imshow(Image);

title('【原图】');

%第二步:

进行二值化

Theshold=graythresh(Image);%取得图象的全局域值

Image_BW=im2bw(Image,Theshold);%二值化图象

figure,imshow(Image_BW);

title('【初次二值化图像】');

%第三步二值化图像进行中值滤波

Image_BW_medfilt=medfilt2(Image_BW,[1313]);

figure,imshow(Image_BW_medfilt);

title('【中值滤波后的二值化图像】');

%第四步:

通过“初次二值化图像”与“中值滤波后的二值化图像”进行“或”运算优化图像效果

Optimized_Image_BW=Image_BW_medfilt|Image_BW;

figure,imshow(Optimized_Image_BW);

title('【进行“或”运算优化图像效果】');

%第五步:

优化后二值化图象取反,保证:

‘1’-〉‘白色’,‘0’-〉‘黑色’

%方便下面的操作

Reverse_Image_BW=~Optimized_Image_BW;

figure,imshow(Reverse_Image_BW);

title('【优化后二值化图象取反】');

%第六步:

填充二进制图像的背景色,去掉细胞内的黑色空隙

Filled_Image_BW=bwfill(Reverse_Image_BW,'holes');

figure,imshow(Filled_Image_BW);

title('【已填充背景色的二进制图像】');

%第七步:

对图像进行开运算,去掉细胞与细胞之间相粘连的部分

SE=strel('disk',4);

Open_Image_BW=imopen(Filled_Image_BW,SE);

figure,imshow(Open_Image_BW);

title('【开运算后的图像】');

%-------------开始计算细胞数--------------------

[LabelNumber]=bwlabel(Open_Image_BW,8)%初步取得细胞个数

Array=bwlabel(Open_Image_BW,8);%取得贴标签处理后的图像

Sum=[];

%依次统计贴标签后数组

fori=1:

Number

[r,c]=find(Array==i);%获取相同标签号的位置,将位置信息存入[r,c]

rc=[rc];

Num=length(rc);%取得vc数组的元素的个数

Sum([i])=Num;%将元素个数存入Sum数组

End

Sum

N=0;

%假如Sum数组中的元素大于了400,表示有两个细胞相连,像素点较多,即分为两个细胞数

fori=1:

length(Sum)

if(Sum([i]))>1500

N=N+1;

end

end

%------------------统计最终细胞数-----------

Number=Number+N

3、运行效果截图:

第一步:

读取原图,并显示

A=imread('E:

\红细胞3.png');

Image=rgb2gray(A);

figure,imshow(Image);

title('【原图】');

第二步:

进行二值化

Theshold=graythresh(Image);%取得图象的全局域值

Image_BW=im2bw(Image,Theshold);%二值化图象

figure,imshow(Image_BW);

title('【初次二值化图像】');

第三步:

进行二值化图像

Image_BW_medfilt=medfilt2(Image_BW,[1313]);

figure,imshow(Image_BW_medfilt);

title('【中值滤波后的二值化图像】');

 

第四步:

通过“初次二值化图像”与“中值滤波后的二值化图像”进行“或”运算优化图像效果

Optimized_Image_BW=Image_BW_medfilt|Image_BW;

figure,imshow(Optimized_Image_BW);

title('【进行“或”运算优化图像效果】');

第五步:

优化后二值化图象取反,保证:

'1'为'白色',0'为'黑色'

Reverse_Image_BW=~Optimized_Image_BW;

figure,imshow(Reverse_Image_BW);

title('【优化后二值化图象取反】');

第六步:

填充二进制图像的背景色,去掉细胞内的黑色空隙

Filled_Image_BW=bwfill(Reverse_Image_BW,'holes');

figure,imshow(Filled_Image_BW);

title('【已填充背景色的二进制图像】');

第七步:

对图像进行开运算,去掉细胞与细胞之间相粘连的部分

SE=strel('disk',4);

Open_Image_BW=imopen(Filled_Image_BW,SE);

figure,imshow(Open_Image_BW);

title('【开运算后的图像】');

第八步:

开始计算细胞数

[LabelNumber]=bwlabel(Open_Image_BW,8)%初步取得细胞个数

Array=bwlabel(Open_Image_BW,8);%取得贴标签处理后的图像

Sum=[];

%依次统计贴标签后数组

fori=1:

Number

[r,c]=find(Array==i);%获取相同标签号的位置,将位置信息存入[r,c]

rc=[rc];

Num=length(rc);%取得vc数组的元素的个数

Sum([i])=Num;%将元素个数存入Sum数组

end

Sum

N=0;

-----假如Sum数组中的元素大于了1500,表示有两个细胞相连,像素点较多,即分为两个细胞数---

fori=1:

length(Sum)

if(Sum([i]))>1500

N=N+1;

end

end

Number=Number+N%----统计最终细胞数

第九步:

最终检测结果:

四、算法分析

(1)中值滤波

利用中值滤波可以对图像进行平滑处理。

算法简单,时间复杂度低,但其对点、线和尖顶多的图像不宜采用中值滤波。

很容易自适应化。

(2)开运算

  先腐蚀后膨胀的过程称为开运算。

用来消除小物体、在纤细点处分离物体、平滑较大物体的边界的同时并不明显改变其面积。

  

(3)闭运算

先膨胀后腐蚀的过程称为闭运算。

用来填充物体内细小空洞、连接邻近物体、平滑其边界的同时并不明显改变其面积。

  

五、心得体会

耗费了半个月的时间来处理这份课程设计,期间虽然要去复习研究生考试但是我还是坚持了下来,也许实验不是很完美,但却是自己努力完成,因此很有成就感。

最开始以为自己做的很好,都自己完成了,但是跟大家对比后才发现原来自己已经做错了,还好有老师和同学的教导与指点,再次在此表示感谢。

对于这次的课程设计来说,由于是我我首次通过编写代码来完成对图像的处理,这些都是以前没有接触过的,难免出现一些失误,而且又由于自己以前没有接触过matlab,第一次的接触使用中也出现一些错误,不过都通过了后来的翻阅资料等一一解决,这实在是一份难得的经验。

在学习了很多之后我开始慢慢的对MATLAB的操作熟练起来,并且在实践中找到了学习的乐趣。

虽然在这短时间里需要不断查资料,然后对着电脑,把一个个的问题通过这样或那样的方法解决。

我坚信虽然道路是曲折的,但是前途是光明的。

友情提示:

范文可能无法思考和涵盖全面,供参考!

最好找专业人士起草或审核后使用,感谢您的下载!

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

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

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

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