我已经创建了一个实验性的快速矩形物体跟踪系统;它将用于在3D引擎(ogre3d)中进行头部跟踪和控制物体。
目前,我可以向网络摄像头显示任何类型的明亮的矩形(文本标记是很好的对象),系统会记录该对象的基本属性(色调/值/亮度以及0度旋转时的初始宽度和高度)。
在注册了可跟踪对象之后,我做了一些简单的帧处理来创建灰度概率图。
所以现在我有两件事:
1)最后一个对象位置的4个角(始终是一个矩形,但可以旋转)
2)一个很漂亮的矩形(但离完美还很远)斑点,它是帧中最亮的。我可以毫无问题地得到斑点的任何点的坐标,点检测足够稳定。
我可以毫无问题地找到对象的边界矩形,但是我在检测对象角本身时遇到了问题。
我需要一个最简单的算法(快速和肮脏将是伟大的)扫描图像从一些已知的坐标(一个点在斑点内)开始,并检测一个“斑点”矩形角(不是边界框的角,而是矩形斑点本身的角)的新4x,y坐标。
准备好使用C++功能会很棒,但不知何故谷歌今天不喜欢我:
我认为使用一些复杂的函数形式opencv库来提取单个rectanglular blob的4个点是过分的。但是如果你知道一个快速有效的方法如何使用opencv(它必须是实时的和轻CPU,因为我会同时运行3D引擎),那么我会非常感激。