ios - 使用boundingBox绘制矩形
问题描述
通过 VNRecognizeTextRequest,我从特定的boundingBox 获得以下坐标:(0.21611927830895714、0.4163079471243136、0.017705895179925962、0.1368724813140948)。
我的问题是如何使用这些 boundingBox 坐标在 UIImageView 顶部绘制一个矩形?
解决方案
要从标准化转换为图像坐标,您可以使用以下命令
let rectInImage = VNImageRectForNormalizedRect(boundingBox, image.size.width, image.size.height)
从那里您可以使用 UIBezierPath 来绘制路径:
func drawRect(_ rect: CGRect, layer: CALayer) {
let center = CGPoint(x: rect.midX, y: rect.midY)
let path: UIBezierPath = UIBezierPath(rect: rect)
let rectShape: CAShapeLayer = CAShapeLayer()
rectShape.path = path.cgPath
rectShape.position = center
rectShape.bounds = rect
rectShape.strokeColor = UIColor.green.cgColor
rectShape.fillColor = UIColor.clear.cgColor
rectShape.lineWidth = 1.0
layer.addSublayer(rectShape)
}
推荐阅读
- webpack - HMR 不适用于 vue 和 asp.net 核心
- javascript - setState 仅在 Array.map 函数中执行一次
- php - 选择器上的 PHP 逻辑问题
- azure-sql-database - C# 中的 Azure sql server 故障转移侦听器点
- php - 如何更改 Carbon 的 diffForHumans 格式
- office365 - ErrorItemNotFound - 在商店中找不到指定的对象
- assembly - 在汇编语言 irvine 库中传递参数
- c# - 从对象中获取特定属性
- spring - 为 CachingConnectionFactory 设置 SSL 连接
- java - 客户端应用程序如何找到服务器(Java)打开的动态选择的 TCP 端口?