1

サブマットへの非定数参照を返すopencv 2.4の解決策はありますか?
roi で定義されたサブイメージをその場で上書きしたいのですがmat(roi)、const 参照を返すため、 say mat(roi)=mat2、 orと書くことができないため、これを求めていますcv::rectangle(mat(roi), rect_relative_to_roi)

編集:(Andrejの回答を使用してより具体的にします)

サブイメージで動作する複雑な描画関数を定義した場合、
相対座標を描画関数に送信しないようにする唯一の方法は、操作
したいサブイメージを前後にコピーすることですか?

私はこのように意味します:

/* Mat canvas; */
Mat subimg = canvas(roi);
draw_sth(subimg);
subimg.copyTo(canvas(roi));
4

2 に答える 2

5

できるよ

mat2.copyTo(mat(roi));
于 2012-10-28T12:09:52.087 に答える
2

さて、それは判明しました

Mat subcanvas = canvas(roi);
draw_sth(subcanvas);

答えは、元のキャンバスを変更します。Mat は参照カウントされたスマート ポインターと見なされるため、画像データを指すだけです。

一方、copyTo() は良くありません。opencv コードを見てみましょう。

//! copies the matrix content to "m".
// It calls m.create(this->size(), this->type()).
于 2012-10-29T16:23:46.337 に答える