红细胞数目检测重点.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数字图像处理大作业 题目:红细胞数目检测 组员:陈宏尘 游晓康 陈林禾 张红双 一、主要内容 1、现实意义 2、设计步骤 3、算法分析 4、实例分析 二、现实意义: 细胞数目检测在现实生活中的意义主要体现在医学上的作用,可通过细胞数目的检测来查看并估计病人或动物的血液中细胞数,如估测血液中红细胞、白细胞、血小板、淋巴细胞等细胞的数目,同时也可检测癌细胞的数目来查看医疗效果,根据这一系列的指标来对病人或动物进行治疗,是具有极其重要的现实作用的。 三、设计步骤: 1、读入红细胞图片 2、中值滤波 3、闭运算 4、开运算 5、贴标签 6、得到细胞个数 四、算法分析 (1)中值滤波 利用中值滤波可以对图像进行平滑处理。其算法简单,时间复杂度低,但其对点、线和尖顶多的图像不宜采用中值滤波。很容易自适应化。 而且中值滤波对脉冲噪声有良好的滤除作用,特别是在滤除噪声的同时,能够保护信号的边缘,使之不被模糊。能更好的区别开每一个红细胞。 (2)开运算   先腐蚀后膨胀的过程称为开运算。用来消除小物体、在纤细点处分离物体、平滑较大物体的边界的同时并不明显改变其面积。(消除细胞碎片)    (3)闭运算 先膨胀后腐蚀的过程称为闭运算。用来填充物体内细 小空洞、连接邻近物体、平滑其边界的同时并不明显改变其面积。 (3)贴标签 bwlabel函数是用来标记二维的二值图像中的connected components的,简言之,就是黑背景下面有多少白的块(连通组件?真别扭),反正就是从黑背景甄别白块块的。就这么理解吧。 五、实例分析: 第一步:读取原图,并显示 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(' 【进行“或”运算优化图像效果】'); 第五步:优化后二值化图象取反,保证:'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);%取得贴标签处理后的图像 Sum = []; %依次统计贴标签后数组 for i=1:Number [r,c] = find(Array==i);%获取相同标签号的位置,将位置信息存入[r,c] rc = [r c]; Num = length(rc);%取得vc数组的元素的个数 Sum([i])=Num;%将元素个数存入Sum数组 end Sum N = 0; -----假如Sum数组中的元素大于了1

文档评论(0)

335415 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档