Проблема с вычитанием фона OpenCV MOG2 - PullRequest
0 голосов
/ 27 января 2019

Я пытаюсь сделать вычитание фона с помощью камеры телефона Android с Android Studio. Я установил OpenCV4Android 3.4.3 и попытался использовать Backgorund Subtraction MOG2. Я даю разрешение камеры в манифестах и ​​правильно настраиваю камеру. Я установил камеру на 320 x 240. Я не двигал камеру.

Вот моя переменная:

private Mat foreground;
Mat mRgba;
private BackgroundSubtractorMOG2 mog;

Вот мой код onCreate и onCameraFrame:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        Log.i(TAG, "called onCreate");
        super.onCreate(savedInstanceState);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
        setContentView(R.layout.activity_main);
        mOpenCvCameraView = (JavaCameraView) findViewById(R.id.camera_view);

        mOpenCvCameraView.setMaxFrameSize(320, 240);

        mOpenCvCameraView.setVisibility(SurfaceView.VISIBLE);

        mOpenCvCameraView.setCvCameraViewListener(this);
}

public Mat onCameraFrame(CameraBridgeViewBase.CvCameraViewFrame inputFrame) 
{
    mRgba = inputFrame.rgba();
    foreground = new Mat();
    mog = Video.createBackgroundSubtractorMOG2(10, 16, false);
    mog.apply(mRgba, foreground, 0.1);
    return foreground;
}

Однако у меня только белый экран на return foreground и камера с низким разрешением на return mRgba. Это ничего не делает о вычитании фона. Я хочу получить маску переднего плана.

Есть ли какие-то проблемы с настройкой значения в истории, пороге или скорости обучения? потому что он пытается пару комбинаций, но это не работает. Пожалуйста, помогите, если есть какая-то программная ошибка. Спасибо.

...