2017-09-02 51 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

感谢您的建议。匹配形状不是很简单吗?还是训练算法很明显?因为我认为这些算法适合很多图像识别。现在我一直在通过匹配形状进行识别。 –