如何从视频流中删除非静态背景?

时间:2016-10-18 08:48:01

标签: android opencv opencv3.0 edge-detection opencv4android

我正在使用OpenCV4Android版本3.0.0,我正在尝试从视频流中移除背景"非静态背景"。我想这样做,因为当我试图检测"卡的边缘时遇到问题,检测卡片边缘的问题"基于其颜色和背景颜色,如我的问题here中所述。

在参考了一些帖子后我编写了下面的代码,但是在运行时,当我显示" mask"图像我得到一个完全灰色的图像。当我显示"输出"应用"掩码后的图像"在它上面我在相机上显示相同的预览

有没有办法从视频流中删除非静态背景?

    mask = new Mat();
    BackgroundSubtractorMOG2 mog2 = Video.createBackgroundSubtractorMOG2();
    mog2.apply(mInputFrame,mask,.000005);

    output = new Mat();
    mInputFrame.copyTo(output, mask);
    final Bitmap bitmap = Bitmap.createBitmap(mInputFrame.cols(), mInputFrame.rows(), Bitmap.Config.ARGB_8888);
    Utils.matToBitmap(output, bitmap);
    getActivity().runOnUiThread(new Runnable() {
        @Override
        public void run() {
            mIVEdges.setImageBitmap(bitmap);
        }
    });

0 个答案:

没有答案