2012-12-29 93 views
4

可能重複:
How does one compare one image to another to see if they are similar by a certain percentage, on the iPhone?比較兩個圖像是否相同或不(IOS)

我發現這個代碼,我試圖更好地理解它:

UIImage *img1 = // Some photo; 
UIImage *img2 = // Some photo; 

NSData *imgdata1 = UIImagePNGRepresentation(img1); 

NSData *imgdata2 = UIImagePNGRepresentation(img2); 

if ([imgdata1 isEqualToData:imgdata2]) { 
    NSLog(@"Same Image"); 
} 

這會確認圖像1與圖像2完全相同嗎?這種方法是否是最佳實踐,還是有更好的方法?

+5

「圖1設計..開始寫你的第一個應用程序」< - ?? – 2012-12-29 03:01:25

+0

你應該真的解決你的問題。如果您是從書中引用,請清楚說明,並且不要對「圖1」等進行無意義引用。 –

+0

當您使用[UIImage imageWithContentsOfFile:YOUR_IMAGE_FILE_PATH]而不是[ UIImage imageNamed:@「YOUR_IMAGE_NAME」>],因爲如果你已經使用文件路徑設置圖像,並試圖比較它不適用,那麼這種比較是有用的。 – Sandy

回答

5

你的代碼是由位比較兩個圖像位,所以是的,它是一個100%-comparison。

如果你需要更快的東西,你可以從每個UIImage生成一個散列並且比較兩個散列,如here所解釋的。

+0

當您使用[UIImage imageWithContentsOfFile:YOUR_IMAGE_FILE_PATH]而不是[UIImage imageNamed:@「YOUR_IMAGE_NAME」>]設置圖像時,這種比較非常有用,因爲如果您使用文件路徑設置圖像並試圖比較它的效果如此那個時候這種比較是有用的。 – Sandy