【问题标题】:Image comparison of HD and SD images using Java使用 Java 对高清和标清图像进行图像比较
【发布时间】:2014-04-12 19:03:13
【问题描述】:

我有一个数据库,其中包含同一组图像的标清和高清版本。问题是他们的名字彼此不同。

例如,SD 中的花图像名称为 greatflower.png,而同一朵花的高清版本名称为 bestflower.png

挑战在于找到它们之间的相似之处。我尝试将图像的大小调整为相同的宽度和高度,然后逐个像素地比较它们,但结果并不准确。我只想在算法完成一对图像之间的比较后得到是或否的答案。

我的问题是哪个 java 库或算法将在图像的高清和标清版本之间执行完美的图像相似性分析?

谢谢大家的期待:)

【问题讨论】:

  • 如果你有很多候选对象,在 Java 中检查位图中的每个像素可能会非常慢。检查纵横比是否相似。然后,我将从两个图像中提取 100 个点(从每个图像上等距的 10x10 网格)并比较它们。如果 RGB 值均在 10% 以内,则说两点“相同”。如果 90% 的点是“相同的”,则图像被认为是相同的。这远非万无一失,但计算上每个图像只需要 100 次查找。它可能会正常工作。将 10x10 更改为其他一些网格大小,以权衡性能与灵敏度。
  • 谢谢一百万先生。您的建议对我来说确实有效:)

标签: image algorithm image-processing edge-detection


【解决方案1】:

作为第一步,我会创建所有图像的颜色直方图(以减少颜色深度)。 比你可以使用直方图相似度来找到相同图像的候选。

在第二步中,我会将两个图像的大小调整为相同(非常小)的大小,然后逐个像素地进行比较,并且与颜色相关的容差很小。如果超过 90% 的像素非常相似,我会将图像归类为相同。

【讨论】:

    猜你喜欢
    • 2015-02-01
    • 2013-11-30
    • 2015-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-02
    • 2013-07-26
    • 2011-03-29
    相关资源
    最近更新 更多