Geometry:LocalToGlobal
지역 ROI 좌표를 전역 ROI 좌표로 변환하는 예제.
Python example
# -*- coding: utf-8 -*-
from typing import Tuple, TypeAlias
_X1: TypeAlias = float
_Y1: TypeAlias = float
_X2: TypeAlias = float
_Y2: TypeAlias = float
Rect: TypeAlias = Tuple[_X1, _Y1, _X2, _Y2]
def local_to_global(
local_object_roi: Rect,
local_screen_roi: Rect,
global_screen_roi: Rect,
) -> Rect:
local_x1, local_y1, local_x2, local_y2 = local_object_roi
local_sx1, local_sy1, local_sx2, local_sy2 = local_screen_roi
global_sx1, global_sy1, global_sx2, global_sy2 = global_screen_roi
local_width = local_sx2 - local_sx1
local_height = local_sy2 - local_sy1
global_width = global_sx2 - global_sx1
global_height = global_sy2 - global_sy1
scale_x = global_width / local_width
scale_y = global_height / local_height
global_x1 = global_sx1 + (local_x1 - local_sx1) * scale_x
global_y1 = global_sy1 + (local_y1 - local_sy1) * scale_y
global_x2 = global_sx1 + (local_x2 - local_sx1) * scale_x
global_y2 = global_sy1 + (local_y2 - local_sy1) * scale_y
return global_x1, global_y1, global_x2, global_y2