opencv检测立方体(角落)

时间:2015-08-02 14:20:57

标签: android opencv image-processing

我想解决的问题是检测立方体并从中获取颜色。我使用Android手机拍摄的相机的实时图像。识别必须快速(<1s)立方体的例子:

http://i57.tinypic.com/25ful28.jpg

我也有不同颜色的立方体。它们可以随机放置(例如当它们相互接触时)。 我可以轻松地检测到一个立方体,在相同的情况下甚至可以检测到两个立方体,但问题是当我有3个或更多立方体和2个立方体时它们彼此非常接近。

目前的处理方式如下:

  • 使用高斯模糊图像
  • 转换为hsv并仅使用s频道
  • 使用Canny检测边缘
  • 扩张和侵蚀边缘
  • 使用HoughLinesP获取行
  • from lines(我拒绝太长而且太短的线)计算交叉点并从那里得到立方体的角落
  • 知道角落(必须精确)获取颜色

http://i59.tinypic.com/2jd58g0.png 没有检测到 enter image description here 检测到2个立方体(红色和橙色点是角,青色点是交叉点,黑线是由hough线检测到的线) enter image description here 没有检测到,发现了一些行

基本上我需要的是找到立方体的正确角落。我尝试过使用Imgproc.goodFeaturesToTrack和Imgproc.cornerHarris,但它发现了太多,通常不是最重要的。

我也试过使用findContours,即使是两个对象也没有成功。运行一分钟后,findContours也崩溃了我的应用程序。在某些时候,我尝试使用Feature Matching + Homography来查找与摄像机相关的立方体灰度图像的匹配,但结果很混乱。模板匹配也没有给我带来好结果。

您是否知道如何使检测更加可靠和精确?

感谢您的帮助

0 个答案:

没有答案
相关问题