相关疑难解决方法(0)

VNFaceObservation BoundingBox 在纵向模式下不缩放

作为参考,这源于Vision API中的一个问题。我正在努力使用Vision通过 a 来检测图像中的面部VNDetectFaceRectanglesRequest,该方法在确定图像中正确的面部数量并boundingBox为每张面部提供 方面成功发挥作用。

我的麻烦是,由于我UIImageView(持有有UIImage问题的)正在使用.scaleAspectFit内容模式,我在纵向模式下正确绘制边界框(在横向模式下效果很好)方面遇到了巨大的困难。

这是我的代码;

func detectFaces(image: UIImage) {

    let detectFaceRequest = VNDetectFaceRectanglesRequest { (request, error) in
        if let results = request.results as? [VNFaceObservation] {
            for faceObservation in results {
                let boundingRect = faceObservation.boundingBox

                let transform = CGAffineTransform(scaleX: 1, y: -1).translatedBy(x: 0, y: -self.mainImageView.frame.size.height)
                let translate = CGAffineTransform.identity.scaledBy(x: self.mainImageView.frame.size.width, y: self.mainImageView.frame.size.height)
                let facebounds = boundingRect.applying(translate).applying(transform)

                let mask = CAShapeLayer()
                var maskLayer = [CAShapeLayer]()
                mask.frame …
Run Code Online (Sandbox Code Playgroud)

core-graphics ios swift apple-vision

0
推荐指数
1
解决办法
2997
查看次数

标签 统计

apple-vision ×1

core-graphics ×1

ios ×1

swift ×1