構想
サッカーの画像を平面に変換してみる。
予めポイントとなる点を調べる。
変換は先画像から元画像の点を求める。
元画像は点からではなく平行視線とする。
kaiseki.png
field.png
座標の取得はgimpを使いました。
最初の画像はコーナーポストから水平、垂直のベクトル
別の3点から
計算式は独自で作成してみました。
4点必要なのかも...
サッカーの画像を平面に変換してみる。
予めポイントとなる点を調べる。
変換は先画像から元画像の点を求める。
元画像は点からではなく平行視線とする。
kaiseki.png
field.png
座標の取得はgimpを使いました。
from PIL import Image, ImageDraw, ImageFilter im1 = Image.open('./field.png') im2 = Image.open('./kaiseki.png') p1=(291,215) #va1=(292-134,0) vx=134-291 #vb1=(0,320-82) vy=478-215 p2=(512,219) va2=(183-512,182-219) vb2=(144-512,363-219) def getPoint(an,bn): global p2,va2,vb2 px,py=p2 ax,ay=va2 bx,by=vb2 return px+ax*an+bx*bn,py+ay*an+by*bn h1=im1.height w1=im1.width h2=im2.height w2=im2.width for x in range(w1): for y in range(h1): px,py=p1 #px+vx*an=x an=(x-px)/vx #py+vy*bn=y bn=(y-py)/vy gx,gy=getPoint(an,bn) if gx>=0 and w2>gx and gy>=0 and h2>gy: im1.putpixel((x,y),im2.getpixel((gx,gy))) im1.show()
最初の画像はコーナーポストから水平、垂直のベクトル
別の3点から
計算式は独自で作成してみました。
4点必要なのかも...