如何比较图像数组以找到ios中的重复图像

时间:2015-12-22 05:38:53

标签: ios arrays image duplicates

我正在开发一款名为IOS的重复图像查找器的应用程序。 我的问题是如何比较图像数组以找到重复。 假设我有图像数组,我想从这个数组中找到重复的图像。 我怎么能找到它?有什么建议。 我使用的方法是将图像转换为数据,并将图像的数据相互比较,在模拟器中完美运行但在设备中无法正常工作。

for (int i=0; i<arrImageData1.count; i++)
    {
        for (int j=i+1; j<arrImageData1.count; j++)
        {
            if ([[arrImageData1 objectAtIndex:i] length]==[[arrImageData2 objectAtIndex:j]length])
            {
                NSNumber *iValue = [NSNumber numberWithInt:i];
                NSNumber *jValue = [NSNumber numberWithInt:j];
                [arr addObject:iValue];
                [arr addObject:jValue];
            }
        }
    }
    NSLog(@"%@",arr);
    NSLog(@"%lu",(unsigned long)arr.count);
    for (int k=0; k<arr.count; k++)
    {
        [arrDuplicateImages addObject:[arrImage objectAtIndex:[[arr objectAtIndex:k] integerValue]]];
    }
}

1 个答案:

答案 0 :(得分:2)

我喜欢在比较图像数据的项目中。如果你想尝试它,它工作正常:

UIImage *image = [UIImage imageNamed:@"image1.jpeg"];
NSData *imageData= UIImageJPEGRepresentation(image,0.0);
UIImage *imageDuplicate = [UIImage imageNamed:@"image1 copy.jpeg"];
NSData *imageDuplicateData= UIImageJPEGRepresentation(imageDuplicate,0.0);

现在你需要从你的imageData获取字符串:

NSString *str1 = [NSString stringWithFormat:@"%@",imageData];
NSString *str2 = [NSString stringWithFormat:@"%@",imageDuplicateData];

if ([str1 isEqualToString:str2]){
    NSLog(@"same images");
} else {
    NSLog(@"images are different");

}