2张图片之间的百分比差异

时间:2016-11-07 12:16:58

标签: ios opencv image-processing uiimage

我有一个应用程序,我将2个UIImage实例作为输入,目标是提供一个百分比值作为输出,指示不同(或类似)。我可以使用UIKit或Core Graphics中的任何内容来执行此操作吗?例如,100%表示完美匹配。

这是我的输入数据:

[first image] 1

[second image] 2

我认为上述情况不到100%,因为它们明显不同。

也欢迎第三方建议。

1 个答案:

答案 0 :(得分:0)

实现这一目标的一种非常简单的方法是迭代两个图像并对每个像素进行comapre。利用像素的宽度和高度,您可以获得像素的差异作为百分比值。 这是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 );
    }
}
}