Pass opencv inputarray und verwenden Sie es als std::vector

Ich möchten, schreiben Sie eine benutzerdefinierte Funktion, die die cv::InputArray als Parameter.
Innerhalb der Funktion, ich verstehen, ich kann über cv::InputArray::getMat erhalten einen header, der den Eingang cv::Mat.

Habe ich einige Verwirrungen, indem std::vector, um die cv::InputArray.

1.Wenn ich den pass std::vector in eine Funktion, kann ich immer noch den std::vector in der Funktion? Zum Beispiel:

void foo(cv::InputArray _input)
{
    std::vector<cv::Point2f> input = _input.getVector() //getVector function doesn't exist
}

std::vector<cv::Point2f> a;
foo(a);

2.Wenn ich den pass std::vector, um die Funktion und Verwendung der getMat um eine cv::Mat in der Funktion, wie die Matte aussieht wie?

Poly hat eine klare Erklärung, die im Fall von std::vector<char>. Was ist, wenn ich will std::vector<cv::Point2f> in die Funktion, irgendwelche Vorschläge?

Dank sehr viel.

Schreibe einen Kommentar