ios - 新的 Apple Vision API VNTranslationalImageRegistrationRequest

标签 ios swift ios11 apple-vision

我正在尝试玩 Image Alignment Analysis新 Vision API 的一部分,但我正在为 VNTranslationalImageRegistrationRequest 的初始化而苦苦挣扎。我的代码如下:

import UIKit
import Vision

class ImageTranslation {

    var sourceImage: UIImage!

    lazy var imageTranslationRequest: VNTranslationalImageRegistrationRequest = {
//This line fails        let translationRequest = VNTranslationalImageRegistrationRequest(targetedCGImage: sourceImage.cgImage, completionHandler: self.handleImageTranslationRequest)

        return translationRequest
    }()

    func handleImageTranslationRequest(request: VNRequest, error: Error?) {

        guard let observations = request.results as? [VNImageTranslationAlignmentObservation]
            else { print("unexpected result type from VNDetectRectanglesRequest")
                return
        }
        guard observations.first != nil else {
            return
        }
        DispatchQueue.main.async {
            observations.forEach { observation in
                let transform = observation.alignmentTransform
                print(transform)
            }

        }
    }
}

但在上面标记的行中,我不断收到以下错误,并且不确定如何修复它。 实例成员“sourceImage”不能用于类型“ImageTranslation”

谁能指出我正确的方向?谢谢

最佳答案

如何使用 VNTranslationalImageRegistrationRequest 的示例在两个图像上计算两个图像之间的平移:

import UIKit
import Vision

class ImageTranslation {

    func translateImages(for referenceImage: UIImage,
                         floatingImage: UIImage,
                         completion: @escaping (_ alignmentTransform : CGAffineTransform?) -> Void) {
        let translationRequest = VNTranslationalImageRegistrationRequest(targetedCGImage: floatingImage.cgImage!) { (request: VNRequest, error: Error?) in
            completion((request.results?.first as? VNImageTranslationAlignmentObservation)?.alignmentTransform)
        }
        let vnImage = VNSequenceRequestHandler()
        try? vnImage.perform([translationRequest], on: referenceImage.cgImage!)
    }

}

关于ios - 新的 Apple Vision API VNTranslationalImageRegistrationRequest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44853490/

相关文章:

aac 流的 HTML5 音频播放在 iOS 11 中无法正常工作,类型为 ="audio/mp4"

iOS 11 停止滑动 UITableViewCell 的默认行为

swift - 如何将json转成String数组

ios - 位置为 :fixed in iOS 11 的闪烁/消失 header

ios - 像 "2016-06-06"这样的字符串到 Swift 3 中的 Date 对象

ruby-on-rails - 我应该使用 iOS 框架来创建我的 Web 应用程序的 native 版本吗?

ios - 使用 Alamofire 的 Http 请求

swift - 如何查询 iTunes API 以查找特定类型的电影

ios - 我无法使用物理键盘在uitextfield中键入

ios - viewDidLoad 中的标签没有更新?