首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何计算图像中“绿点”的数量?

如何计算图像中“绿点”的数量?
EN

Stack Overflow用户
提问于 2010-11-17 20:19:28
回答 4查看 4.5K关注 0票数 1

嗨,我有一堆图片。让我们假设它们都是相同大小的。图像有黑色的背景和一些代表荧光的准圆形绿色斑点。我必须计算每个图像的荧光量(以百分比表示)。即绿点的面积。

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-12-01 20:07:07

以下是一些想法:

  • ,你可以先做边缘检测,然后再做hough circle transform。如果你已经知道了圆圈的半径,这应该很有效。
  • 当你比较颜色时,你可以使用一个更适合模糊比较的颜色空间。例如HSV color space
  • Since你的背景是黑色的,计算亮度和应用阈值可能是最容易的。然后计算threshold.
  • When上方的像素,发布计算机视觉问题时,查看输入材料总是有帮助的。
票数 0
EN

Stack Overflow用户

发布于 2010-12-01 20:56:47

这是图像处理中的一个标准问题,被称为图像分割。你将能够找到关于它的大量信息。

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

我建议您采用一种方法:

  1. 对图像进行预处理以对其进行清理-通过减去中值滤波器或高斯卷积(其邻域大于您的单元格)进行背景减去,或者滚球算法(查看ImageJ源码),或者类似的算法,可能后跟少量模糊(例如,具有3x3邻域的中值滤波器)来去除图像的直方图
  2. 在直方图中搜索两个峰值,一个对应于黑色像素,一个对应于绿色
  3. 使用这两个峰值的值来生成两个聚类K均值(我认为是2个均值!)segmentation

您可以从直方图中选择一个阈值(例如,查找两个峰值之间的谷值),然后在此基础上分割,而不是执行K均值步骤。或者使用某种自适应分割(比方说,将像素与其邻近区域的中位数进行比较),但这需要一些调整。

票数 5
EN

Stack Overflow用户

发布于 2010-11-17 20:27:30

我现在没有时间详细介绍,但我可以为您概述一下过程:

循环浏览图像

  1. 通过每个像素(x,y)将每个图像加载到BufferedImage getRGB中,并获取该像素的颜色(BufferedImage getRGB(int x,int y))
  2. 将此颜色与您的参考颜色(例如,0x7FFF00代表绿色)或定义一个可接受的颜色范围进行比较。
  3. 如果匹配,则在循环运行后递增计数器
  4. ,将计数器与像素总数进行比较,您就得到了百分比

<代码>G212

(注意:这可能是一种非常幼稚的方式,可能会有很多优化,但这应该是一个开始)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4204256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档