【问题标题】:Counting number of bright spots in image (python)计算图像中亮点的数量(python)
【发布时间】:2019-08-08 04:48:02
【问题描述】:

我正在尝试开发一种方法来计算image 中的亮点数量。斑点应该是高斯点源,但是噪音很大。此图像中可能有大约 10-20 个实际点源。我的第一个想法是使用 sigma = 15 的gaussian convolution,这似乎做得很好。

首先,有没有更好的方法来隔离这些亮点?

其次,我如何“检测”亮点,即计算它们?我对来自 opencv 的圆形霍夫变换没有任何运气。

编辑Here is the original without gridlineshere is the convolved image without gridlines

【问题讨论】:

  • 你能提供没有网格线的图像吗?还有第二张标记的图像,您希望找到的亮点清晰地圈起来?谢谢。
  • @MarkSetchell,我添加了没有网格线的图像。至于预期的来源,我实际上不知道它们是哪个。我现在更关心检测和计数它们。
  • 这里有一个与另一个 opencv 函数相关的问题要检查:stackoverflow.com/questions/8076889/…
  • 将图像转换为灰度和阈值以提取亮点。然后使用 SimpleBlobDetection,它应该为您提供白色区域的计数。如果您保留颜色或太小,您甚至可以使用它来删除颜色错误的那些

标签: opencv image-processing computer-vision detection feature-detection


【解决方案1】:

我正在处理受大量噪声影响的热红外图像。

我发现,基于低等级的方法,例如基于奇异值分解 (SVD) 或加权核范数度量 (WNNM) 的方法,在降低噪声同时保留信息结构方面提供了非常有效的结果。 它们的主要缺点是它们的计算速度很慢(每张图像需要几分钟) 这是一些文献:

https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=7067415

https://arxiv.org/abs/1705.09912

第二篇论文有一些 MatLab 代码可用,文件相当多,但翻译成 python 应该没那么复杂。

OpenCV 也在非局部均值算法上实现了一个非常有效的算法(它在 python 中可用): https://docs.opencv.org/master/d5/d69/tutorial_py_non_local_means.html

【讨论】:

    猜你喜欢
    • 2011-05-11
    • 2021-09-24
    • 1970-01-01
    • 2017-12-17
    • 1970-01-01
    • 2012-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多