如何找到检测到的图像的drawcontour点?

时间:2014-10-16 07:29:12

标签: c++ opencv points opencv-drawcontour

我想找到一个轮廓的点,它是在按照像背景减法,findcontour,drawcontour之类的操作后在对象上绘制的。 我的目标是移动,所以我的轮廓也不合适。我想找到在对象上绘制的轮廓上的最大和最小点。 谁能告诉我怎么找? 我的目标是移动汽车和相机视图是顶部。

1 个答案:

答案 0 :(得分:0)

vector<vector<Point>> allContours;
vector<Vec4i> hierarchy;
Mat _temp = image.clone();
findContours(_temp, allContours, RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE);

allContours是轮廓矢量。 你可以访问每个轮廓的点。

=============================================== =============================

所有关节点都将通过以下代码绘制。 original draw contour draw points of contour

    vector<vector<Point>> allContours;
    vector<Vec4i> hierarchy;
    Mat _temp = imageGray.clone();
    Mat ptDraw = Mat::zeros(image.rows,image.cols,CV_8UC3);
    findContours(_temp, allContours, RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE);

    for(int i=0;i<allContours.size();i++)
    {
        drawContours(image, allContours, i, Scalar(0,0,255), 2, 8, hierarchy, 0, Point() );

        for(int j=0;j<allContours.at(i).size();j++)
        {
            Point pt = allContours.at(i).at(j);
            circle(ptDraw,pt,1,Scalar(0,0,255),CV_FILLED);
        }
    }