下载此文档

K均值聚类、分水岭算法计算图片红白细胞个数.doc


文档分类:IT计算机 | 页数:约16页 举报非法文档有奖
1/16
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/16 下载此文档
文档列表 文档介绍
计算图片中红、白细胞个数的源程序【MATLAB语言】说明:红细胞杆状(左上角)中性粒细胞血液血小板多核(左起第4个)淋巴细胞(左起第3个)白细胞嗜酸性粒细胞(右上角)嗜碱性粒细胞(右下角)单核细胞(左下角)=>I:1、观察I的R、G、B分量;2、K=rgb2hsv(I),K中包含H、S、V三分量,观察H、S、V分量;3、从六分量中选择红细胞、白细胞、有明显区分的图进行分割。4、th=graythresh(I);B=im2BW(I,th);程序:I=imread('');%读入处理图像R=I(:,:,1);%分离R分量G=I(:,:,2);B=I(:,:,3);clc;%清屏closeall;%关闭图像窗口figure,%开辟图像显示窗口subplot(2,3,1),imshow(R),title('R分量');subplot(2,3,2),imshow(G),title('G分量');subplot(2,3,3),imshow(B),title('B分量');K=rgb2hsv(I);%RGB图像转换成HSV图像H=K(:,:,1);S=K(:,:,2);V=K(:,:,3);subplot(2,3,4),imshow(H),title('H分量');subplot(2,3,5),imshow(S),title('S分量');subplot(2,3,6),imshow(V),title('V分量');K均值聚类:1、任取[0,255]中K个值作为第一次分类中心;2、把图像(gray)中的每一个点与K个中心值进行比较,按差值分成K组,求出新的K个中心点;3、重复上一步骤,直到前后两次算出的中心点值相同;4、按最后得到的中心点把图像依据点到中心点的距离分成K类。程序:function[cen,copy]=Kmeans(I,k)%K均值聚类函数mm=max(max(I));%mm为I的最大灰度值copy=I;cen=(1:k)*mm/k;%求出首次中心值cen1=zeros(1,k);d=ones(1,k)./255;[m,n]=size(I);J=zeros(m,n);while(1)fori=1:mforj=1:nc=abs(I(i,j)-cen);%=find(min(c)==c);%cc为距中心值最近的元素下标J(i,j)=cc;endend%求新的中心点forr=1:kh=0;[J1,J2]=find(J==r);p=length(J1);fors=1:ph=h+I(J1(s),J2(s));copy(J1(s),J2(s))=cen(r);%按中心值,把原图像灰度分为K类endcen1(r)=h/p;endif(abs(cen1-cen)<=d)break;elsecen=cen1;endend白细胞计数程序:[cenwhite,copywhite]=Kmeans(H,3);%K均值聚类函数调用cenwhite%查看聚类后的中心值figure,subplot(1,3,1),imshow(copywhite,[]),title('H分量K均值聚类结果');A=copywhite;[m,n]=size(A);%把聚类后图像二值化fori=1:mforj=1:nifA(i,j)==cenwhite(2)A(i,j)=1;elseA(i,j)=0;endendendsubplot(1,3,2),imshow(A,[]),title('白细胞二值化结果');C1=imdilate(A,ones(5));%对二值化图像腐蚀膨胀处理达到去噪效果C2=imerode(C1,ones(11));C=imdilate(C2,ones(6));subplot(1,3,3),imshow(C,[]),title('白细胞去噪结果');%方法一:用4连通分割图像计算白细胞个数%L4=bwlabel(C,4);%4连通运算figure,subplot(1,2,1),imshow(L4,[]),title('法一:白细胞4连通结果');Numwhite=max(max(L4));%计算4连通后图像中的最大值,即为白细胞个数Numwhite%Numwhite为4连通计数结果,显示结果%方法二:用分水岭算法分割图像计算白细胞个数%E=bwdist(~C);E=-E;E(~C)=-Inf;L0=watershed(E);rgb=label2rgb(L0,'jet');subplot(1,2,2),imshow(rgb,[]),title('法二:白细胞分水岭结果');NumWhite=max(max(L0))-1;NumWhite%NumWhite为分水岭算法计数结果,显示结果红细胞计数:1、从B分量或S分量中分

K均值聚类、分水岭算法计算图片红白细胞个数 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数16
  • 收藏数0 收藏
  • 顶次数0
  • 上传人aibuaiwo1318
  • 文件大小455 KB
  • 时间2016-12-19