如何计算图像中"绿点"的数量?

Lui*_*ixv 1 image image-processing image-recognition computer-vision

嗨,我有一堆图像.让我们假设所有这些都具有相同的大小.图像具有黑色背景和一些代表荧光的准圆形绿点.我必须计算每个图像的荧光量(百分比).即绿色区域.

知道如何做到这一点,例如在Java中吗?

Tom*_*son 5

这是图像处理中的标准问题,并且被称为图像分割.您将能够找到大量有关它的信息.

特别是,这是显微图像处理中的常见问题,这正是您正在做的事情.我认为在ImageJ中可能会有固定操作; 如果没有,它将是ImageJ中一个相当简单的宏,并且由于ImageJ在java中,如果你愿意,可以使用ImageJ的库编写java代码.

我建议你采取一种方法:

  1. 预处理图像以清理它 - 通过减去中值滤波器或高斯卷积来减去背景,减去大于你的单元的邻域,或滚球算法(在ImageJ源中查看),或类似的东西,可能后跟一个少量模糊(例如,具有3x3邻域的中值滤波器)以去除斑点.
  2. 计算图像的直方图
  3. 在直方图中搜索两个峰,一个对应于黑色像素,一个对应绿色
  4. 使用两个峰的值来播种双簇K-means(2-means,我猜!)分段

你可以直接从直方图中选择一个阈值(比如两个峰之间的谷值),而不是K-means步骤.或者使用某种自适应分割(比较像素与其邻域中的中位数,比如说),但这需要一些调整.