OpenCV VideoCapture не работает в Visual Studio 2017 (Windows 10) - PullRequest
0 голосов
/ 04 апреля 2019

У меня очень странная проблема. VideoCapture не открывает ни веб-камеру, ни видеофайл при запуске приложения C ++ из Visual Studio и в случае веб-камеры выдает следующую ошибку:

Ошибка инициализации WinRT - 0xC00D36B3: 'Указан неверный номер потока.'

с последующим

Исключение Microsoft C ++: _com_error в ячейке памяти 0x000000D9B66FCBB0. Исключение Microsoft C ++: _com_error в ячейке памяти 0x000000D9B66FCAA0. Исключение Microsoft C ++: cv :: Исключение в ячейке памяти 0x000000D9B66FEFD0. Microsoft C ++ исключение: cv :: Исключение в ячейке памяти 0x000000D9B66FEFD0.

Но когда я запускаю приложение извне VS - все работает. Я использую OpenCV v4.0.0

1 Ответ

0 голосов
/ 05 апреля 2019

Чтобы диагностировать вашу проблему, попробуйте следующее и дайте мне обратную связь.

#include <opencv2/opencv.hpp>

using namespace cv;

int main()
{
    VideoCapture cap(0); // open the default camera
    if (!cap.isOpened())  // check if we succeeded
        return -1;

    Mat edges;
    Mat frame;
    namedWindow("edges", WINDOW_NORMAL);

    while (true)
    {
        cap >> frame; // get a new frame from camera
        cvtColor(frame, edges, COLOR_RGB2GRAY);
        GaussianBlur(edges, edges, Size(7, 7), 1.5, 1.5);
        Canny(edges, edges, 0, 50, 3);
        imshow("edges", edges);
        if (waitKey(30) >= 0) break;
    }
    // the camera will be deinitialized automatically in VideoCapture destructor
}

Необходимые библиотеки:

opencv_core401.lib
opencv_imgproc401.lib
opencv_videoio401.lib
opencv_highgui401.lib
...