マットを別の関数に渡し、呼び出された関数内で変更しています。より複雑なタイプであるため、呼び出し元の関数でマトリックスが変更されるように、参照によって自動的に渡されると予想していましたが、そうではありません。関数から変更されたマットを正しく返す方法の説明を誰かに教えてもらえますか?
コードスニペットは次のとおりです。
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);
}
ありがとう!