【发布时间】:2021-05-05 22:03:24
【问题描述】:
我正在尝试解码出现在感兴趣区域上的条形码,即屏幕宽度的 80% 和屏幕高度的 20%,并以两个方向为中心(蓝色矩形)。
相机像素缓冲区向右旋转。
这就是苹果对这个方向的评价:
原点 (0,0) 的 (x,y) 像素坐标表示 分别是顶行和最右列。像素 (x,y) 位置 从上到下,从右到左增加。如果图像编码为 这个方向,然后由不知道方向的软件显示 元数据,图像似乎逆时针旋转了 90°。 (那 是,要以预期的方向呈现图像,您必须旋转 顺时针90°。)
所以,当我定义我的VNDetectBarcodesRequest 感兴趣的区域时,我会这样做:
lazy var barcodeRequest: VNDetectBarcodesRequest = {
let barcodeRequest = VNDetectBarcodesRequest {[weak self] request, error in
guard error == nil else {
print ("ERROR")
return
}
self?.classification(request)
}
barcodeRequest.regionOfInterest = CGRect(x: 0.1,
y: 0.4,
width: 0.9,
height: 0.6)
如果条形码位于蓝色区域内,并且在其上方的任何位置,包括蓝色区域顶部区域的任何位置,它都会检测到。如果条形码在蓝色区域下方,则不会检测到任何内容。
【问题讨论】: