Iphone 使用Objective-C,有没有办法比较两个图像并得到返回的%差值?

Iphone 使用Objective-C,有没有办法比较两个图像并得到返回的%差值?,iphone,objective-c,cocoa-touch,ipad,Iphone,Objective C,Cocoa Touch,Ipad,使用Objective-C,有没有办法比较两个图像并得到返回的%差值 例如,一个图像将包含和X。另一个图像中会有一个X。第三个会有一个H。都是相同的字体/颜色 很明显,X和X的差值将非常小。X和H之间的百分比将非常大 我如何编写一个可以返回%差异的函数?API没有这样的可用函数 如果你想这样做,你必须自己滚动或使用外部库 我建议找一个外部库,因为这不是一个简单的任务 例如,您有两个具有相同字体和颜色的x的图像。图片大小相同吗?如果不是,它们是否被视为100%不同?如果您调整图像大小以匹配,则差异

使用Objective-C,有没有办法比较两个图像并得到返回的%差值

例如,一个图像将包含和X。另一个图像中会有一个X。第三个会有一个H。都是相同的字体/颜色

很明显,X和X的差值将非常小。X和H之间的百分比将非常大


我如何编写一个可以返回%差异的函数?

API没有这样的可用函数

如果你想这样做,你必须自己滚动或使用外部库

我建议找一个外部库,因为这不是一个简单的任务

例如,您有两个具有相同字体和颜色的x的图像。图片大小相同吗?如果不是,它们是否被视为100%不同?如果您调整图像大小以匹配,则差异将比其他方式高得多

或者,假设您有两个x的图像,它们的字体和图像大小相同,但颜色不同。你认为这个百分比的权重是多少?完全不同还是部分不同?如果你说颜色只是部分不同,那么你怎么能得到100%的差异呢


无论如何,最基本的方法是逐像素比较颜色数据(HSV可能是一个很好的选择)。称量组件的重量并计算差异。

您必须非常仔细地考虑您关心的差异类型

对大小相同的图像进行逐像素比较不会太难。为每个像素指定一个错误值,然后以某种方式组合差异以生成单个图形

如果一幅或另一幅图像开始时大小不同,但纵横比相同,则缩放它们也是相当简单的

然而,边缘情况很快就会变得棘手。例如,如果两个X字符被替换,那么一个在图像的左侧,另一个在右侧,会发生什么情况?这些是否应该被检测为“相似”

同样,当比较H和X时,你想要一个高分——那么你会如何将X与蝴蝶的彩色图片进行排序呢?可能更高,但要高多少

某种学习神经网络可能会帮助您,您可以计算出为某些样本比较分配的值,然后训练网络为样本图像返回这些值。但这对代码来说并不是微不足道的


如果您的比较要求更简单-例如,您正在进行某种OCR等效,并且您知道您的输入可能是单色字符,还有其他一些技巧你可以使用,但是合适的技巧取决于你想要达到的目标。

你可以在iphone中使用library。这是关于图像比较算法的一个很好的讨论。此链接可能会有所帮助。

如果源图像大小和目标图像大小不同,逐像素比较将没有帮助。在这种情况下,缩放比例应正确。还有其他解决方案吗

我认为这更多的是计算机视觉问题,而不是iOSproblem@Ethan艾伦:你能给我们一些示例代码吗?