gpt4 book ai didi

c++ - 使用 OpenCV 从 FLIR 相机中检索帧

转载 作者:行者123 更新时间:2023-12-02 17:31:55 24 4
gpt4 key购买 nike

我正在尝试连接 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

最佳答案

好的,对于那些对 future 如何使用从 PointGray 相机获取的图像在 OpenCv 中工作感兴趣的人来说:
工业相机有其专有的驱动程序,它们不使用操作系统的标准视频接口(interface)。这是正常的,因为这些摄像机非常复杂,通常用于更复杂的情况,您需要完全控制摄像机。
您必须从 Point Gray 站点 (https://www.ptgrey.com/support/downloads) 下载相机的 SDK 并自己实现捕获。
然后,您可以将捕获的缓冲区转换为 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.flir.ca/support-center/iis/machine-vision/application-note/getting-started-with-opencv/

关于c++ - 使用 OpenCV 从 FLIR 相机中检索帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55024360/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com