我正在使用下面的代码使用 Apple
VNRectangleObservation
在图像周围绘制一个矩形。这是在检测矩形,但是当我调整 AVCaptureVideoPreviewLayer
视图大小时,矩形没有显示在正确的位置。请看下面的截图。
func drawBoundingBox(rect : VNRectangleObservation) {
let transform = CGAffineTransform(scaleX: 1, y: -1).translatedBy(x: 0, y: -self.previewLayer.frame.height)
let scale = CGAffineTransform.identity.scaledBy(x: self.previewLayer.frame.width, y: self.previewLayer.frame.height)
let bounds = rect.boundingBox.applying(scale).applying(transform)
createLayer(in: bounds)
}
private func createLayer(in rect: CGRect) {
maskLayer = CAShapeLayer()
maskLayer.frame = rect
maskLayer.cornerRadius = 10
maskLayer.opacity = 0.75
maskLayer.borderColor = UIColor.red.cgColor
maskLayer.borderWidth = 2.0
previewLayer.insertSublayer(maskLayer, at: 1)
}