将图像覆盖在实时框架上-OpenCV4Android

时间:2019-06-18 00:17:02

标签: android opencv4android

我正在尝试在实时帧上叠加一个用户预先选择的小图像。我已经有了上一个活动的图像路径。我的问题是我无法在框架上显示图像。

我正在尝试检测框架上的矩形,并在矩形上方显示所选的图像。我可以检测到矩形,但是现在我无法在框架的任何部分上显示图像(我现在不在乎矩形)。 我一直试图用Adding Image Overlay OpenCV for Androidadd watermark small image to large image opencv4android的解释来做到这一点,但这对我没有用。

do_compile()

注意:img_path是要在框架上显示的所选图像的路径。我从上一个活动中得到的。

现在,我只想在框架上显示图像。稍后,我将尝试将其显示在找到矩形的相同位置。 请,欢迎提出任何建议或建议,因为我是OpenCV的新手。我对我的英语感到抱歉,但是请随时问我任何我没有正确解释的问题。我会尽力更好地解释它。 非常感谢!

1 个答案:

答案 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);