数字图像处理课程设计(实验报告)..doc
文本预览下载声明
上 海 理 工 大 学
计 算 机 工 程 学 院
实 验 报 告
实验名称 红细胞数目统计 课程名称 数字图像处理
姓名 王磊 学号 0916020226
日期 2012-11-27 地点 图文信息中心
成绩 教师 韩彦芳
设计内容:
主题:《红细胞数目检测》
详细说明:读入红细胞图片,通过中值滤波,开运算,闭运算,以及贴标签等方法获得细胞个数。
现实意义:
细胞数目检测在现实生活中的意义主要体现在医学上的作用,可通过细胞数目的检测来查看并估计病人或动物的血液中细胞数,如估测血液中红细胞、白细胞、血小板、淋巴细胞等细胞的数目,同时也可检测癌细胞的数目来查看医疗效果,根据这一系列的指标来对病人或动物进行治疗,是具有极其重要的现实作用的。
三、涉及知识内容:
1、中值滤波
2、开运算
3、闭运算
4、二值化
5、贴标签
四、实例分析及截图效果:
代码如下:
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,[13 13]);
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( 【开运算后的图像】);
%-------------开始计算细胞数--------------------
[Label Number]=bwlabel(Open_Image_BW,8) %初步取得细胞个数
Array = bwlabel(Open_Image_BW,8); %取得贴标签处理
显示全部