问题描述
在使用谷歌视觉api时,我想减少减少条形码的跟踪窗口。有一些答案here,但感觉有些过时了。
我正在使用Google的示例:https://github.com/googlesamples/mlkit/tree/master/android/vision-quickstart
当前,我尝试找出条形码是否位于BarcodeScannerProcessor onSuccess
回调中的叠加框内:
override fun onSuccess(barcodes: List<Barcode>,graphicOverlay: GraphicOverlay) {
if(barcodes.isEmpty())
return;
for(barcode in barcodes) {
val center = Point(graphicOverlay.imageWidth / 2,graphicOverlay.imageHeight / 2)
val rectWidth = graphicOverlay.imageWidth * Settings.OverlayWidthFactor
val rectHeight = graphicOverlay.imageHeight * Settings.OverlayHeightFactor
val left = center.x - rectWidth / 2
val top = center.y - rectHeight / 2
val right = center.x + rectWidth / 2
val bottom = center.y + rectHeight / 2
val rect = Rect(left.toInt(),top.toInt(),right.toInt(),bottom.toInt())
val contains = rect.contains(barcode.boundingBox!!)
val color = if(contains) Color.GREEN else Color.RED
graphicOverlay.add(BarcodeGraphic(graphicOverlay,barcode,"left: ${barcode.boundingBox!!.left}",color))
}
}
Y方向效果很好,但是barcode.boundingBox
的X值例如barcode.boundingBox.left
似乎有偏移。它是基于GraphicOverlay中计算的结果吗?
我期望下面的值接近于0,但此处的偏移量约为90:
或者按照方框裁剪图像更有效吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)