動き検出器を書き込んでいます。私はフレームの特定の領域で動きを検出することができます。さて、私は透明な色でその領域を強調したいと思います。プレビュー時のオーバーレイ透明色
私はAndroid用OpenCVを使用しています。
thisのような他の言語を使用したチュートリアルが見つかりました。
これらはaddWeighted()を使用して2つの画像をブレンドします。
現時点では、プレビューフレームをオーバーレイしようとしています。
public Mat onCameraFrame(CameraBridgeViewBase.CvCameraViewFrame inputFrame {
mRgba = inputframe.rgba();
//defined a Mat that overlays the frame:
Mat greenOverlay = mRgba.submat(0, mRgba.height(), 0, mRgba.width()/5)
mGreenOverlay.setTo(GREEN);
Core.addWeighted(mGreenOverlay,0.5,mRgba,0.5, 0.0, mRgba);
return mRgba;
}
問題は(logcatがこれを示して)greenOverlayとinputFrameが同じサイズを持っていないということです:私は、次のコードを試してみました。 ログメッセージ:
どうすればこの問題を解決できますか?
ソリューション
Torisの答えは動作します。コードは次のようになります。
Mat greenOverlay = mRgba.clone();
Imgproc.rectangle(greenOverlay, new Point(0, 0), new
Point(mRgba.width()/5, mRgba.height()), GREEN, -1);
Core.addWeighted(greenOverlay,0.25,mRgba,0.75, 0.0, mRgba);