2016-11-07 7 views
0

У меня есть приложение, в котором я беру 2 экземпляра UIImage в качестве входных данных с целью предоставления в качестве вывода процентного значения, указывающего, насколько он отличается (или подобным). Есть ли что-нибудь в UIKit или Core Graphics, которые я могу использовать для этого? Например, 100% указывают на идеальное совпадение.Разница в процентах между 2 изображениями

Вот мой ввод данных:

[first image] 1

[second image] 2

я ожидал бы менее чем на 100% за выше, так как они явно отличаются.

Также открыт для сторонних предложений.

+0

Что вы хотите, чтобы проверить simularity? Пиксели, содержание изображения (оба изображения содержат рыбу), ... – shallowThought

+0

Я хотел бы проверить наличие подобия пикселей. В основном, я пытаюсь сравнить ссылочный образ пустого ящика с другим изображением того же самого поля подписи, но там, где подпись может присутствовать или отсутствовать. Если нет, то изображения одинаковы, и я заключаю, что подпись отсутствует. В противном случае, если результат меньше 100%, я могу заключить, что кто-то может подписаться на этот регион. –

+0

Насколько я понимаю, вы хотите знать, равны ли изображения или нет. В этом случае вы можете использовать оператор '=='. 'if image1 == image2 {// no signature} else {// signatur}' – shallowThought

ответ

0

Очень простой способ добиться этого - перебрать оба изображения и сопоставить каждый пиксель. С шириной и высотой пикселя вы сможете получить разницу в пикселях в виде процентного значения. Вот пример реализации в swift, который показывает, как перебирать пиксели изображения. Он также показывает, как получить R, G и B значения для каждого пикселя, который (так я thnik) должен быть базой для сравнения:

import Foundation 
import QuartzCore 
import AppKit 

let imagePath : NSURL? = NSURL(fileURLWithPath: "/Users/fabi/Desktop/Test.JPG" ); 

if imagePath != nil { 

var image = CIImage(contentsOfURL: imagePath) 

var imageProperties : NSDictionary = image.properties() 


var imageWidth : NSNumber? = imageProperties.valueForKey("PixelHeight") as? NSNumber 
var imageHeight : NSNumber? = imageProperties.valueForKey("PixelWidth") as? NSNumber 

println(imageWidth?.integerValue) 
println(imageHeight?.integerValue) 

var bitmapImage : NSBitmapImageRep = NSBitmapImageRep(CIImage: image) 

for var w = 0; w <= imageHeight?.integerValue; ++w { 
    for var h = 0; h <= imageWidth?.integerValue; ++h { 
     var pixelColor : NSColor? = bitmapImage.colorAtX(w, y: h) 
     println("R: " + pixelColor?.redComponent);   
     println("G: " + pixelColor?.greenComponent); 
     println("B: " + pixelColor?.blueComponent); 
    } 
} 
} 
+0

К сожалению, мне нужно решить для iOS и не использовать AppKit. –

 Смежные вопросы

  • Нет связанных вопросов^_^