0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

異なる座標系への座標変換

Last updated at Posted at 2022-10-12

例えば、画像内の任意の場所にあるboxの座標があるとします。
boxは画像の幅と高さを1として正規化されています。
さらに、そのbox内の任意の場所にある、mini_boxの座標があるとします。
mini_boxは、最初のboxの幅と高さを1として正規化されています。

pexels-lina-kivaka-1741205.jpg

小さい座標系から、大きい座標系への変換

mini_boxは、画像の座標系では、どのような座標になるのでしょうか?
ここでは、それぞれのboxのorigin_x,origin_y,width,heightがわかっているとします。

box = [x,y,w,h] # 画像内座標系
mini_box = [mini_x,mini_y,mini_w,mini_h] # box内座標系

def scale_to_big_coordinate_system(mini_box,box):
  scaled_mini_box = [(mini_box[0])*box[2]+box[0],
            (mini_box[1])*crop_box[3]+box[1],
            mini_box[2]*box[2],
            mini_box[3]*box[3]]
  return scaled_mini_box # 画像内座標系にスケールしたmini_box

考え方としては、boxのorigin_xからmini_boxのorigin_xまでの距離を、boxの幅(つまり画像幅に対してのスケール)をかけて画像座標系にスケールし、boxのorigin_xを足す、という計算です。高さも同様です。
center_x,center_yで計算する場合は、boxのorigin_xからmini_boxのcenter_xまでの距離をスケールします。
幅と、高さは、そのまま画像座標系へスケールします。

大きい座標系から、小さい座標系への変換

今度は、逆に、画像内座標系でのmini_boxの座標がわかっているとき、box座標系でのmini_boxの座標はどうなるのでしょうか?

box = [x,y,w,h] # 画像内座標系
mini_box = [mini_x,mini_y,mini_w,mini_h] # 画像内座標系

def scale_to_small_coordinate_system(mini_box,box):
    scaled_mini_box = [(mini_box[0]-box[0])/box[2],
                  (mini_box[1]-box[1])/box[3], 
                  mini_box[2]/box[2],
                  mini_box[3]/box[3]]
    return scaled_mini_box # box内座標系にスケールしたmini_box

boxの原点からmini_boxの原点までの距離を計算し、boxの幅、高さで割ることで(boxの幅、高さを1とすることで)、box内の座標系へ変換しています。mini_boxの幅と高さもboxの幅、高さで割っています。

🐣


フリーランスエンジニアです。
お仕事のご相談こちらまで
rockyshikoku@gmail.com

機械学習、ARアプリ(Web/iOS)を作っています。
機械学習/AR関連の情報を発信しています。

Twitter
Medium
GitHub

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?