1

Xがありますが、入力aを受け取るvector<vector<Point> >関数にXを渡す必要があります。cvConvexityDefectsCvArr*

私はすでにトピック「凸性の欠陥C++OpenCv」を読みました。これらの変数を入力します。

vector<Point>& contour, vector<int>& hull, vector<Point>& convexDefects

ハルパラメータがaでvector<Point>あり、それをに変換する方法がわからないため、ソリューションを機能させることができませんvector<int>

だから今2つの質問があります!:)

どうすればaをに変換できvector<vector<Point> >ますvector<int>か?

よろしくお願いします、良い一日を!:)

4

1 に答える 1

0

使用std::for_eachとオブジェクトの蓄積:

class AccumulatePoints
{
public:
    AccumulatePoints(std::vector<int>& accumulated)
    : m_accumulated(accumulated)
    {
    }

    void operator()(const std::vector<Point>& points)
    {
        std::for_each(points.begin(), points.end(), *this);
    }

    void operator()(const Point& point)
    {
        m_accumulated.push_back(point.x);
        m_accumulated.push_back(point.y);
    }
private:
    std::vector<int>& m_accumulated;
};

このように使用されます:

int main()
{
    std::vector<int> accumulated;
    std::vector<std::vector<Point>> hull;

    std::for_each(hull.begin(), hull.end(), AccumulatePoints(accumulated));

    return 0;
}
于 2012-04-05T11:56:55.007 に答える