gpt4 book ai didi

android - 将 Firebase MLKit 边界框坐标转换为屏幕 View 坐标

转载 作者:行者123 更新时间:2023-12-02 11:18:13 41 4
gpt4 key购买 nike

我正在使用 FirebaseVision对象检测从 CameraX 中检测事物相机预览。它正在检测找到的东西,但我正在尝试绘制在相机预览中检测到的项目的边界框。这样做,firebase返回的边界框不是图像本身,也不是预览 View ,它们出现在错误的位置。

我从 firebase 返回的图像大小是 1200x1600预览大小为 2425x1440
如何将从 firebase 返回的边界框转换为正确的屏幕坐标?

最佳答案

我最终做的是我拍摄了相机拍摄的图像大小,将宽度/高度除以 View 宽度/高度以获得比例大小

if(isPortraitMode()){
_scaleY = overlayView.height.toFloat() / imageWidth.toFloat()
_scaleX = overlayView.width.toFloat() / imageHeight.toFloat()
}else{
_scaleY = overlayView.height.toFloat() / imageHeight.toFloat()
_scaleX = overlayView.width.toFloat() / imageWidth.toFloat()
}

现在我有了比例尺,我可以通过火力探测器返回边界框,并通过比例尺平移 x 和 y 坐标
private fun translateX(x: Float): Float = x * _scaleX
private fun translateY(y: Float): Float = y * _scaleY

private fun translateRect(rect: Rect) = RectF(
translateX(rect.left.toFloat()),
translateY(rect.top.toFloat()),
translateX(rect.right.toFloat()),
translateY(rect.bottom.toFloat())
)

然后为您提供缩放的矩形坐标,然后您将其绘制在屏幕上

关于android - 将 Firebase MLKit 边界框坐标转换为屏幕 View 坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60425960/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com