2

拥有三消游戏截图(例如http://www.gameplay3.com/images/games/jewel-quest-ii-01S.jpg),找到网格绑定框的正确方法是什么(带瓷砖的桌子)?棋盘不必是完美的矩形(如屏幕截图所示),但每个单元格都是完全正方形的。

我尝试了几款游戏,发现可以进行一些游戏中的图像转换来增强网格内的图块(例如在这个游戏中,将 V 通道从 HSV 颜色空间中取出就足够了)。然后我可以放大瓷砖使它们重叠,找到图像的最大轮廓并从中获取绑定框。

上述方法的问题是每个游戏(甚至同一游戏中的关卡)可能需要不同的转换来获得瓷砖。所以问题是 - 有没有一种标准的方法来增强网格内的瓷砖或网格线(我试过用霍夫变换找到线,但是,虽然网格看起来很明显,霍夫没有找到它) ?

另外,如果使用手机摄像头而不是桌面截屏来获取屏幕截图怎么办?根据我的经验,拍摄的图像颜色不太清晰(取决于照明),并且可能会有点失真,因为无法将手机完全放在屏幕前。

4

1 回答 1

2

我会采用以下方法进行屏幕截图:

  1. 使用例如像边缘检测器一样的精明来查找图像中的角落。
  2. 执行霍夫线变换。这应该在边缘图像上工作得很好。
  3. 如果您有一些关于瓷砖大小的信息,您可以使用某种网格的空间模型来消除误报线(例如,与图像的 x/y 轴和/或瓷砖的距离/角度仅具有小角度的线边界。
  4. 通过查找线下方/旁边的精明发现的边缘来识别找到的霍夫线下方的瓷砖边界。

您使用了哪种霍夫变换实现?你是如何预处理图像的?

另一种方法是使用某种机器学习方法。当您在 OpenCV 中工作时,您可以使用类似 Haar 的特征检测器。可以在此处找到使用类似 Haar 特征的人脸检测示例:

OpenCV Haar 人脸检测器示例

另一种机器学习方法是遵循定向梯度直方图 (Hog) 方法与支持向量机 (SVM) 相结合。一个示例位于此处:

猪例子

您可以在以下位置找到有关 HoG 检测的一般信息:

猪检测

于 2011-09-23T18:26:54.883 回答