2017-08-14 39 views

回答

1

蘋果的願景框架流總是相同的:請求 - >處理程序 - >觀察

例子:

// referenceAsset & asset2 can be: 
//  CGImage - CIImage - URL - Data - CVPixelBuffer 
// Check initializers for more info 
let request = VNHomographicImageRegistrationRequest(targetedCGImage: asset2, options: [:]) 

let handler = VNSequenceRequestHandler() 
try! handler.perform([request], on: referenceAsset) 
if let results = request.results as? [VNImageHomographicAlignmentObservation] { 
    print("Perspective warp found: \(results.count)") 
    results.forEach { observation in 
     // A matrix with 3 rows and 3 columns. 
     print(observation.warpTransform) 
    } 
} 
+0

YES,肯定就是。我將按照以下補充Objective-C版本 –

0

```

- (matrix_float3x3)predictWithVisionFromImage:(UIImage的) imageTarget toReferenceImage:(UIImage的)imageRefer {

UIImage *scaledImageTarget = [imageTarget scaleToSize:CGSizeMake(224, 224)]; 
CVPixelBufferRef bufferTarget = [imageTarget pixelBufferFromCGImage:scaledImageTarget]; 
UIImage *scaledImageRefer = [imageRefer scaleToSize:CGSizeMake(224, 224)]; 
CVPixelBufferRef bufferRefer = [imageRefer pixelBufferFromCGImage:scaledImageRefer]; 


VNHomographicImageRegistrationRequest* request = [[VNHomographicImageRegistrationRequest alloc]initWithTargetedCVPixelBuffer:bufferTarget completionHandler:nil]; 

VNHomographicImageRegistrationRequest* imageRequest = (VNHomographicImageRegistrationRequest*)request; 
VNImageRequestHandler* handler = [[VNImageRequestHandler alloc]initWithCVPixelBuffer:bufferRefer options:@{}]; 
[handler performRequests:@[imageRequest] error:nil]; 
NSArray* resultsArr = imageRequest.results; 
VNImageHomographicAlignmentObservation* firstObservation = [resultsArr firstObject]; 
return firstObservation.warpTransform; 

}

```

相關問題