matlab实现生物细胞数目统计方案原理

学生物和医学最烦人的可能统计细胞数目是排名很前的了,因此有款软件叫imageJ的在这方面就给予了很大的帮助,本着学习的态度,本人花了两天的时间将细胞统计的功能做了复现,接下来就是方案解释与实现的过程,不想看我废话的可以直接跳到文末有界面图和整体实现流程。

   本人使用的平台是MATLAB2017b,下载地址我将放在文末,而matlab这个软件不需要我多说,它是一款很强大的软件,因此我也将用它来实现模仿imageJ的功能软件设计,这一章节主要是对遇到的问题做下分析与探讨解决方案,具体实现过程在下一篇。

   我们看图说话,第一张据说是血细胞的图片,我也不是学生物的,不太懂,第二很张据说是什么细胞小核啥的。大家不难发现它们的共同点都是细胞巨多,一个个数要数到天黑,此时如果使用软件将会大大减少工作量,动动鼠标1分钟就搞定。

matlab实现生物细胞数目统计方案原理_第1张图片

血细胞


matlab实现生物细胞数目统计方案原理_第2张图片

细胞小核

    我来介绍下如何实现这个功能,本文的方法比较粗暴,没有用到什么分水岭的方法,而是简单的使用了二值化然后通过计算连通域的数量最终得出细胞数目。但是有个很棘手的问题,细胞连在一起怎么办?那还数什么,不用急,细胞连在一起但是细胞核不连在一起呀,所以本文是通过二值化,只提取细胞核。

    拿下图细胞分裂的图片来举例说明,可以看出染色较深的地方是细胞核和染色体,但是有的细胞染色较深有的较浅,很难分辨出来。

matlab实现生物细胞数目统计方案原理_第3张图片

原图

     接下来将三通道的彩色图转换为单通道的灰度图,如下图,此时问题就更加明显了,可以看出有些地方的细胞核其实和其他深色地带的细胞质的颜色是一样的了,这样会导致使用全局二值化时没办法分辨出来,如下图。

matlab实现生物细胞数目统计方案原理_第4张图片

matlab实现生物细胞数目统计方案原理_第5张图片

    而此时本人使用一种方法,就是通过USM锐化,还真别说,用了之后感觉这是神技啊,对于这些的锐化提高对比度的效果也太好了吧,如下图就是通过锐化后的灰度图,他下面那张是全局二值化的图,我敢用人格担保,真的不是为了夸大这个方法而故意把上面那个二值化图弄得好像一坨米田共那样的。

matlab实现生物细胞数目统计方案原理_第6张图片

matlab实现生物细胞数目统计方案原理_第7张图片

    USM锐化其实理解起来是真的非常简单,无非就是通过高斯模糊,然后通过一条小学生都可以理解的公式将原灰度图和模糊后的图片融合在一起,就可以实现锐化的效果,虽然公式看着简单,但是我真的对提出这个公式的那位大神五体投地,它真的好简洁好美。

(灰度图像-w*高斯模糊图像)/(1-w) 其中w是锐化的程度。通过这条公式,图片看起来会更清晰,而且细胞核和细胞质的分界也越来越明显。其中高斯模糊的方法可以参看本人的另一篇文章基于opencv2利用卷积算子实现高斯模糊

最终通过MATLAB自带的连通区域检测函数检测二值化后的图像中的连通区域就可以得到细胞数,如下图

matlab实现生物细胞数目统计方案原理_第8张图片

matlab实现生物细胞数目统计方案原理_第9张图片

具体实现流程:

1、载入图片

2、将rgb彩色图转换成灰度图

3、通过高斯模糊将原图像模糊

4、通过USM锐化将原图像对比度提高

5、通过全局二值化的方法获取细胞核

6、通过连通区域检测获取细胞核的数目


matlab2017b下载地址:https://pan.baidu.com/s/1m9qo4Sbk9q_lyB-9vfx61w

有任何问题或者有技术探讨可以发邮件给我,大家一起学习,邮箱:[email protected]

你可能感兴趣的:(图像处理,医学图像,细胞计数,matlab2017b下载,高斯模糊,USM锐化)