Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 基于面积的图像状态检测与验证_Python_Image Processing_Numpy_Scipy_Python Imaging Library - Fatal编程技术网

Python 基于面积的图像状态检测与验证

Python 基于面积的图像状态检测与验证,python,image-processing,numpy,scipy,python-imaging-library,Python,Image Processing,Numpy,Scipy,Python Imaging Library,我目前正在从事一个项目,我必须区分正常细胞和病变细胞。我所看到的特殊异常表明,细胞核应该有一个特定的区域,大部分是圆形的。我目前正在使用scipy、numpy和PIL来确定原子核的存在(见下图)……但我不确定如何确定面积,因为原子核并不总是一个完美的圆。有什么建议吗 如果您知道图像的比例,那么只需计算单元格区域内的像素数即可。然后,这个数字除以图像中的像素总数,就得到了单元占用的图像区域的分数。如果你知道你的图像分辨率,那么你应该知道矩形图像域的面积。将二者相乘得到细胞面积 一些不准确的来

我目前正在从事一个项目,我必须区分正常细胞和病变细胞。我所看到的特殊异常表明,细胞核应该有一个特定的区域,大部分是圆形的。我目前正在使用scipy、numpy和PIL来确定原子核的存在(见下图)……但我不确定如何确定面积,因为原子核并不总是一个完美的圆。有什么建议吗


如果您知道图像的比例,那么只需计算单元格区域内的像素数即可。然后,这个数字除以图像中的像素总数,就得到了单元占用的图像区域的分数。如果你知道你的图像分辨率,那么你应该知道矩形图像域的面积。将二者相乘得到细胞面积


一些不准确的来源将是(a)如果分割不良(b)如果细胞曾经被拉长(等周商不良),那么包括/排除细胞边界像素的舍入很重要,或者(c)如果细胞曾经在阴影中/没有在正确的平面上观察到以产生其横截面积。但希望您的实验包含足够的数据,您可以丢弃这些数据。

如果您已经将数据标记为以下内容,则通过计算获得该区域的每个颜色像素:

data = np.array([[0,0,1,1,1],
                 [2,2,1,1,1],
                 [2,3,3,3,3],
                 [2,4,4,3,3]])
然后可以使用numpy.bincount()对每个标签进行计数:

print numpy.bincount(data.ravel())
输出为:

array([2, 6, 4, 6, 2])

这意味着有两个0,六个1,四个2,六个3,和两个4。

既然你已经有了一个很好的分割(你就快到了!)-我只会对每种颜色使用一个阈值(0/1)-所以你只需要一个粒子就可以得到一张黑色图片,然后将这些值相加,就可以得到面积(以像素为单位)。如果需要“真实”区域,则需要摄像机校准/参考对象。您可能需要研究形状因子/紧凑度度量。如果有多个相同颜色的粒子,则此操作无效。然后,看看播种。你也可以看看尼斯教程“拍摄这张图片并计算细胞核数量”,还有“免费开源软件,旨在让生物学家……从数千张图片中自动定量测量表型”。我自己都没用过。