如何通过在opencv c ++中删除图像中的一些已知点来隔离对象

时间:2017-05-27 08:30:24

标签: c++ opencv

这可能是显而易见的,但请原谅我,因为我对此很新。我有一个项目来提取我已经完成的一些铁轨。该项目的第二部分是检测图像中的人物,我也做了这个,但我也有这个图像中的地面点,因为我有这个地面点作为点矢量,我试图创建一个面具使用这一点以及我遇到困难的地方。我首先使用“unique”函数删除重复点,现在我尝试使用预定义的“排序函数对点进行排序,但我一直收到错误。排序代码示例为:

struct contour_sorter // 'less' for contours
{
    bool operator ()(const vector<Point> &a,const vector<Point> &b )
    {
        Rect ra(boundingRect(a));
        Rect rb(boundingRect(b));
        // scale factor for y should be larger than img.width
        return ( (ra.x + 1000*ra.y) < (rb.x + 1000*rb.y) );
    }
};

vector<Point> requiredPoints;

unique(requiredPoints.begin(), requiredPoints.end() );
// apply it to the contours:
std::sort(requiredPoints.begin(), requiredPoints.end(), contour_sorter());

错误是:

  

没有已知的从'cv :: Point_'到'const的参数1的转换   std :: vector&gt;&amp;'

有没有更好的方法来实现我的目标?我只想检测物体,将每个物体放在一个矩形中,找到相机的距离。现在我只是从形态操作中得到了斑点。谢谢

可以通过链接查看图像

images

0 个答案:

没有答案