convertir la matriz openCV en vector

Parece engañosamente fácil. Después de todo, sabemos que un vector estándar o openCV se puede convertir fácilmente en Matrix de la siguiente manera:

vector<Point> iptvec(10);
Mat iP(iptvec);

Lo contrario se sugiere en openCV cheatSheet:

vector<Point2f> ptvec = Mat_ <Point2f>(iP);

Sin embargo, hay una advertencia: la matriz debe tener solo una fila o una columna. Para convertir una matriz arbitraria hay que remodelar:

int sz = iP.cols*iP.rows;
vector<Point2f> ptvec = Mat <Point2f>(iP.reshape(1, sz));

De lo contrario obtendrá un error:

* Error de OpenCV: error de aserción (dims == 2 && (tamaños [0] == 1 || tamaños [1] == 1 || tamaños [0] * tamaños [1] == 0)) en create, file / Inicio /.../ OpenCV-2.4.2 / modules / core / src / matrix.cpp, línea 1385 ...

Respuestas a la pregunta(1)

Su respuesta a la pregunta