Apple provides a sample
project to show how to use feature print to compare images.
The code below I modified shows how to compare two apple images to a pear image. The smaller the distance the similar the images are.
Code Block import UIKit |
import Vision |
|
func featureprintObservationForImage(atURL url: URL) -> VNFeaturePrintObservation? { |
let requestHandler = VNImageRequestHandler(url: url, options: [:]) |
let request = VNGenerateImageFeaturePrintRequest() |
do { |
try requestHandler.perform([request]) |
return request.results?.first as? VNFeaturePrintObservation |
} catch { |
print("Vision error: \(error)") |
return nil |
} |
} |
|
|
|
|
let apple1 = featureprintObservationForImage(atURL: Bundle.main.url(forResource:"apple1", withExtension: "jpg")!) |
|
let apple2 = featureprintObservationForImage(atURL: Bundle.main.url(forResource:"apple2", withExtension: "jpg")!) |
|
let pear = featureprintObservationForImage(atURL: Bundle.main.url(forResource:"pear", withExtension: "jpg")!) |
|
var distance = Float(0) |
try apple1!.computeDistance(&distance, to: apple2!) |
|
var distance2 = Float(0) |
try apple1!.computeDistance(&distance2, to: pear!) |
|