2017-09-02 47 views
2

我一直在使用OpenCV製作應用程序,以識別Android上Java的汽車燈光符號。我從手機的相機拍攝圖像。我使用OpenCV 3.2.0版本。我迄今所做的:OpenCV android-如何識別特定的對象

  1. 濾除顏色的圖像
  2. 在降低噪音
  3. 按顏色按大小
  4. 理清檢測對象的對象(該對象將與之比較同一對象的顏色)

檢測對象:

Detected object

顏色過濾:

Colors filtered out

什麼是承認那些(二進制圖像)對象很好的選擇?我看了一下HOG,HAAR和k-NN算法。但是我很難獲得一些關於它的有用信息(在哪裏下載算法或者訓練算法)或者我錯過了什麼?我在Windows 10上做了一切。讓我們知道你的意見。

回答

0

HAAR將是檢測特定符號的好方法。假設你知道如何訓練級聯模型,你可以在Java here中找到一個很好的例子來使用你的模型來識別符號。

但是,如果你不知道如何訓練你的HAAR模型,你可以參考OpenCV reference。使用OpenCV的命令行工具來訓練HAAR模型有點複雜,但有一個很好的GUI來訓練模型。

然後你可以訓練一個模型,每個符號和識別利用分類器對每個星座圖像的跡象,但它會有點費時

更新:

要了解您的級聯模型的命令行和官方的方式(OpenCV 3.x),你可以試試this

+0

我感謝你的回答。我在版本opencv 3.x中看到過,你可以使用opencv在一個項目中訓練你的模型。有些課程允許這樣做。你不必有任何其他程序來訓練它。或者我搞砸了什麼?我不確定。 –

+0

實際上,培養豐富的模型,如級聯模型是一個開發時間過程;所以OpenCV本身提供的方式就是使用它的命令行工具,如[這裏]所述(http://docs.opencv.org/3.3.0/dc/d88/tutorial_traincascade.html)。但是使用OpenCV類可以訓練更簡單的模型,例如訓練SVM。 – Alto

+0

感謝您的建議。匹配形狀不是很簡單嗎?還是訓練算法很明顯?因爲我認爲這些算法適合很多圖像識別。現在我一直在通過匹配形狀進行識別。 –