我正在尝试在实时帧上叠加一个用户预先选择的小图像。我已经有了上一个活动的图像路径。我的问题是我无法在框架上显示图像。
我正在尝试检测框架上的矩形,并在矩形上方显示所选的图像。我可以检测到矩形,但是现在我无法在框架的任何部分上显示图像(我现在不在乎矩形)。 我一直试图用Adding Image Overlay OpenCV for Android和add watermark small image to large image opencv4android的解释来做到这一点,但这对我没有用。
do_compile()
注意:img_path是要在框架上显示的所选图像的路径。我从上一个活动中得到的。
现在,我只想在框架上显示图像。稍后,我将尝试将其显示在找到矩形的相同位置。 请,欢迎提出任何建议或建议,因为我是OpenCV的新手。我对我的英语感到抱歉,但是请随时问我任何我没有正确解释的问题。我会尽力更好地解释它。 非常感谢!
答案 0 :(得分:0)
如果您只想将图像显示为叠加图,而不是将其另存为视频的一部分,则可能会发现更容易在视频视图上方的单独视图中简单地显示它。这样可能会减少处理量,减少电池消耗。
如果要绘制到摄像机图像位图上,则可以执行以下操作:
Bitmap cameraBitmap = BitmapFactory.decodeByteArray(bytes,0,bytes.length, opt);
Canvas camImgCanvas = new Canvas(cameraBitmap);
Drawable d = ContextCompat.getDrawable(getActivity(), R.drawable.myDrawable);
//Centre the drawing
int bitMapWidthCenter = cameraBitmap.getWidth()/2;
int bitMapheightCenter = cameraBitmap.getHeight()/2;
d.setBounds(bitMapWidthCenter, bitMapheightCenter, bitMapWidthCenter+d.getIntrinsicWidth(),
bitMapheightCenter+d.getIntrinsicHeight());
//And draw it...
d.draw(camImgCanvas);