假设您有两张图片:
和
除了一些不同颜色的像素外,这些图片几乎完全相同。 在Objective-C中是否有一种原生方式来识别两张图片是否几乎相同?如果没有,还有另一种方法吗?
答案 0 :(得分:2)
我建议识别两个图像是否几乎完全相同是在两个图像之间进行逐像素比较并跟踪相似度百分比(或差异,因为您要确定两个图像是否“几乎相同”,以及与确定相似性相比,用于确定差异的处理/操作量将更少。
此外,这都是主观的。你指的是像素级或人眼级别的“几乎相同”吗?希望这有用:)
答案 1 :(得分:2)
在计算机视觉和图像处理中,几乎相同的定义可能因应用程序而有很大差异,因此计算相似性/同一性的方法也会因手头的问题而有所不同。
在您的情况下,图像似乎具有相同的分辨率,您只对不同的像素数感兴趣。
我建议您迭代两个图像并对像素值进行异或(如果它们相同,结果将为零)。
答案 2 :(得分:1)
不,在Objective-C中肯定没有本地方法可以做到这一点 - 我的意思是没有明确的方法在例如NSImage
。但你可以肯定地做到这一点,比较像素到像素等。
此外,没有明确的“相同”定义,因为两个图像对于人眼看起来相同,但可能与另一个观点完全不同。
关于您在编辑中添加的问题:
例如OpenCV,它可以做很多你可以使用的东西。看看它OpenCV
...此外,StackOverflow还有另一个很好的讨论:Image Comparison - fast algorithm