【问题标题】:Cluster/blob detection簇/斑点检测
【发布时间】:2020-09-17 07:15:52
【问题描述】:

我来自细胞生物学界,请原谅我缺乏知识。

我主要使用 ImageJ 进行图像处理,其中我们拟合 2D-Gaussian 来检测簇/斑点/斑点。例如,请参见下图。

我正在尝试在 python 中实现类似的管道并遇到opencv。我正在使用简单的 blob 检测器,它适用于隔离良好的集群,而在多个集群聚集在一起的情况下效果不佳。下图,左图为原始图,右图为阈值处理后的图。

我的检测器正在将“多集群”集群轮廓化为单个集群。有没有办法更智能地分割这些多集群集群?理想情况下,我想使用相同的 2D-Gaussian,但目前对任何事情都持开放态度?

【问题讨论】:

  • 您能否发布您正在使用的原始/示例图像之一以及您期望的结果?您如何对图像进行二值化(阈值化)?

标签: python opencv image-processing


【解决方案1】:

尝试轮廓检测,看看是否有效。

contours, hierarchy = cv2.findContours(image, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
out = image.copy()
out = cv2.cvtColor(image, cv2.COLOR_GRAY2RGB)

for c in contours:
    cv2.polylines(out,[c],True,(255,0,0),1)

【讨论】:

  • 嘿,谢谢你的回复,@Mercury!我尝试过使用findContour() 进行轮廓处理。问题在于较大的轮廓。这些较大的轮廓实际上应该是多个较小的簇/轮廓。我认为我的阈值不是正确的方法。我想知道是否可以进行一些过滤以使较大的集群看起来更像是由较小的单个集群组成的集群?
猜你喜欢
  • 1970-01-01
  • 2012-05-21
  • 1970-01-01
  • 1970-01-01
  • 2011-09-04
  • 2012-04-05
  • 1970-01-01
  • 2015-05-11
  • 2020-08-09
相关资源
最近更新 更多