Получить кадры с камер FLIR, используя OpenCV - PullRequest
0 голосов
/ 06 марта 2019

Я пытаюсь подключить камеру FLIR и обработать кадры с помощью OpenCV.Я подключаю камеру через интернет-кабель, но объект VideoCapture не был успешно связан с камерой;


cv::VideoCapture cam(0);            

    if (cam.isOpened() == false) {                               
        std::cout << "error: capWebcam not accessed successfully\n\n";      
        _getch();                                                          
        return(0);                                                          
    }

Похоже, что OpenCv не может его найти.Интернет-кабель служит и источником питания для камеры, только упоминая, если это возможно.Я могу использовать Spinnaker SDK для извлечения кадров, но есть ли какой-то способ не использовать SDK и использовать непосредственно OpenCV

Ответы [ 2 ]

0 голосов
/ 07 марта 2019

Хорошо для всех, кому будет интересно в будущем работать с OpenCv с изображениями, полученными с камер PointGray:

Промышленные камеры имеют свои проприетарные драйверы, они не используют стандартные видеоинтерфейсыОС.Это нормально, поскольку эти камеры довольно сложны и обычно используются в более сложных ситуациях, когда вам необходим полный контроль над камерой.

Вам необходимо загрузить SDK камеры с сайта Point Grey (https://www.ptgrey.com/support/downloads) и осуществите захват сами.

Затем вы можете преобразовать захваченный буфер в OpenCV Mat.

int ConvertToCVmat(ImagePtr pImage)
{
    int result = 0;
    ImagePtr convertedImage = pImage->Convert(PixelFormat_BGR8, NEAREST_NEIGHBOR);

    unsigned int XPadding = convertedImage->GetXPadding();
    unsigned int YPadding = convertedImage->GetYPadding();
    unsigned int rowsize = convertedImage->GetWidth();
    unsigned int colsize = convertedImage->GetHeight();

    //image data contains padding. When allocating Mat container size, you need to account for the X,Y image data padding. 
    Mat cvimg = cv::Mat(colsize + YPadding, rowsize + XPadding, CV_8UC3, convertedImage->GetData(), convertedImage->GetStride());
    namedWindow("current Image", CV_WINDOW_AUTOSIZE);
    imshow("current Image", cvimg);
    resizeWindow("current Image", rowsize / 2, colsize / 2);
    waitKey(1);//otherwise the image will not display...

    return result;
}

Также это полезно https://www.ptgrey.com/tan/10861

0 голосов
/ 06 марта 2019

cv :: VideoCapture cam (0);предназначен для камер, которые устанавливаются на ПК. Проверьте, можете ли вы открыть VLC или любое другое приложение, которое вам может понадобиться, чтобы открыть VideoCapture с подключением RTSP к камере

...