数字图像处理课程设计(实验报告)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字图像处理课程设计报告
姓名:x x
学号:xxxxxxx
班级: xxxxxxxxxxxxxxx
设计题目:红细胞数目检测
教师:xxxxxx老师
提交日期: xx月xx日
一、设计内容:
主题:《红细胞数目检测》
详细说明:读入红细胞图片,通过中值滤波,开运算,闭运算,以及贴标签等方法获得细胞个数。
二、现实意义:
细胞数目检测在现实生活中的意义主要体现在医学上的作用,可通过细胞数目的检测来查看并估计病人或动物的血液中细胞数,如估测血液中红细胞、白细胞、血小板、淋巴细胞等细胞的数目,同时也可检测癌细胞的数目来查看医疗效果,根据这一系列的指标来对病人或动物进行治疗,是具有极其重要的现实作用的。
三、涉及知识内容:
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、实现代码:
Image = imread('红细胞5.jpg');
figure,imshow(Image);
title('【原图】');
Theshold = graythresh(Image);
Image_BW = im2bw(Image,Theshold);
figure,imshow(Image_BW);
title('【初次二值化图像】');
Image_BW_medfilt= medfilt2(Image_BW,[13 13]);
figure,imshow(Image_BW_medfilt);
title('【中值滤波后的二值化图像】');
Optimized_Image_BW = Image_BW_medfilt|Image_BW;
figure,imshow(Optimized_Image_BW);
title('【进行“或”运算优化图像效果】');
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(' 【开运算后的图像】');
[Label Number]=bwlabel(Open_Image_BW,8)
Array = bwlabel(Open_Image_BW,8);
Sum = [];
for i=1:Number
[r,c] = find(Array==i);
rc = [r c];
Num = length(rc);
Sum([i])=Num;
End
Sum
N = 0;
for i=1:length(Sum)
if(Sum([i])) > 1500
N = N+1;
end
end
Number = Number+N
3、运行效果截图:
第一步:读取原图,并显示
Image = imread('红细胞5.jpg');
figure,imshow(Image);
title(' 【原图】');
第二步:进行二值化
Theshold = graythresh(Image);%取得图象的全局域值Image_BW = im2bw(Image,Theshold);%二值化图象figure,imshow(Image_BW);
title(' 【初次二值化图像】');
第三步:进行二值化图像
Image_BW_medfilt= medfilt2(Image_BW,[13 13]);
figure,imshow(Image_BW_medfilt);
title(' 【中值滤波后的二值化图像】');
第四步:通过“初次二值化图像”与“中值滤波后的二值化图像”进行“或”运算优化图像效果
Optimized_Image_BW = Image_BW_medfilt|Image_BW;
figure,imshow(Optimized_Image_BW);
title(' 【进行“或”运算优化图像效果】');