【问题标题】:Comparing Images for common features/patterns比较图像的共同特征/模式
【发布时间】:2015-01-29 17:19:45
【问题描述】:

我收藏了100多张图片。虽然我能够看到它们之间的共同模式,但我被要求编写某种脚本/程序来检查它们之间的相似性或相似程度。

所有图片的尺寸均为 255x255。只有黑白两种颜色。在大多数情况下,图像由三种原始形状组成:

  • 正方形/长方形
  • 垂直/水平/对角线
  • 图像上沿对角线拉伸的斑点/云状形状

在大多数情况下,这些形状在图像上的相同位置,但大小和形状不同。例如,正方形出现在图像的角落,但大小不同。

我的问题是:有没有什么软件可以给我一个数值来表示图像之间的相似程度?

【问题讨论】:

  • SIFT or SURF 可能是一个开始,也可能是something like this
  • 你的图片可以吗?
  • @Roger 这适用于这些图像吗?它基本上是一些数据的可视化表示。这种形状不像你看到的那样持续
  • @articuno 这里有两张图片
  • 他们为什么会有这么大的噪音?我认为您应该从中值滤波器(medianBlur)开始,然后看看它是使图像变得更好还是更差。那我不太确定相似度是什么意思,减法,然后计算像素,对你有帮助吗?

标签: image opencv image-processing


【解决方案1】:

您可以计算这些操作并匹配它们:

  1. 中值过滤器/侵蚀/扩张

  2. 计算图像的梯度(Scharr、Sobel)以提取强模式

  3. 根据2的结果计算霍夫线变换或轮廓提取

4a。根据 3 的结果对 HU 矩执行马氏距离

4b。 (替代)计算直方图并将它们与 3 的结果进行匹配

迄今为止最好的库之一是 OpenCV (http://www.opencv.org),它有很好的文档记录 (docs.opencv.org)

【讨论】:

  • OP 发布的图像过于嘈杂,无法在不进行预处理的情况下使用任何这些技术。
  • 渐变是预处理的一部分。
  • Scharr/Sobel 不太可能对这些图像有效,我认为它至少需要事先进行中值滤波 - 可能值得在 OP 的图像上尝试其中一些并将结果发布在您的答案中。那会很有用。
  • @RogerRowland 中值过滤器改进了它(我已经更新了我的回复)。腐蚀/扩张也可以消除部分噪音
  • 好的,你推荐什么编程库/套件?我应该使用 openCV 吗?
猜你喜欢
  • 1970-01-01
  • 2015-05-18
  • 2015-02-28
  • 2015-04-06
  • 1970-01-01
  • 2014-04-21
  • 1970-01-01
  • 2016-09-09
  • 2020-11-19
相关资源
最近更新 更多