次のコードを使用して、OpenCV Java を使用してマトリックスの ROI の色を変換しようとしています。
public Mat detect(Mat image){
Rect roi = new Rect(new Point(50, 50), new Point(image.width() - 50, image.height() - 50));
Mat mask = image.submat(roi);
Mat temp = new Mat();
Imgproc.cvtColor(mask, temp, Imgproc.COLOR_BGRA2GRAY,0);
temp.copyTo(mask);
return image;
}
しかし、結果は与えられた画像と同じです。たとえば、Imgproc.cvtColor() 呼び出しを Imgproc.medianBlur() 効果で変更すると、次のようになります。
...
Imgproc.medianBlur(mask, temp, 11);
...
ぼやけた長方形が表示されます。Imgproc.cvtColor() のプロセス中に、元の画像への参照が新しく作成されたものに置き換えられていると思います。では、参照を失うことなくマトリックス内の ROI の色を変換するにはどうすればよいでしょうか?
どんな助けにも感謝します、ありがとう!
PS: サンプル画像を追加したかったのですが、私の評判は十分ではありません。申し訳ありませんが、サンプルがなくても私の問題を想像していただければ幸いです。