Я закончил с тем, что взял размер изображения, полученного камерой, разделил ширину / высоту на ширину / высоту вида, чтобы получить размер масштаба
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())
)
, которые затем дают вам масштабированные прямоугольные координаты, которые вы затем рисуете на экране