iOS如何快速从照片库中查找重复图像?

时间:2017-05-25 07:09:51

标签: ios objective-c duplicates compare photos

我想快速找到照片库中的重复照片我正在使用以下代码来检索重复的图像,但是它的时间是:

UIImage *img1 = [imgArray objectAtIndex:i];
UIImage *img2 = [imgArray objectAtIndex:j];

NSData *data1 = UIImageJPEGRepresentation(img1, 1.0);
NSLog(@"%@",data1);
NSData *data2 = UIImageJPEGRepresentation(img2, 1.0);
NSLog(@"%@",data2);


            if ([data1 isEqualToData:data2])
            {
                    [duparray addObject:[imageArray objectAtIndex:i]];
                    [duparray addObject:[imageArray objectAtIndex:j]];
            }
            else
            {
                NSLog(@"no");
            }

获取数据并比较1000张照片浪费时间 任何人都可以帮助我,帮助将不胜感激..谢谢

2 个答案:

答案 0 :(得分:0)

用于比较两个图像的代码将比较两个图像逐位的相等性。如果你拍摄类似的照片,比较将导致不平等。如果您希望删除具有相同数据组成的重复图片,则当前代码将正常工作。如果要包含类似的图片以通过相等性测试,则需要使用不同的逻辑进行比较。顺便说一句,不要在主线程中运行此代码。如果它是一个长期运行的任务,则以异步运行它。

使用UIImageJPEGRepresentation时,请尝试压缩(0.5 or lower)图片,而不是将质量设置为1.0,这可能会带来一些改善。

要比较图片,并检查它们是否与某个百分比相似,您可以从SO中查看此答案:

Compare one image to another to see if they are similar by a certain percentage

答案 1 :(得分:0)

讨论了类似的主题,并提出了很好的建议。阅读可能是有益的。

Image comparison - fast algorithm