代码之家  ›  专栏  ›  技术社区  ›  OliverDamon

如何将绘图中的矩形与roboflow和jetpack组合对齐?

  •  1
  • OliverDamon  · 技术社区  · 1 周前

    我正在尝试实现一个检测漫画气泡语音的功能。

    我正在拍摄我的设备的屏幕截图,并从API接收响应,一旦它返回,我就用画布绘制一些矩形。但我似乎无法以任何方式对齐这些矩形。

    我的代码:

    @Composable
    internal fun ScreenShotDrawSpeech(
        bubbleDomain: BubbleDomain,
        modifier: Modifier = Modifier,
    ) {
        Canvas(
            modifier = modifier
                .fillMaxSize()
                .background(background_overlay),
            onDraw = {
                bubbleDomain.predictions.forEach { prediction ->
                    val left = prediction.x
                    val top = prediction.y
    
                    drawRect(
                        color = Color.Red,
                        topLeft = Offset(left.toFloat(), top.toFloat()),
                        size = Size(prediction.width.toFloat(), prediction.height.toFloat()),
                        style = Stroke(width = 2f),
                    )
                }
            },
        )
    }
    

    后果

    Screenshot_20240506_091529

    1 回复  |  直到 1 周前
        1
  •  1
  •   Leviathan    1 周前

    预测的坐标似乎指定了气泡的中心。

    使用此来确定 left top 而不是矩形的:

    val left = prediction.x - prediction.width / 2
    val top = prediction.y - prediction.height / 2