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

时间:2011-04-21 09:28:20

标签: image-recognition

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

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

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

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

边框的大小(未放置任何宝石的木板边缘)各不相同,但已知为“小”。

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

goban

我想检测网格上石头的位置。

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

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

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

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

3 个答案:

答案 0 :(得分:4)

你会发现here一些信息,包括一些OpenCV原语:

我也在使用OpenCV和一个小型电子板制作交互式Goban(用于识别的OpenCV,用于对手移动指示的标准LED)。 玩得开心!

答案 1 :(得分: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

答案 2 :(得分:0)

这称为blob analysis。基本上,您根据要匹配的颜色对图像进行二值化,然后在二值图像上应用斑点查找算法以查找斑点的坐标。你猜对了,每个斑点都是石头。

像往常一样,我相信OpenCV可以做到这一切。