Страницы

Поиск по вопросам

пятница, 24 января 2020 г.

Чтение фреймов с вебкамеры

#cpp #opencv #web_camera


Появилась необходимость обрабатывать фреймы с вебкамеры, выбрал OpenCV. Так вот,
эта програмулька для чтения выдает ошибку:


  Unhandled exception at 0x00007FF959C7E5BC (ntdll.dll) in CaptureVideo.exe: 0xC000000D
: Службе или функции передан неверный параметр.


В окне видно вместо изображения полоски.

Код:

#include 
#include 
int main() {
    cvNamedWindow("Output", 0);
    CvCapture* capture = cvCreateCameraCapture(0);
    //assert(capture != NULL);
    IplImage* frame = cvQueryFrame(capture);
    cvShowImage("Output", frame);
    //cvSaveImage("filename.png", frame);
    cvWaitKey (2000);

    cvDestroyWindow("Output");
    return 0;
}


Проблема в строчке: 

CvCapture* capture = cvCreateCameraCapture(0);


При нулевом значении выходит ошибка, а при других константах (СV_CAP_*) нету ни изображения,
ни ошибки. 
На всякий: камера ноутбука. В скайпе как и на сайтах камера работает.
    


Ответы

Ответ 1



#include using namespace cv; int main(int, char**) { VideoCapture cap(0); // открываем камеру if(!cap.isOpened()) // Mat edges; namedWindow("edges",1); for(;;) { Mat frame; cap >> frame; // получаем кадры от камеры cvtColor(frame, edges, COLOR_BGR2GRAY); GaussianBlur(edges, edges, Size(7,7), 1.5, 1.5); Canny(edges, edges, 0, 30, 3); imshow("edges", edges); if(waitKey(30) >= 0) break; } // деструктор return 0; }

Комментариев нет:

Отправить комментарий