【问题标题】:how to compare similarity between two color images?如何比较两张彩色图像之间的相似度?
【发布时间】:2015-09-13 21:58:57
【问题描述】:

我想比较这两个图像的接近程度(相似区域的红色),但我不能逐个像素地进行比较,因为它们的颜色位置并不完全相同。有人知道这里有什么好的方法吗?

谢谢,

【问题讨论】:

  • 可能正在使用OpenCV库看这个教程pyimagesearch.com/2014/09/15/python-compare-two-images
  • 为什么位置不一样?在比较之前进行下采样会很好吗?在比较之前注册图像是否允许逐像素比较?请详细说明您的问题。
  • 我从那里开始,但这两个指标都是基于逐像素比较的。对我来说,我需要对相似但不完全相同的位置有所容忍。
  • 并使用直方图比较?
  • 所以我从两个提供商的地图同一区域的两个屏幕截图中获得了两张图像,底层地图完全相同,但同一条道路的颜色可能不完全相同。不确定这是否有助于在这里定义问题。

标签: python image machine-learning computer-vision


【解决方案1】:

我个人建议使用indico 图像特征API。基本上,您传入您正在处理的图像并返回一组代表该图像中更高级别形态结构的特征。

如果您在这些特征之上计算余弦相似度,您将获得更直观的相似度指标。

有一个很棒的 github 链接展示了如何在前端打上这一点来做到这一点,如果这就是您要在这里寻找的东西:https://github.com/IndicoDataSolutions/imagesimilarity

代码本身非常简单:

from indicoio import image_features
from scipy import spatial

features_1 = image_features(<path_to_image>, <api_key>)
features_2 = image_features(<path_to_image>, <api_key>)
similarity = 1 - spatial.distance.cosine(dataSetI, dataSetII)  # This is what you want

完整的文档是here

全面披露:我是 indico 的首席执行官,所以我有偏见,但我确实认为这对这种情况会有所帮助。

【讨论】:

  • 我有兴趣尝试一下,但是当我使用 imread 创建的图像数组运行 image_features 时,它说 API 密钥无效。我以为 API 密钥只是可选的,你知道这里有什么问题吗?
  • @KexinXu 抱歉,API 密钥不是可选的。基本上它允许我们在问题出现时更有效地调试问题,因此我们已经开始要求它们。
猜你喜欢
  • 2011-05-09
  • 1970-01-01
  • 1970-01-01
  • 2019-08-08
  • 2010-09-06
  • 2014-04-21
  • 2011-09-30
  • 2011-08-09
  • 1970-01-01
相关资源
最近更新 更多