简单的图像识别:网格上的黑色和白色宝石

maf*_*afu 6 image-recognition

我目前想知道一个应该很容易的图像识别问题,但到目前为止找不到一个简单的解决方案.

输入是一个大约1百万像素的矩形图片,显示轻木表面.它上面有一个薄但可见的网格.网格为黑色黑色,规则且几乎为正方形(比宽度长约8%).网格大小正好是19x19.一般的纸板颜色是"木材",它可以变化,但往往是浅棕色.(更多信息)

表面上放置了许多小的圆形黑色和白色宝石.它们总是放在交叉点上,但由于人为错误,它们可能会稍微偏离.它们的颜色是纯黑色和白色.

该板覆盖0至约300块石头(361个交叉点的80%).黑色和白色宝石的数量大致相同.

边界的大小(没有放置石头的板的边缘)变化,但是已知是"小".

光线可能会导致棋盘上出现阴影.此外,它会在石头上(在光线方向上)出现一个白点.

goban

我想检测一下石头在栅格上的位置.

我的想法是查看每个像素的亮度并将它们分为3类:光(白色宝石),中(宝石)和黑色(黑色宝石).具有许多黑色像素的区域被认为是黑色宝石,依此类推.

之后,黑色和白色区域的大小可用于计算实际网格大小.

另一个想法是识别网格线并使用它们来计算网格大小和位置.由于线条非常薄(通常被石头覆盖),我不知道该怎么做.

我很想听听你关于这个问题的想法.是否有适合的算法?你能想到很有帮助的酷炫技巧吗?我疯了,这个问题无法解决?我在C#工作,但欢迎使用任何语言.

Rém*_*émi 2

也不要错过gocam。它附带源代码和一篇解释算法的论文:http://users.ics.aalto.fi/thirsima/gocam/

您可以在 kifu-snap 的网站上找到一系列链接和论文: http: //www.remi-coulom.fr/kifu-snap/

PhotoKifu 最近的一个非常好的结果是: http: //www.oipaz.net/PhotoKifu.html