Kifu: Go game record (kifu) generator
Image change detection:
Using vertical RGB components sums of a thresholded difference between a reference image and the current one, it is easy to compute the screen coordinates of a played stone
Geometric projection:
It is necessary to map each point from a reference rectangle to a point in the displayed shape, or vice-versa.
Without considering scene, camera or observer parameters. The only data available are the corner coordinates on the projection plane.
Three methods for mapping the coordinates:
http://cipa.icomos.org/fileadmin/papers/potsdam/2001-21-gf01a.pdf
"2.2 Perspective transformation with two vanishing points" (pages 2 and 3, equations 7 and 10)
http://www-prima.imag.fr/jlc/Courses/2002/DEA-IVR.VO/DEA-IVR.VO.S2.pdf
Inverse homography and plane image rectification (page 14)
Or to compute a 3x3 transformation matrix to map any point of the
displayed quadrilateral shape to a rectangular shape.
To compute the tranformation matrix, somebody given me this unworking formulae.
(maybe i could just not use it properly) :
X: screen projection coordinates
X': goban corners coordinates
X=[x1 x2 x3 x4; y1 ... y4; 1 ... 1]
X'=[x1' x2' x3' x4'; y1' ... y4'; 1 ... 1]
H=X'Xt(XXt)^-1 (with Xt = transposed matrix of X)
p'=Hp
p'=[a;b;c]
x=a/c
y=b/c
Links:
http://www.sourceforge.net/projects/kifu
Perspective transformation: http://cipa.icomos.org/fileadmin/papers/potsdam/2001-21-gf01a.pdf
Inverse homography: http://www-prima.imag.fr/jlc/Courses/2002/DEA-IVR.VO/DEA-IVR.VO.S2.pdf
http://sciences.ch/htmlfr/geometrie/geometrieprojective01.php