Estoy pasando una estera a otra función y cambiándola dentro de la función llamada. Esperaba que, al ser un tipo más complejo, se pasara automáticamente por referencia para que la matriz cambiara en la función de llamada, pero no es así. ¿Podría alguien señalarme la explicación de cómo devolver correctamente una Mat modificada de una función?OpenCV que cambia la estera dentro de una función (alcance de Mat)
He aquí el fragmento de código:
void callingFunction(Mat img)
{
Mat tst(100,500,CV_8UC3, Scalar(0,255,0));
saveImg(tst, "Original image", true);
testImg(tst);
saveImg(tst, "Want it to be same as inside testImg but is same as Original", true);
}
void testImg(Mat img)
{
int rs = 50; // rows
int cs = 100; // columns
img = Mat(rs, cs, CV_8UC3, Scalar(255,0,0));
Mat roi(img, Rect(0, 0, cs, rs/2));
roi = Scalar(0,0,255); // change a subsection to a different color
saveImg(img, "inside testImg", true);
}
Gracias!
Así que tengo que pasar por referencia explícitamente. ¡Gracias! – zzzz