一、染色体识别与统计 - Read.DOC

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一、染色体识别与统计 - Read

Matlab在图像处理与目标识别方面的应用实验 一、染色体识别与统计 待处理的图像如下所示。图像有明显的噪音,部分染色体有断开和粘连的情况。 要识别其中的染色体并统计其数目,我们采用Matlab平台提供的一些图像处理函数。基本方法如下: 1、读取待处理的图像,将其转化为灰度图像,然后反白处理。 I = imread(chrimage.bmp); I2 = rgb2gray(I); s = size(I2); I4 = 255*ones(s(1), s(2), uint8); I5 = imsubtract(I4,I2); 2、对图像进行中值滤波去除噪音。经试验,如果采用3×3的卷积因子,噪音不能较好地去除,染色体附近毛糙严重。而5×5和7×7的卷积因子能取得较好的效果。图示滤噪前后的效果对比。 I3 = medfilt2(I5,[5 5]); 3、将图像转化为二值图像。经试验,采用门限值为0.3附近时没有染色体断开和粘连(如下左图),便于后期统计。 I3 = imadjust(I3); bw = im2bw(I3, 0.3); 在此步骤,如果使用graythresh函数自动寻找门限,得到的图像染色体断开的比较多(如下中图),此时可以将白色区域膨胀,使断开的的染色体连接(如下右图)。 level = graythresh(I3); bw = im2bw(I3,level); se = strel(disk,5); bw = imclose(bw,se); 两种方法相比,前者对染色体面积的计算比较准确,后者对不同图像的适应性较强。下面的步骤将基于前一种方法。 4、去除图像中面积过小的,可以肯定不是染色体的杂点。这些杂点一部分是滤噪没有滤去的染色体附近的小毛糙,一部分是图像边缘亮度差异产生的。 bw = bwareaopen(bw, 10); 5、标记连通的区域,以便统计染色体数量与面积。 [labeled,numObjects] = bwlabel(bw,4); 6、用颜色标记每一个染色体,以便直观显示。此时染色体的断开与粘连问题已基本被解决。最终效果如下图。 RGB_label=label2rgb(labeled,@spring,c,shuffle); 7、统计被标记的染色体区域的面积分布,显示染色体总数。统计总数为46,与人工数出数目的相同。 chrdata = regionprops(labeled,basic) allchrs = [chrdata.Area]; num = size(allchrs) nbins = 20; figure,hist(allchrs,nbins); title(num(2)) 至此,染色体识别与统计完成。此方法采用Matlab已有的函数,简单且快捷。但缺点是此程序是专为这一幅待处理图像写的,诸如门限、滤噪方法的特定性强。同时没有经过大量同类待处理图像的测试,系统通用性不强。不过作为实验,了解提取与分析目标图像中的有效信息的基本方法,是足够的。 * 参考文献: 1、Correcting Nonuniform Illumination, Matlab 7.0 Demos, The MathWorks. 二、汽车牌照定位与字符识别 待处理的图像如下所示。图像整体比较清晰干净,车牌方向端正,字体清楚,与周围颜色的反差较大。 要定位汽车牌照并识别其中的字符,我们采用Matlab平台提供的一些图像处理函数,以傅立叶变换通过字符模板与待处理的图像匹配为核心思想。基本方法如下: 1、读取待处理的图像,将其转化为二值图像。经试验,采用门限值为0.2附近时车牌字符最为清楚,杂点最少(如下左图)。 I = imread(car.jpg); I2 = rgb2gray(I); I4 = im2bw(I2, 0.2); 2、去除图像中面积过小的,可以肯定不是车牌的区域。 bw = bwareaopen(I4, 500); 3、为定位车牌,将白色区域膨胀,腐蚀去无关的小物件,包括车牌字符(如下右图)。 se = strel(disk,15); bw = imclose(bw,se); 4、此时车牌所在白色连通域已清晰可见,但在黑色区域以外,是一个更大的白色连通域,将车牌所在连通域包围了。有必要将其填充。 bw = imfill(bw,[1 1]); 5、查找连通域边界。同时保留此图形,以备后面在它上面做标记。 [B,L] = bwboundaries(bw,4); imshow(label2rgb(L, @jet, [.5 .5 .5])) hold on for k = 1:length(B) boundary = B{k}; plot(boundary(:,2),bounda

文档评论(0)

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

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

1亿VIP精品文档

相关文档