[0067] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0068] 下面结合附图对本发明进行进一步纤细说明。
[0069] 如图1所示,本发明提供的一种基于连通面积相减的白细胞图像处理方法包括:
[0070] S101:连通区域标记,利用bwlabel函数对二值图像中白色像素(目标)的标记,让每个单独的连通区域形成一个被标识的块,并利用regionprops函数计算出每个被标识的块的像素个数(面积);
[0071] S102:连通面积相减,连通区域标记后,利用bwlabel函数和regionprops函数对每个连通区域标记并计算出每个被标识的块的像素个数(面积)后,利用MATLAB函数bwareaopen删除面积小于一定值的连通区域,效果如图6处理前的二值图像、图7删除小面积后的二值图像;
[0072] S103:利用一种经典而又很好用的图像分割方法‑‑水坝算法,也就是watershed,将无颗粒白细胞分割出来,效果如图11分水岭分割后示意图、图12本发明实施例提供的分水岭分割后局部放大示意图。
[0073] 此步骤可将黏连非常严重的白细胞分割开来,由于颗粒白细胞和无颗粒白细胞这两类细胞最大差异在细胞核,颗粒白细胞细胞核多呈颗粒状,一般由面积较小的颗粒状组成,这样的形状用分水岭分割法可以将一个连通的细胞核分割成若干个小面积的连通区域;而无颗粒白细胞的细胞核在一般是一个较大的呈圆形或者类圆形的连通区域组成,这样的形状分水岭分割法不会将其分割成小块,面积远大于非颗粒白细胞所以可以利用连通区域面积将颗粒白细胞提取出来。由上图11风水岭分割后图像,再对其利用MATLAB函数bwareaopen删除面积小于一定值的连通区域,就将小面积连通区域删除,留下的就是分割完成后的非颗粒白细胞图像,如图12所示。
[0074] S104:图像相减,在包含颗粒白细胞和无颗粒白细胞原图中,将无颗粒白细胞分割出并计数,利用Matlab提供的函数imsubtract去除原图中的无颗粒白细胞部分得到只包含颗粒白细胞的图和只包含非颗粒白细胞的图;
[0075] 当分割出了无颗粒白细胞并计数后,需要计数颗粒白细胞,这时我们就需要将原图中的无颗粒白细胞部分去掉,本发明采用了图像相减的办法,Matlab提供的函数为imsubtract,图10本发明实施例提供的只包含颗粒白细胞示意图就是利用此函数将图8本发明实施例提供的包含颗粒和无颗粒白细胞示意图图和图9是本发明实施例提供的只包含无颗粒白细胞示意图相减后得到的。
[0076] 然后计算出图10本发明实施例提供的只包含颗粒白细胞示意图中颗粒白细胞的总面积除以单个颗粒白细胞的平均面积就可以得到颗粒白细胞的个数,从而实现了颗粒白细胞和非颗粒白细胞的分类计数。
[0077] 如图2所示,连通算法基本原理为:
[0078] 第一行,得到两个团:[2,6]和[10,13],同时标记为1和2。第二行,得到两个团:[6,7]和[9,10],但是它们都和上一行的团有重叠区域,所以用上一行的团标记,即1和2。第三行,两个:[2,4]和[7,8]。[2,4]这个团与上一行没有重叠的团,所以给它一个新的记号为3;
而[2,4]这个团与上一行的两个团都有重叠,所以给它一个两者中最小的标号,即1,然后将(1,2)写入等价对。全部图像遍历结束,得到很多个团的起始坐标,终止坐标,它们所在的行以及它们的标号,同时得到了一个等价对的列表。
[0079] 如图3‑5所示,连通区域标记:
[0080] 在图像中,最小的单位是像素,每个像素周围有8个邻接像素,常见的邻接关系有2种:4邻接与8邻接。
[0081] 如图3所示,4邻接一共4个点,即上下左右;
[0082] 如图4所示,8邻接的点一共有8个,包括了对角线位置的点;
[0083] 如果像素点A与B邻接,我们称A与B连通,于是我们不加证明的有如下的结论:如果A与B连通,B与C连通,则A与C连通。在视觉上看来,彼此连通的点形成了一个区域,而不连通的点形成了不同的区域。这样的一个所有的点彼此连通点构成的集合,称为一个连通区域。
[0084] 如图5所示,如果考虑4邻接,则有3个连通区域;如果考虑8邻接,则有2个连通区域。(注:图像是被放大的效果,图像正方形实际只有4个像素)。
[0085] 如图6和图7所示,删除小面积连通区域:
[0086] 连通区域标记后,取得每个连通区域的面积,利用MATLAB函数bwareaopen删除面积小于一定值得连通区域。
[0087] 如图8‑10所示,图像相减
[0088] 在包含颗粒和无颗粒白细胞原图中,将无颗粒白细胞分割出并计数,利用Matlab提供的函数ims ubtract去除原图中的无颗粒白细胞部分得到只包含颗粒白细胞的图。
[0089] 如图11和图12所示,利用一种经典而又很好用的图像分割方法‑‑水坝算法,也就是watershed,将非颗粒白细胞分割出来。
[0090] 图13是本发明实施例提供的血液细胞处理与计数效果图。
[0091] 工作原理部分:
[0092] 本发明将颗粒白细胞和非颗粒白细胞进行分类计数,由白细胞特征差异可得这两类细胞最大差异在细胞核,颗粒白细胞细胞核多呈颗粒状,在二值化处理后一般由面积较小的颗粒状组成,这样的形状用分水岭分割法可以将一个连通的细胞核分割成若干个小面积的连通区域;而非颗粒白细胞的细胞核在二值化处理后一般是一个较大的呈圆形或者类圆形的连通区域组成,这样的形状分水岭分割法不会将其分割成小块,所以可以利用二值图像的连通区域面积大小来判断白细胞属于哪一类,从而实现白细胞的分类,为下步计数做好准备。
[0093] 1、连通区域标记算法有很多种,有的算法可以一次遍历图像完成标记,有的则需要2次或更多次遍历图像。这也就造成了不同的算法时间效率的差别,在这里介绍2种算法。
[0094] 第一种算法是现在matlab中连通区域标记函数bwlabel中使的算法,它一次遍历图像,并记下每一行(或列)中连续的团(run)和标记的等价对,然后通过等价对对原来的图像进行重新标记,这个算法是目前我尝试的几个中效率最高的一个。
[0095] 第二种算法是现在开源库cvBlob中使用的标记算法,它通过定位连通区域的内外轮廓来标记整个图像,这个算法的核心是轮廓的搜索算法。这个算法相比与第一种方法效率上要低一些,但是在连通区域个数在100以内时,两者几乎无差别,当连通区域个数到了103数量级时,上面的算法会比该算法快10倍以上。
[0096] Matlab提供的函数为:
[0097] [L,num]=bwlabel(Image_BW_medfilt2,8);
[0098] 2、计算连通区域面积的两种方法
[0099] 方法一:利用MATLAB自带的计算标记后二值图像的连通区域面积的regionprops函数,在依次输出各连通区域所占的像素个数,具体MATLAB函数如下:
[0100]
[0101] 方法二:用户可自定义函数,计算出二值图像所有连通区域的面积总和,具体代码如下:
[0102]
[0103] 下面结合具体实施例对本发明作进一步描述。
[0104] 本发明实施例提供的基于连通面积相减的白细胞图像处理系统包括:
[0105] 连通区域标记,对二值图像中白色像素的标记,让每个单独的连通区域形成一个被标识的块;
[0106] 利用MATLAB函数bwareaopen删除面积小于一定值得连通区域,得到黏连的颗粒白细胞和非颗粒白细胞图像;
[0107] 利用一种经典而又很好用的图像分割方法‑‑水坝算法,也就是watershed,将无颗粒白细胞分割出来;
[0108] 图像相减,在包含颗粒和非颗粒白细胞原图中,将非颗粒白细胞分割出并计数,利用Matlab提供的函数imsubtract去除原图中的无颗粒白细胞部分得到只包含颗粒白细胞的图像,再利用总面积除以平均面积得出颗粒白细胞数量,实现颗粒白细胞和非颗粒白细胞分类计数。
[0109] 本发明实施例提供的基于连通面积相减的白细胞图像处理系统,包括:
[0110] 连通区域标记模块,对二值图像中白色像素的标记,让每个单独的连通区域形成一个被标识的块;
[0111] 黏连的颗粒白细胞和非颗粒白细胞图像获得模块,利用MATLAB函数bwareaopen删除面积小于一定值得连通区域,得到黏连的颗粒白细胞和非颗粒白细胞图像;
[0112] 无颗粒白细胞分割模块,利用图像分割方法‑‑水坝算法,也就是watershed,将无颗粒白细胞分割出来;
[0113] 图像相减模块,在包含颗粒和非颗粒白细胞原图中,将非颗粒白细胞分割出并计数,利用Matlab提供的函数imsubtract去除原图中的无颗粒白细胞部分得到只包含颗粒白细胞的图像,再利用总面积除以平均面积得出颗粒白细胞数量,实现颗粒白细胞和非颗粒白细胞分类计数。
[0114] 在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输)。所述计算机可读取存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
[0115] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。