Unity android中的水平面检测

时间:2015-07-21 11:27:38

标签: android opencv unity3d

我尝试使用相机检测水平面,如索尼的AR相机中所示https://www.youtube.com/watch?v=H9nFfXdcOA0。我想我应该检查OpenCV的统一性,但根据我看到的youtube视频,我觉得它不太准确。请告诉我我可以选择的最佳选择。我希望我能知道飞机检测是如何完成的索尼的AR相机效果,如果可以在Unity.Thanks!

1 个答案:

答案 0 :(得分:0)

猜测它不仅仅是"平面检测",它是"矩形平面边缘检测"。所以步骤可能是这样的:

  • 找到边缘,过滤直线(霍夫等),过滤最长行
  • 使用RANSAC或任何其他clasterization之类的东西来查找看起来像一个平面边缘的线组(例如,具有几乎相同的交叉点)
  • 过滤水平面
  • 找到最大或最接近中心平面
  • 找到此平面的Homography并根据它添加对象

要进行逆向工程,必须让这款手机通过检查不同平面的工作来理解算法属性:不是矩形平面,白色地板上的白色桌子,边缘不平行的黑色桌子上的白纸到桌边,圆圈和椭圆桌等。