0

私はopencvが初めてで、使用しようとしていますBackgroundSubtractorMOG2。しかし、アクセス違反に問題があります (これに対する解決策はどこにも見つかりませんでした)。問題が私のコードにあるのかどうかわかりませんか? 助けてください!!

問題:

Unhandled exception at 0x000007F81A1F3F33 (igdfcl64.dll) in opencv_31_test.exe: 0xC0000005: Access violation writing location 0x0000000067648A80.

opencv 3.1 で VS2013 を使用しています。

コードは次のとおりです。

#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/videoio/videoio.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/video/background_segm.hpp"
#include <iostream>
using namespace std;
using namespace cv;


int main()
{
    VideoCapture cap(0);
    bool update = false;

    if (!cap.isOpened())
    {
        cout<<"camera not open";
        return -1;
    }
    Mat frames, bg_mask, output, image;
    cap >> image;
    if (image.empty())
    {
        cout<<"no image from camera";
        return -1;
    }
    resize(image, frames, Size(640, 480));
    namedWindow("webcam", WINDOW_AUTOSIZE);
    namedWindow("segmented", WINDOW_AUTOSIZE);
    Ptr<BackgroundSubtractorMOG2> bg_sub = createBackgroundSubtractorMOG2();
    bg_sub->setVarThreshold(10);
    for (;;)
    {
        cap >> frames;
        if (frames.empty())
            break;
        bg_sub->apply(frames, bg_mask, update ? -1 : 0);
        imshow("webcam", frames);
        imshow("segmented", output);
        if (waitKey(30) == 27)
            break;
    }
    return 0;
}
4

0 に答える 0