Я использую VNImagePointForFaceLandmarkPoint() для преобразования каждой точки контура лица в координату изображения. но контур лица все еще неровный. Я пытался вручную перевести точки, но все равно не получилось.
Выходное изображение, то есть изображение со смещенным контуром лица (красные точки) следующей функции, прикреплено в конце сообщения. p>
Нажмите здесь, чтобы узнать, как рассчитываются точки для контура лица.
Код: Выделить всё
func faceRecognitionNormalisationPhase(faceObservation: VNFaceObservation, uiImage: UIImage) -> UIImage {
UIGraphicsBeginImageContext(uiImage.size)
let context = UIGraphicsGetCurrentContext()
uiImage.draw(at: .zero)
context?.setFillColor(UIColor.red.cgColor)
context?.setStrokeColor((UIColor.red.cgColor))
// Get the face contour points
guard let faceContour = faceObservation.landmarks?.faceContour else {
UIGraphicsEndImageContext()
return uiImage
}
print("facecontour: \(faceContour.normalizedPoints)")
let imageSize = uiImage.size
let boundingBox = faceObservation.boundingBox
for i in 0..
Подробнее здесь: [url]https://stackoverflow.com/questions/79080419/extracting-face-outline-from-a-facial-bounding-box-with-the-ios-vision-framework[/url]