2017-06-06 143 views
0

我正在開發一個項目,我需要能夠看到所有4個紙牌符號之間的區別:hart,spade,diamond,club(只是符號,我不使用實際的紙牌)。這意味着角度,照明距離和符號不斷變化(因此根據輪廓區域檢測物體將不會成爲選項)使用opencv python檢測複雜形狀

所以基本上,當我在我的前面拿着一個哈特符號相機我試圖在裏面畫'哈特'這個詞。如果我用鐵鍬做同樣的事情,我希望它能夠寫出鐵鍬等。

我試過用各種不同的方式做這件事,但所有的嘗試都失敗了,或者沒有像我想要的那樣工作。

我已經試過的方法:

  • haarcascades
  • 模板匹配,不工作,由於是可能的
  • 顏色檢測,因爲有2個符號只做了一半工作的旋轉每種顏色
  • 特徵匹配:this tutorial不起作用,因爲符號不具有足夠的細節來尋找關鍵點

如果需要,我可以添加這些嘗試的源代碼,但我不認爲它會增加任何價值,因爲它並沒有真正讓我到任何地方。

圖片我使用:

enter image description here

任何幫助是值得歡迎的。

回答

1

由於您正在處理相對較低的複雜符號,爲什麼不嘗試輪廓匹配整形?你可能不得不適應一些更復雜的情況,但我認爲這可能是第一個好辦法:

http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_imgproc/py_contours/py_contours_more_functions/py_contours_more_functions.html

http://docs.opencv.org/2.4/modules/imgproc/doc/structural_analysis_and_shape_descriptors.html?highlight=findcontours

請記住,你也有顏色信息在您的應用程序使用。無論如何,也看看http://www.morethantechnical.com/2012/12/27/2d-curve-matching-in-opencv-w-code/

+0

這幫了我很多,謝謝! – FrankK