Хорошо для всех, кому будет интересно в будущем работать с 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