Difference between revisions of "Kifu: Go game record (kifu) generator"
Line 44: | Line 44: | ||
Computing horizontal and vertical pixel sums for each grid cell can tell on which intersection | Computing horizontal and vertical pixel sums for each grid cell can tell on which intersection | ||
− | the stone is played and reveal the color of the stone, being darker or brighter than | + | the stone is played and reveal the color of the stone, being darker or brighter than before. |
Revision as of 21:13, 10 August 2008
Image change detection:
Using vertical and horizontal 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 and the reference rectangle proportions.
Grid intersection detection:
As the camera has not been calibrated, and the corner coordinates are detected from image change,
the projected coordinates will be somewhat approximative.
So it is necessary to detect the nearest grid intersection for each computed grid point.
Using the accumulative algorithm described above on a square portion of the rectifed image
around the computed intersection should be sufficient, but the result is maybe be more exact
doing line detection on the square edges to compute the intersection using line geometry laws.
Using the resulting grid(s) and the real size or proportions of the object(s) in the scene,
maybe it becomes possible to calibrate the camera with Tsai algorithms or others.
Stone detection:
When a stone is played it overlaps 1 grid square on a corner, 2 on the borders and 4 in the center.
Computing horizontal and vertical pixel sums for each grid cell can tell on which intersection
the stone is played and reveal the color of the stone, being darker or brighter than before.
Methods for mapping the coordinates:
"2.2 Perspective transformation with two vanishing points" (pages 2 and 3, equations 7 and 10)
http://cipa.icomos.org/fileadmin/papers/potsdam/2001-21-gf01a.pdf
Inverse homography and plane image rectification (page 14)
http://www-prima.imag.fr/jlc/Courses/2002/DEA-IVR.VO/DEA-IVR.VO.S2.pdf
"Inferring Projective Mappings" (page 3)
http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.9.7803
with related java and C source code here: http://www.developpez.net/forums/showthread.php?t=591698
Links:
http://www.sourceforge.net/projects/kifu
Photointerpretation and Small Scale Stereoplotting with Digitally Rectified Photographs with Geometrical constraints: http://cipa.icomos.org/fileadmin/papers/potsdam/2001-21-gf01a.pdf
Vision par Ordinateur: http://www-prima.imag.fr/jlc/Courses/2002/DEA-IVR.VO/DEA-IVR.VO.S2.pdf
Projective Mappings for Image Warping: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.9.7803
http://sciences.ch/htmlfr/geometrie/geometrieprojective01.php