【问题标题】:Is there a way to identify if two images are nearly identical in Objective-C?有没有办法在 Objective-C 中识别两个图像是否几乎相同?
【发布时间】:2013-05-04 19:04:02
【问题描述】:

假设你有两张图片:

和

除了几个不同颜色的像素外,这些图片几乎相同。 Objective-C 中是否有本地方法来识别两张图片是否几乎相同?如果没有,还有其他方法吗?

【问题讨论】:

    标签: ios objective-c image image-processing


    【解决方案1】:

    不,在 Objective-C 中肯定没有本地方法可以做到这一点——我的意思是没有明确的方法,例如NSImage。但你肯定可以通过比较像素等方式来做到这一点。

    对于“相同”也没有明确的定义,因为在人眼看来两张图像可能相同,但从另一个角度来看可能完全不同。

    关于您在编辑中添加的问题:

    例如 OpenCV,它可以做很多你可以使用的东西。看看吧OpenCV

    ...在 StackOverflow 上还有另一个很好的讨论:Image Comparison - fast algorithm

    【讨论】:

      【解决方案2】:

      在计算机视觉和图像处理中,几乎相同的定义因应用程序而异,因此计算相似度/同一性的方法也会因手头的问题而异。 p>

      在您的情况下,图像似乎具有相同的分辨率,您只对不同的像素数感兴趣。

      我建议您遍历这两个图像并对像素值进行异或运算(如果它们相同,则结果为零)。

      【讨论】:

      • 我喜欢你最后的建议。我想我只是对这些值进行异或运算,看看是否有一定百分比的像素是相同的(即 95% 是相同的,因此图像非常相似)。非常感谢,会接受的。
      • 我对 Cocoa 的了解还不够,但也许有一种有效的方法可以通过在特殊的合成模式下将它们相互叠加绘制来对两个图像进行 XOR。当然,所有优化都必须衡量;-)
      【解决方案3】:

      我对识别两个图像是否几乎相同的建议是在两个图像之间进行逐个像素的比较,并以百分比(或差异,因为您想确定两个图像是否“几乎相同”和与确定相似性相比,用于确定差异的处理/操作的数量会更少)。

      此外,这都是主观的。您是指像素级别或人眼级别的“几乎相同”吗?希望这会有所帮助:)

      【讨论】:

      • 这很容易失败。如果与第一张相比,第二张图片仅向上放置一个像素会怎样?
      • 这是假设图像是从确切位置拍摄的。否则,将需要另一种方法
      猜你喜欢
      • 2021-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多