Я передаю Mat другой функции и изменяю ее внутри вызываемой функции. Я ожидал, что, будучи более сложным типом, он автоматически передается по ссылке, чтобы матрица изменилась в вызывающей функции, но это не так. Может ли кто-нибудь указать мне на объяснение того, как правильно вернуть измененный Мат из функции?OpenCV change Mat внутри функции (область маштаба)
Вот фрагмент кода:
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);
}
Спасибо!
Так что я должен явно передать ссылку. Благодаря! – zzzz