我正在使用视觉框架检测面部界标,并且工作正常,但是我需要转换鼻子,眼睛等面部界标,为此,我需要获取鼻子,眼睛的位置在帧坐标中,因为使用VNFaceLandmarkRegion2D点绘制面部界标。
[请让我知道如何将VNFaceLandmarkRegion2D点转换为帧坐标。因此,我可以查看该位置以进行变换,或建议其他任何方法来变换人脸地标。
let chosenPicture = CIImage(data: (self.selectedimage.image?.tiffRepresentation)!)
let selectedFace = faceDetector?.features(in: chosenPicture!, options: [CIDetectorSmile:true])
for person in selectedFace as! [CIFaceFeature] {
let p1LeftEye = person.leftEyePosition
let p1RightEye = person.rightEyePosition
let p1Mouth = person.mouthPosition
func getTransformedPoints(
landmark:VNFaceLandmarkRegion2D,
faceRect:CGRect,
imageSize:CGSize) -> [CGPoint]{
// last point is 0.0
return landmark.normalizedPoints.map({ (np) -> CGPoint in
return CGPoint(
x: faceRect.origin.x + np.x * faceRect.size.width,
y: imageSize.height - (np.y * faceRect.size.height + faceRect.origin.y))
})
}