2011-04-21 140 views
5

我目前想知道图像识别问题,应该很容易,但目前找不到一个简单的解决方案。简单的图像识别:网格上的黑色和白色石头

输入是一个约1百万像素的东西,显示轻木表面的矩形图片。它有一个薄的,但可见的网格。网格呈黑黑色,规则且几乎平方(比宽大约多8%)。网格大小正好是19x19。一般的木板颜色是“木材”,它可以变化,但倾向于是浅棕色。 (more info

表面上有很多小的,圆形的,黑色和白色的石头。它们总是放在十字路口,但由于人为错误,它们可能会稍微偏离。他们的颜色是纯黑色和白色。

董事会由0到300石块(361个交点的80%)覆盖。黑色和白色宝石的数量大致相同。

边界的大小(没有放置石头的棋盘的边缘)是变化的,但是被称为“小”。

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

goban

我想检测对电网的石头的位置。

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

之后,可以使用黑色和白色区域的大小来计算实际的网格大小。

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

我很想听听你关于这个问题的想法。算法看起来合适吗?你能想到很棒的技巧吗?我疯了吗,这个问题是无法解决的?我正在使用C#,但欢迎任何语言。

+0

@KarlKnechtel:http://mafutrct.de/blog/3476/optical-goban-recognition + follow up posts – mafu 2011-05-30 14:25:41

+1

我在做一个项目来检测一个完整的游戏。 [我的项目](https://github.com/Virako/Rocamgo)是用python编写的,但仍可以作为指导。我正在使用OpenCV。 [另一个可以作为参考的项目是Kifu。](http://wiki.elphel.com/index.php?title=Kifu:_Go_game_record_(kifu)_generator&redirect = no) – Virako 2012-09-05 15:18:29

回答

0

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

像往常一样,我相信OpenCV拥有一切这样做。

+0

即使尽管如此,我仍然会接受我结束了使用不同的方法(上面的链接)。 OpenCV的学习曲线很高。 – mafu 2011-05-30 14:28:25

+1

@mautrct:为什么不添加解决方案作为答案并接受它? – CharlesB 2011-05-30 14:47:04

+0

因为它是基于黑客的图像,而不是适当的数学:)吨声音的解决方案很可能是OpenCV – mafu 2012-09-06 09:36:12

4

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

我也是的道路上,以与OpenCV的和一个小的电子板的互动Goban(OpenCV进行识别,标准LED用于移动对手指示)。 在你的发展中获得乐趣!

相关问题