使用OpenCV从Flir摄像机中检测帧

Retrive frames from FLIR cameras using OpenCV

本文关键字:检测 摄像机 Flir OpenCV 使用      更新时间:2023-10-16

我正在尝试连接flir cammera并使用openCV处理帧。我将cammera与互联网电缆连接起来,但视频关注对象与cam无关;


cv::VideoCapture cam(0);            
    if (cam.isOpened() == false) {                               
        std::cout << "error: capWebcam not accessed successfullynn";      
        _getch();                                                          
        return(0);                                                          
    }

看起来OpenCV可以找到它。互联网电缆提供服务,作为Cammera的电源,是否提到了可能的弹性。我可以使用大三角器SDK检索框架,但是在某种程度上不使用SDK并使用Dimecly OpenCV

可以对未来感兴趣的任何关于如何使用PointGray摄像机获取的图像在OpenCV中工作的人:

工业摄像机具有专有驱动程序,他们不使用OS的标准视频接口。这是正常的,因为这些摄像机非常复杂,并且通常在更复杂的情况下使用,您需要完全控制相机。

您必须从Point Gray站点(https://www.ptgrey.com/support/downloads)下载相机的SDK并实现自己。

然后您可以将捕获的缓冲区转换为OpenCV垫子。

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.flir.ca/support-center/iis/machine-vision/application-note-note/getting-started-with-with-opencv/

cv :: videocapture cam(0);用于在PC上安装的摄像机查看您是否可以使用VLC或任何其他应用程序打开您可能需要使用与摄像机连接的RTSP连接

打开视频关注。