发明内容
本发明的目的是提供一种免疫细胞图像中突触位置点的确定方法,能自动标记连续时间点在二维图像中的细胞突触位置,解决人工标记效率低下和错误率高的问题。
本发明所采用的技术方案是,一种免疫细胞图像中突触位置点的确定方法,具体步骤如下:
步骤1,对免疫细胞图像进行预处理和初步分割;
步骤2,对初步分割的T细胞图像中每个连通域进行处理,并确定每个连通域质心位置;
步骤3,对T细胞图像进行精确分割,并使用质心个数将重叠细胞进行了分割;
步骤4,确定单张图像上T细胞对应的突触位置点;
步骤5,求取连续时间点上每个T细胞突触位置点对于下一个时间点对应的T细胞突触位置点,并且记录连续时间点存在的T细胞突触位置,得到免疫细胞图像中突触位置点。
本发明的特点还在于,
步骤1,具体为:
步骤1.1,将T细胞图像转换为灰度图像,之后依次经高斯去噪、高帽滤波、对比度拉伸,得到预处理后的T细胞图像;
步骤1.2,将经预处理后的T细胞图像依次采用阈值分割、填充空洞、开运算和腐蚀的形态学处理,得到处理后的T细胞图像;
步骤1.3,将步骤1.1中得到的预处理后的T细胞图像的局部最小值与步骤1.2中得到的处理后的T细胞图像相乘,得到T细胞前景处的局部最小值图像;
步骤1.4,采用步骤1.3中T细胞前景处的局部最小值图像标记步骤1.1中的预处理后的T细胞图像,并采用分水岭分割方法对T细胞前景处的局部最小值图像进行分割,得到分割后的T细胞图像;
步骤1.5,利用步骤1.4中分割后的T细胞图像和步骤1.2中处理后的T细胞图像,得到分割后的T细胞图像的背景标签,其计算公式如式(1)所示:
background_label=f(L_1(:).*(1-I_4_2(:))) (1);
式(1)中,background_label为背景标签,L_1为分割后的T细胞图像,I_4_2为处理后的T细胞图像,f(L_1(:).*(1-I_4_2(:)))为求取L_1和(1-I_4_2)点乘后的矩阵中出现频率最多的数字;
步骤1.6,利用分割后的T细胞图像的背景标签将分割后的T细胞图像的背景变为黑色,之后对分割后的T细胞图像进行闭运算,得到初步分割的T细胞图像;
步骤1.7,计算初步分割的T细胞图像前景面积的平均值和标准差,如式(2)、(3)、(4)及式(5)所示;
prctile_low=f(All_area,10) (2);
prctile_high=f(All_area,90) (3);
式(2)、(3)中,All_area为T细胞前景所有前景面积的集合;mean_area=g(All_area(All_area>prctile_low&All_area<prctile_high))(4);std_area=Φ(All_area(All_area>prctile_low&All_area<prctile_high))(5);
式(4)、(5)中,mean_area为初步分割的T细胞图像前景面积的平均值,std_area为初步分割的T细胞图像前景面积的标准差;
步骤1.8,计算初步分割的T细胞图像前景主轴长度的平均值和标准差,如式(6)、(7)、(8)及式(9)所示;
major_low=f(All_major,10) (6);
major_high=f(All_major,90) (7);
式(6)、(7)中,All_major为T细胞前景所有主轴长度的集合;
mean_major=g(All_major(All_major>major_low&All_major<major_high)) (8);
std_major=Φ(All_major(All_major>major_low&All_major<major_high)) (9);
式(8)、(9)中,mean_major为初步分割的T细胞图像前景主轴长度的平均值,std_major为初步分割的T细胞图像前景主轴长度的标准差。
步骤2,具体为:
步骤2.1,求取每个连通域周围范围内的像素坐标,判断每个连通域是不是属于细胞,若满足公式(10)、(11)及公式(12),则属于细胞,若不满足公式(10)、(11)及公式(12),则不属于细胞,并将初步分割的T细胞图像中的该连通域设置为背景;
background=I_2(I_2<=0.5*thrsh) (10);
BW_neighbor=f(L_3_i)<3 (11);
g(I_2(BW_neighbor==1))>g(background)+2*Φ(background) (12);
步骤2.2,判断经步骤2.1后得到每个连通域中细胞是否为粘连细胞,粘连细胞的判断公式采用公式(13)、公式(14)或者公式(15);
公式(13):
cur_stats.Area>mean_area+3*std_area
cur_stats.MajorAxisLength>mean_major+4*std_major (13);
公式(14):
cur_stats.Area>mean_area+2*std_area
cur_stats.MajorAxisLength>mean_major+5*std_major (14);
公式(15):
cur_stats.Area>mean_area+1*std_area
cur_stats.MajorAxisLength>mean_major+3*std_major (15);
式(13)、公式(14)及公式(15)中,cur_stats.Area为每个连通域的面积;cur_stats.MajorAxisLength为每个连通域的长轴长度;
步骤2.3,经步骤2.2后,计算每个连通域的局部最小值,如式(16)及式(17)所示:
BW_min_i=BW_min_1.*L_3_i (16);
local_min_inds=find(BW_min_i==1) (17);
式(16)及式(17)中,BW_min_1为T细胞前景处的局部最小值图像;L_3_i为每个连通域图像,local_min_inds为局部最小值;
步骤2.4,对所有的粘连细胞均进行分割处理,得到分割后的粘连细胞;
步骤2.5,经步骤2.4后,求取每个连通域的质心点。
步骤3,具体按照以下步骤实施:
步骤3.1,使用大津法阈值分割预处理后的T细胞图像,得到阈值分割后的T细胞图像a;
步骤3.2,分配一个和T细胞图像一样大的全零矩阵,将这个矩阵在步骤2中得到质心点的位置设为1,然后与图像a相乘,得到在阈值分割后的T细胞图像a中每个连通域中质心的位置及个数,质心个数大于1;
步骤3.3,判断每个质心之间的欧式距离,若每个质心点之间欧式距离小于15,则认为是同一个细胞,选择多个质心点的重心点作为最终的质心;
若每个质心之间的欧式距离大于15,则认为是重叠细胞,之后对该重叠的细胞进行分割。
步骤3.3中,若每个质心之间的欧式距离大于15,则认为是重叠细胞,之后对该重叠的细胞进行分割,具体步骤如下:
步骤3.3.1,提取重叠细胞的harrias角点特征,角点特征的个数为质心点个数乘以4,再提取重叠细胞的边界轮廓点;
步骤3.3.2,计算每个角点和所有轮廓点的欧式距离,选择每个角点对应最近的轮廓点即为匹配的轮廓点;
步骤3.3.3,计算步骤3.3.1每两个轮廓点之间的轮廓距离,选择任意一个初始轮廓点,计算每个轮廓点到这个初始轮廓点的轮廓距离,即从初始轮廓点位置,将每两个轮廓点的距离依次累加求和得到列向量b,求取每两个轮廓点之间的所有和,即为细胞边界周长;
步骤3.3.4,在列向量b中选择出步骤3.3.2匹配的轮廓点,得到匹配轮廓点到初始轮廓点之间的轮廓距离为列向量c,c减去cT即得到每个匹配轮廓点之间的轮廓距离矩阵A;细胞边界周长减去A的绝对值即为每个匹配轮廓点之间的反向轮廓距离矩阵B;
步骤3.3.5,计算所有匹配的轮廓点欧式距离矩阵C,C矩阵中的每个元素除以A和B对应位置的最小值得到比值矩阵Ratio,如式(18)所示,将Ratio进行从小到大排序,每次均可得到对应的两个轮廓点位置;
Ratio=C./min(A,B) (18);
步骤3.3.6,根据步骤3.3.5得到的两个轮廓点位置,其中一个作为起点,另一个作为终点,使用bresenham划线算法进行划线;
若当前连通域质心个数为2,则划线完分为两部分小连通域即停止,若没有分为两部分小连通域,继续用步骤3.3.5中的个两个轮廓点进行划线直到分为两部分;
若当前连通域质心个数大于2,将步骤3.3.5的两个轮廓点位置用划线算法进行划线,若能被划为两部分保存这两部分区域,判断每部分区域质心点个数,如果为1不作处理,如果不为1则继续在这部分选用步骤3.3.5中的两个轮廓点进行划线,直到当前连通域质心的个数等于被划分的小连通区域则结束;若不能被划为两部分,继续选用步骤3.3.5中的两个轮廓点进行划线。
步骤4,具体为:
步骤4.1,在步骤3中获得的分割图像中获得轮廓点并对应到荧光细胞图像中,采用最小二乘原则,根据轮廓点对T细胞进行椭圆拟合;
步骤4.2,在荧光细胞图像中,采用霍夫圆检测的方法,设定圆检测的最大半径和最小半径,将APC细胞检测成圆;
最大半径为28像素,最小半径为15像素;
步骤4.3、在荧光细胞图像中,以解方程的方式求取圆和椭圆的交点即为T细胞的突触位置点。
步骤5,具体步骤如下:
步骤5.1,读取T细胞图像序列中所有图像帧数,重复步骤1,步骤2,步骤3和步骤4,得到T细胞图像序列上每个T细胞的突触位置点;
步骤5.2,计算图像序列中每个T细胞图像所有突触位置的中间位置点,如式(19)所示:
Point_mean=Point1+Point2 (19);
式(19)中,Point1和Point2分别代表T细胞图像中其中一个突触的两个点坐标,Point_mean为中间点坐标;
步骤5.3,计算图像序列中相邻两帧之间所有突触中间位置点的欧氏距离,得到矩阵D,若矩阵D中的元素大于15个像素值,则设为10000,在矩阵D中依次选择每行对应欧氏距离最小的列,当欧式距离大于10000,此行对应的列设为0;当此列被选择后,下面的行不能选择此列,即选择次欧式距离最小的列,直到匹配完所有的行对应的列,得到总帧数-1个匹配数组;
步骤5.4,根据第一个匹配数组中的内容,作为下一个匹配数组的索引,如果为0,则直接在后面匹配0,找到其中的内容,然后和第一个匹配数组拼接,依次拼接完所有矩阵,组成拼接矩阵,当拼接矩阵中有连续6帧的非0结果,则找到对应的突触点,记录下这组数据,即为免疫细胞图像中突触位置点。
本发明的有益效果是:
该方法能够减少人工标记突触位置建模消耗的成本,将机器视觉算法的优点发挥起来,减少错误率;通过使用该方法,可以对细胞免疫过程中的蛋白质进行研究,进而为医学提供大量的样本数据。
具体实施方式
下面结合附图和具体实施方式对本发明进行详细说明。
本发明一种免疫细胞图像中突触位置点的确定方法,具体步骤如下:
步骤1,对免疫细胞图像进行预处理和初步分割,具体为:
步骤1.1,将T细胞图像转换为灰度图像,之后依次经高斯去噪、高帽滤波、对比度拉伸,得到预处理后的T细胞图像;
步骤1.2,将经预处理后的T细胞图像依次采用阈值分割、填充空洞、开运算和腐蚀的形态学处理,得到处理后的T细胞图像;
步骤1.3,将步骤1.1中得到的预处理后的T细胞图像的局部最小值与步骤1.2中得到的处理后的T细胞图像相乘,得到T细胞前景处的局部最小值图像;
步骤1.4,采用步骤1.3中T细胞前景处的局部最小值图像标记步骤1.1中的预处理后的T细胞图像,并采用分水岭分割方法对T细胞前景处的局部最小值图像进行分割,得到分割后的T细胞图像;
步骤1.5,利用步骤1.4中分割后的T细胞图像和步骤1.2中处理后的T细胞图像,得到分割后的T细胞图像的背景标签,其计算公式如式(1)所示:
background_label=f(L_1(:).*(1-I_4_2(:))) (1);
式(1)中,background_label为背景标签,L_1为分割后的T细胞图像,I_4_2为处理后的T细胞图像,f(L_1(:).*(1-I_4_2(:)))为求取L_1和(1-I_4_2)点乘后的矩阵中出现频率最多的数字;
步骤1.6,利用分割后的T细胞图像的背景标签将分割后的T细胞图像的背景变为黑色,之后对分割后的T细胞图像进行闭运算,得到初步分割的T细胞图像;
步骤1.7,计算初步分割的T细胞图像前景面积的平均值和标准差,如式(2)、(3)、(4)及式(5)所示;
prctile_low=f(All_area,10) (2);
prctile_high=f(All_area,90) (3);
式(2)、(3)中,All_area为T细胞前景所有前景面积的集合,函数f(All_area,10)为计算T细胞前景面积的集合中有10%个前景面积小于这个值;函数f(All_area,90)为计算T细胞前景面积的集合中有90%个前景面积小于这个值;
mean_area=g(All_area(All_area>prctile_low&All_area<prctile_high))(4);
std_area=Φ(All_area(All_area>prctile_low&All_area<prctile_high)) (5);
式(4)、(5)中,mean_area为初步分割的T细胞图像前景面积的平均值,std_area为初步分割的T细胞图像前景面积的标准差;函数g(x)为计算数组x的平均值函数,函数Φ(x)为计算数组x的标准差函数;
步骤1.8,计算初步分割的T细胞图像前景主轴长度的平均值和标准差,如式(6)、(7)、(8)及式(9)所示;
major_low=f(All_major,10) (6);
major_high=f(All_major,90) (7);
式(6)、(7)中,All_major为T细胞前景所有主轴长度的集合,函数f(All_major,10)为计算T细胞前景主轴长度的集合中有10%个前景主轴长度小于这个值;函数f(All_major,90)为计算T细胞前景主轴长度的集合中有90%个前景主轴长度小于这个值;
mean_major=g(All_major(All_major>major_low&All_major<major_high)) (8);
std_major=Φ(All_major(All_major>major_low&All_major<major_high)) (9);
式(8)、(9)中,mean_major为初步分割的T细胞图像前景主轴长度的平均值,std_major为初步分割的T细胞图像前景主轴长度的标准差;函数g(x)为计算数组x的平均值函数,函数Φ(x)为计算数组x的标准差函数;
步骤2,对初步分割的T细胞图像中每个连通域进行处理,并确定每个连通域质心位置,具体为:
步骤2.1,求取每个连通域周围范围内(即小于3个像素)的像素坐标,判断每个连通域是不是属于细胞,若满足公式(10)、(11)及公式(12),则属于细胞,若不满足公式(10)、(11)及公式(12),则不属于细胞,并将初步分割的T细胞图像中的该连通域设置为背景;
background=I_2(I_2<=0.5*thrsh) (10);
BW_neighbor=f(L_3_i)<3 (11);
g(I_2(BW_neighbor==1))>g(background)+2*Φ(background)(12);
式(10)、(11)及式(12)中,I_2为预处理后的T细胞图像,thrsh为步骤1.2中采用类间方差得到的阈值,background为预处理后的T细胞图像的背景像素值的集合,L_3_i为当前连通域,函数f(L_3_i)为计算图像中的其他像素点到当前连通域的距离,连通域内部距离为0,BW_neighbor为图像中的其他像素点到当前连通域的距离小于3个像素的像素点位置,函数g(background)为计算背景像素值集合的平均值,函数Φ(background)为计算背景像素值集合的标准差,函数g(I_2(BW_neighbor==1))为计算当前连通域在预处理图像中T细胞内部像素值和周围小于3个像素距离的平均像素值;
步骤2.2,判断经步骤2.1后得到每个连通域中细胞是否为粘连细胞,粘连细胞的判断公式采用公式(13)、公式(14)或者公式(15);
公式(13):
cur_stats.Area>mean_area+3*std_area
cur_stats.MajorAxisLength>mean_major+4*std_major (13);
公式(14):
cur_stats.Area>mean_area+2*std_area
cur_stats.MajorAxisLength>mean_major+5*std_major (14);
公式(15):
cur_stats.Area>mean_area+1*std_area
cur_stats.MajorAxisLength>mean_major+3*std_major (15);
式(13)、公式(14)及公式(15)中,cur_stats.Area为每个连通域的面积;cur_stats.MajorAxisLength为每个连通域的长轴长度;
步骤2.3,经步骤2.2后,计算每个连通域的局部最小值,如式(16)及式(17)所示:
BW_min_i=BW_min_1.*L_3_i (16);
local_min_inds=find(BW_min_i==1) (17);
式(16)及式(17)中,BW_min_1为T细胞前景处的局部最小值图像;L_3_i为每个连通域图像,local_min_inds为局部最小值;
步骤2.4,对所有的粘连细胞均进行分割处理,得到分割后的粘连细胞;
具体为:判断每个粘连细胞所在的连通域中局部最小值个数,若局部最小值个数小于5,计算每个局部最小值之间的欧氏距离得到局部最小值矩阵,在局部最小值矩阵中选择欧氏距离最远的两个点的局部最小值位置,根据步骤1.4中得到分割后的T细胞图像,不同的局部最小值分布在不同的小连通域中,保留上面选出来的局部最小值的小连通域,其余区域置为背景0,即将当前连通域分成了两部分;
若局部最小值个数多于5个,根据步骤1.4中得到分割后的T细胞图像,不同的局部最小值分布在不同的小连通域中,在当前连通域中依次循环每次只去除一个局部最小值所在的小区域膨胀后的结果,剩下的当前连通域如果被分为两部分则保存这两部分连通域,如果被分为大于两部分,对当前连通域中剩余的小连通域进行排序,选择面积最大的两部分连通域保存,若小于两部分则不作处理;
判断依次去除一个局部最小值所在的小区域膨胀后的保存结果,如果保存结果为空,则按照局部最小值个数小于5的方法处理,计算每个局部最小值之间的欧氏距离得到局部最小值矩阵,在局部最小值矩阵中选择欧氏距离最远的两个点的局部最小值位置,根据步骤1.4中得到分割后的T细胞图像,不同的局部最小值分布在不同的小连通域中,保留上面选出来的局部最小值的小连通域,其余区域置为背景0,即将当前连通域分成了两部分;如果保存结果不为空,则计算去除每一个局部最小值膨胀区域后保存两部分的面积差分值,选择差分值最小的两部分即为当前连通域的处理结果,即这两部分面积比较相似;
步骤2.5,经步骤2.4后,求取每个连通域的质心点;
步骤3,对T细胞图像进行精确分割,并使用质心个数将重叠细胞进行了分割,具体按照以下步骤实施:
步骤3.1,使用大津法阈值分割预处理后的T细胞图像,得到阈值分割后的T细胞图像a;
步骤3.2,分配一个和T细胞图像一样大的全零矩阵,将这个矩阵在步骤2中得到质心点的位置设为1,然后与图像a相乘,得到在阈值分割后的T细胞图像a中每个连通域中质心的位置及个数,质心个数大于1;
步骤3.3,判断每个质心之间的欧式距离,若每个质心点之间欧式距离小于15,则认为是同一个细胞,选择多个质心点的重心点作为最终的质心;
若每个质心之间的欧式距离大于15,则认为是重叠细胞,之后对该重叠的细胞进行分割,具体步骤如下:
步骤3.3.1,提取重叠细胞的harrias角点特征,角点特征的个数为质心点个数乘以4,再提取重叠细胞的边界轮廓点;
步骤3.3.2,计算每个角点和所有轮廓点的欧式距离,选择每个角点对应最近的轮廓点即为匹配的轮廓点;
步骤3.3.3,计算步骤3.3.1每两个轮廓点之间的轮廓距离,选择任意一个初始轮廓点,计算每个轮廓点到这个初始轮廓点的轮廓距离,即从初始轮廓点位置,将每两个轮廓点的距离依次累加求和得到列向量b,求取每两个轮廓点之间的所有和,即为细胞边界周长;
步骤3.3.4,在列向量b中选择出步骤3.3.2匹配的轮廓点,得到匹配轮廓点到初始轮廓点之间的轮廓距离为列向量c,c减去cT即得到每个匹配轮廓点之间的轮廓距离矩阵A;细胞边界周长减去A的绝对值即为每个匹配轮廓点之间的反向轮廓距离矩阵B;
步骤3.3.5,计算所有匹配的轮廓点欧式距离矩阵C,C矩阵中的每个元素除以A和B对应位置的最小值得到比值矩阵Ratio,如式(18)所示,将Ratio进行从小到大排序,每次均可得到对应的两个轮廓点位置;
Ratio=C./min(A,B) (18);
步骤3.3.6,根据步骤3.3.5得到的两个轮廓点位置,其中一个作为起点,另一个作为终点,使用bresenham划线算法进行划线;
若当前连通域质心个数为2,则划线完分为两部分小连通域即停止,若没有分为两部分小连通域,继续用步骤3.3.5中的个两个轮廓点进行划线直到分为两部分;
若当前连通域质心个数大于2,将步骤3.3.5的两个轮廓点位置用划线算法进行划线,若能被划为两部分保存这两部分区域,判断每部分区域质心点个数,如果为1不作处理,如果不为1则继续在这部分选用步骤3.3.5中的两个轮廓点进行划线,直到当前连通域质心的个数等于被划分的小连通区域则结束;若不能被划为两部分,继续选用步骤3.3.5中的两个轮廓点进行划线;
步骤4,确定单张图像上T细胞对应的突触位置点,具体按照以下步骤实施:
步骤4.1、在步骤3中获得的分割图像中获得轮廓点并对应到荧光细胞图像中,采用最小二乘原则,根据轮廓点对T细胞进行椭圆拟合。
步骤4.2、在荧光细胞图像中,采用霍夫圆检测的方法,设定圆检测的最大半径和最小半径,将APC细胞检测成圆;
最大半径为28像素,最小半径为15像素;
步骤4.3、在荧光细胞图像中,以解方程的方式求取圆和椭圆的交点即为T细胞的突触位置点;
步骤5,求取连续时间点上每个T细胞突触位置点对于下一个时间点对应的T细胞突触位置点,并且记录连续时间点存在的T细胞突触位置,具体步骤如下:
步骤5.1,读取T细胞图像序列中所有图像帧数,重复步骤1,步骤2,步骤3和步骤4,得到T细胞图像序列上每个T细胞的突触位置点;
步骤5.2,计算图像序列中每个T细胞图像所有突触位置的中间位置点,如式(19)所示:
Point_mean=Point1+Point2 (19);
式(19)中,Point1和Point2分别代表T细胞图像中其中一个突触的两个点坐标,Point_mean为中间点坐标;
步骤5.3,计算图像序列中相邻两帧之间所有突触中间位置点的欧氏距离,得到矩阵D,若矩阵D中的元素大于15个像素值,则设为10000,在矩阵D中依次选择每行对应欧氏距离最小的列,当欧式距离大于10000,此行对应的列设为0;当此列被选择后,下面的行不能选择此列,即选择次欧式距离最小的列,直到匹配完所有的行对应的列,得到总帧数-1个匹配数组;
步骤5.4,根据第一个匹配数组中的内容,作为下一个匹配数组的索引,如果为0,则直接在后面匹配0,找到其中的内容,然后和第一个匹配数组拼接,依次拼接完所有矩阵,组成拼接矩阵,当拼接矩阵中有连续6帧的非0结果,则找到对应的突触点,记录下这组数据,即为免疫细胞图像中突触位置点。
实施例
本发明一种免疫细胞图像中突触位置点的确定方法,具体步骤如下:
步骤1,对免疫细胞图像进行预处理和初步分割,如图1所示,白色为T细胞区域,黑色为背景,具体为:
步骤1.1,将T细胞图像转换为灰度图像,之后依次经高斯去噪、高帽滤波、对比度拉伸,得到预处理后的T细胞图像;
步骤1.2,将经预处理后的T细胞图像依次采用阈值分割、填充空洞、开运算和腐蚀的形态学处理,得到处理后的T细胞图像;
步骤1.3,将步骤1.1中得到的预处理后的T细胞图像的局部最小值与步骤1.2中得到的处理后的T细胞图像相乘,得到T细胞前景处的局部最小值图像;
步骤1.4,采用步骤1.3中T细胞前景处的局部最小值图像标记步骤1.1中的预处理后的T细胞图像,并采用分水岭分割方法对T细胞前景处的局部最小值图像进行分割,得到分割后的T细胞图像;
步骤1.5,利用步骤1.4中分割后的T细胞图像和步骤1.2中处理后的T细胞图像,得到分割后的T细胞图像的背景标签,其计算公式如式(1)所示:
background_label=f(L_1(:).*(1-I_4_2(:))) (1);
式(1)中,background_label为背景标签,L_1为分割后的T细胞图像,I_4_2为处理后的T细胞图像,f(L_1(:).*(1-I_4_2(:)))为求取L_1和(1-I_4_2)点乘后的矩阵中出现频率最多的数字;
步骤1.6,利用分割后的T细胞图像的背景标签将分割后的T细胞图像的背景变为黑色,之后对分割后的T细胞图像进行闭运算,得到初步分割的T细胞图像,如图2所示,白色区域为初步分割的T细胞,黑色区域为背景;
步骤1.7,计算初步分割的T细胞图像前景面积的平均值和标准差,如式(2)、(3)、(4)及式(5)所示;
prctile_low=f(All_area,10) (2);
prctile_high=f(All_area,90) (3);
式(2)、(3)中,All_area为T细胞前景所有前景面积的集合,函数f(All_area,10)为计算T细胞前景面积的集合中有10%个前景面积小于这个值;
mean_area=g(All_area(All_area>prctile_low&All_area<prctile_high))(4);
std_area=Φ(All_area(All_area>prctile_low&All_area<prctile_high))(5);
式(4)、(5)中,mean_area为初步分割的T细胞图像前景面积的平均值,std_area为初步分割的T细胞图像前景面积的标准差;
步骤1.8,计算初步分割的T细胞图像前景主轴长度的平均值和标准差,如式(6)、(7)、(8)及式(9)所示;
major_low=f(All_major,10) (6);
major_high=f(All_major,90) (7);
式(6)、(7)中,All_major为T细胞前景所有主轴长度的集合;
mean_major=g(All_major(All_major>major_low&All_major<major_high)) (8);
std_major=Φ(All_major(All_major>major_low&All_major<major_high)) (9);
式(8)、(9)中,mean_major为初步分割的T细胞图像前景主轴长度的平均值,std_major为初步分割的T细胞图像前景主轴长度的标准差;
步骤2,对初步分割的T细胞图像中每个连通域进行处理,并确定每个连通域质心位置,具体为:
步骤2.1,求取每个连通域周围范围内(即小于3个像素)的像素坐标,判断每个连通域是不是属于细胞,若满足公式(10)、(11)及公式(12),则属于细胞,若不满足公式(10)、(11)及公式(12),则不属于细胞,并将初步分割的T细胞图像中的该连通域设置为背景;
background=I_2(I_2<=0.5*thrsh) (10);
BW_neighbor=f(L_3_i)<3 (11);
g(I_2(BW_neighbor==1))>g(background)+2*Φ(background)(12);
步骤2.2,判断经步骤2.1后得到每个连通域中细胞是否为粘连细胞,粘连细胞的判断公式采用公式(13);
cur_stats.Area>mean_area+3*std_area
cur_stats.MajorAxisLength>mean_major+4*std_major (13);
式(13)中,cur_stats.Area为每个连通域的面积;cur_stats.MajorAxisLength为每个连通域的长轴长度;
步骤2.3,经步骤2.2后,计算每个连通域的局部最小值,如式(16)及式(17)所示:
BW_min_i=BW_min_1.*L_3_i (16);
local_min_inds=find(BW_min_i==1) (17);
式(16)及式(17)中,BW_min_1为T细胞前景处的局部最小值图像;L_3_i为每个连通域图像,local_min_inds为局部最小值;
步骤2.4,对所有的粘连细胞均进行分割处理,得到分割后的粘连细胞;
具体为:判断每个粘连细胞所在的连通域中局部最小值个数,若局部最小值个数小于5,计算每个局部最小值之间的欧氏距离得到局部最小值矩阵,在局部最小值矩阵中选择欧氏距离最远的两个点的局部最小值位置,根据步骤1.4中得到分割后的T细胞图像,不同的局部最小值分布在不同的小连通域中,保留上面选出来的局部最小值的小连通域,其余区域置为背景0,即将当前连通域分成了两部分;
若局部最小值个数多于5个,根据步骤1.4中得到分割后的T细胞图像,不同的局部最小值分布在不同的小连通域中,在当前连通域中依次循环每次只去除一个局部最小值所在的小区域膨胀后的结果,剩下的当前连通域如果被分为两部分则保存这两部分连通域,如果被分为大于两部分,对当前连通域中剩余的小连通域进行排序,选择面积最大的两部分连通域保存,若小于两部分则不作处理;
判断依次去除一个局部最小值所在的小区域膨胀后的保存结果,如果保存结果为空,则按照局部最小值个数小于5的方法处理,计算每个局部最小值之间的欧氏距离得到局部最小值矩阵,在局部最小值矩阵中选择欧氏距离最远的两个点的局部最小值位置,根据步骤1.4中得到分割后的T细胞图像,不同的局部最小值分布在不同的小连通域中,保留上面选出来的局部最小值的小连通域,其余区域置为背景0,即将当前连通域分成了两部分;如果保存结果不为空,则计算去除每一个局部最小值膨胀区域后保存两部分的面积差分值,选择差分值最小的两部分即为当前连通域的处理结果,即这两部分面积比较相似;
步骤2.5,经步骤2.4后,求取每个连通域的质心点,如图3所示,白色区域为T细胞前景连通域,黑色区域为背景,其中白色区域中的黑色星号为求取的质心点;
步骤3,对T细胞图像进行精确分割,如图4所示,其中白色区域为精准分割后的细胞区域,黑色星号为质心点,黑色区域为背景,并使用质心个数将重叠细胞进行了分割,具体按照以下步骤实施:
步骤3.1,使用大津法阈值分割预处理后的T细胞图像,得到阈值分割后的T细胞图像a,如图5所示,黑色为背景,白色为大津法分割T细胞前景区域;
步骤3.2,分配一个和T细胞图像一样大的全零矩阵,将这个矩阵在步骤2中得到质心点的位置设为1,然后与图像a相乘,得到在阈值分割后的T细胞图像a中每个连通域中质心的位置及个数,质心个数大于1;
步骤3.3,判断每个质心之间的欧式距离,若每个质心点之间欧式距离小于15,则认为是同一个细胞,选择多个质心点的重心点作为最终的质心;
若每个质心之间的欧式距离大于15,则认为是重叠细胞,之后对该重叠的细胞进行分割,具体步骤如下:
步骤3.3.1,提取重叠细胞的harrias角点特征,角点特征的个数为质心点个数乘以4,再提取重叠细胞的边界轮廓点;
步骤3.3.2,计算每个角点和所有轮廓点的欧式距离,选择每个角点对应最近的轮廓点即为匹配的轮廓点;
步骤3.3.3,计算步骤3.3.1每两个轮廓点之间的轮廓距离,选择任意一个初始轮廓点,计算每个轮廓点到这个初始轮廓点的轮廓距离,即从初始轮廓点位置,将每两个轮廓点的距离依次累加求和得到列向量b,求取每两个轮廓点之间的所有和,即为细胞边界周长;
步骤3.3.4,在列向量b中选择出步骤3.3.2匹配的轮廓点,得到匹配轮廓点到初始轮廓点之间的轮廓距离为列向量c,c减去cT即得到每个匹配轮廓点之间的轮廓距离矩阵A;细胞边界周长减去A的绝对值即为每个匹配轮廓点之间的反向轮廓距离矩阵B;
步骤3.3.5,计算所有匹配的轮廓点欧式距离矩阵C,C矩阵中的每个元素除以A和B对应位置的最小值得到比值矩阵Ratio,如式(18)所示,将Ratio进行从小到大排序,每次均可得到对应的两个轮廓点位置;
Ratio=C./min(A,B) (18);
步骤3.3.6,根据步骤3.3.5得到的两个轮廓点位置,其中一个作为起点,另一个作为终点,使用bresenham划线算法进行划线;
若当前连通域质心个数为2,则划线完分为两部分小连通域即停止,若没有分为两部分小连通域,继续用步骤3.3.5中的个两个轮廓点进行划线直到分为两部分;
若当前连通域质心个数大于2,将步骤3.3.5的两个轮廓点位置用划线算法进行划线,若能被划为两部分保存这两部分区域,判断每部分区域质心点个数,如果为1不作处理,如果不为1则继续在这部分选用步骤3.3.5中的两个轮廓点进行划线,直到当前连通域质心的个数等于被划分的小连通区域则结束;若不能被划为两部分,继续选用步骤3.3.5中的两个轮廓点进行划线;
步骤4,确定单张图像上T细胞对应的突触位置点,具体按照以下步骤实施:
步骤4.1、在步骤3中获得的分割图像中获得轮廓点并对应到荧光细胞图像中,采用最小二乘原则,根据轮廓点对T细胞进行椭圆拟合。
步骤4.2、在荧光细胞图像中,采用霍夫圆检测的方法,设定圆检测的最大半径和最小半径,将APC细胞检测成圆;
最大半径为28像素,最小半径为15像素;
步骤4.3、在荧光细胞图像中,以解方程的方式求取圆和椭圆的交点即为T细胞的突触位置点,如图6所示,其中圆拟合的为APC细胞,椭圆拟合的是只与APC细胞接触的T细胞轮廓点,白色点为突触位置,黑色星号为圆的中心和T细胞的质心;
步骤5,求取连续时间点上每个T细胞突触位置点对于下一个时间点对应的T细胞突触位置点,并且记录连续时间点存在的T细胞突触位置,具体步骤如下:
步骤5.1,读取T细胞图像序列中所有图像帧数,重复步骤1,步骤2,步骤3和步骤4,得到T细胞图像序列上每个T细胞的突触位置点;
步骤5.2,计算图像序列中每个T细胞图像所有突触位置的中间位置点,如式(19)所示:
Point_mean=Point1+Point2 (19);
式(19)中,Point1和Point2分别代表T细胞图像中其中一个突触的两个点坐标,Point_mean为中间点坐标;
步骤5.3,计算图像序列中相邻两帧之间所有突触中间位置点的欧氏距离,得到矩阵D,若矩阵D中的元素大于15个像素值,则设为10000,在矩阵D中依次选择每行对应欧氏距离最小的列,当欧式距离大于10000,此行对应的列设为0;当此列被选择后,下面的行不能选择此列,即选择次欧式距离最小的列,直到匹配完所有的行对应的列,得到总帧数-1个匹配数组;
步骤5.4,根据第一个匹配数组中的内容,作为下一个匹配数组的索引,如果为0,则直接在后面匹配0,找到其中的内容,然后和第一个匹配数组拼接,依次拼接完所有矩阵,组成拼接矩阵,当拼接矩阵中有连续6帧的非0结果,则找到对应的突触点,记录下这组数据,即为免疫细胞图像中突触位置点。