弃用 VNFaceLandmarkRegion2D 的点

问题描述 投票:0回答:2

我已经安装了 Xcode beta 5。现在我有一个与 Vision 框架和

VNFaceLandmarkRegion2D
对象相关的警告,尤其是:

“point(at:)”在 iOS 11.0 中已弃用

关于文档

point(at:)
points
在 iOS 11 中被引入和弃用。无论如何,现在我可以获得面部标志点?

ios11 face-recognition apple-vision
2个回答
7
投票

在上次 Xcode 更新中

VNFaceLandmarkRegion2D
已更改。现在不需要将 x 和 y 转换为
CGPoint
对象。
VNFaceLandmarkRegion2D
normalizedPoints
,一个由
CGPoint
组成的数组。


2
投票

您可以尝试点的替代方案(at:),如下所示:

if let landmark = face.landmarks?.leftEye {
        for i in 0...landmark.pointCount - 1 { // last point is 0,0
            let point = landmark.normalizedPoints[i]
            if i == 0 {
                context?.move(to: CGPoint(x: x + CGFloat(point.x) * w, y: y + CGFloat(point.y) * h))
            } else {
                context?.addLine(to: CGPoint(x: x + CGFloat(point.x) * w, y: y + CGFloat(point.y) * h))
            }
        }
    }
© www.soinside.com 2019 - 2024. All rights reserved.