2011-09-23 70 views
2

有匹配3遊戲截圖(例如http://www.gameplay3.com/images/games/jewel-quest-ii-01S.jpg),找到網格的綁定框(帶有圖塊的表)的正確方法是什麼?該板不一定是完美的矩形(如截圖所示),但每個單元格都是完全正方形的。在圖像中查找網格

我已經嘗試了幾個遊戲,發現有一些遊戲中的圖像轉換可以用來增強網格中的圖塊(例如在這個遊戲中,它足以將V通道帶出HSV顏色空間)。然後,我可以放大這些圖塊,使它們重疊,找到圖像的最大輪廓並從中獲取裝訂框。

上述方法的問題在於,每個遊戲(甚至同一遊戲中的水平)都可能需要不同的轉換才能獲得拼貼。所以問題是 - 是否有一種標準的方法來增強網格或網格線內的瓦片(我試圖找到具有霍夫變換的線條,但是,雖然網格看起來非常可見,但霍夫卻沒有找到它) ?

此外,如果使用手機攝像頭獲取屏幕截圖而不是拍攝桌面屏幕截圖會怎麼樣?根據我的經驗,拍攝的圖像的顏色較少(取決於照明),並且可能會稍微變形,因爲無法將手機完全保持在屏幕前方。

回答

2

我會去用以下辦法進行截圖:

  1. 查找使用例如像邊緣檢測精明的形象在角落裏。
  2. 進行霍夫線變換。這應該在邊緣圖像上很好地工作。
  3. 如果您有關於瓷磚大小的一些信息,可以使用網格的某種空間模型(例如,與圖像的x/y軸成小角度的線條和/或距離/瓷磚邊界的角度。找到霍夫線下
  4. Identifiy瓷磚的邊界通過尋找下/旁邊線由精明的發現邊緣。

哪個實現霍夫變換你用?你怎麼會預處理圖像?

另一種方法是使用某種機器學習方法。在OpenCV中,您可以使用哈爾像特徵檢測器。使用哈爾特徵的人臉檢測的例子可以在這裏找到:

OpenCV Haar Face Detector example

另一種機器學習方法是遵循方向梯度(HOG)方法的直方圖與支持向量機組合(SVM) 。一個例子是位於:

HOG example

您可以找到有關檢測系首長在一般信息:

Hog detection

+0

我用CV :: HoughLinesP找到行,要麼有太多線條可供選擇(它們可以覆蓋大部分圖像),或者網格上的線條未找到。使用Canny和HoughLinesP的參數,我可以減少誤報的數量,但這些參數顯然對其他遊戲沒有好處。我沒有關於電路板上瓷磚尺寸或數量的信息,所以我沒有簡單的方法來消除這些線條。 –

+0

另外,我不認爲我完全理解第4步。 –

+0

關於第四步:如果對Canny圖像進行了輪廓線變換,最終可能會出現線條,這些線條比您正在搜索的圖塊之間的實際邊界更長。找到瓦片的實際範圍的一種方法是通過沿着找到的霍夫線搜索Canny邊緣檢測器的響應。 – tisch