Intent
I want to develop a machine vision application for high performance applications. Hence I wish to minimise the amount of image processing performed later on after image capture. I require colour as it will be a detection parameter later on, grey scale will not be applicable. I am capturing images as simultaneously as possible given current software trigger through two USB3 cables.
I am using OpenCV and the OpenCV Hardware Accelerated Module (CUDA). I want to transfer images from the cameras into an OpenCV Mat and OpenCV GpuMat. I am also utilising the Basler C++ API for interaction with the cameras.
Hence Two Parameters in play given the situations.
- The Mat Type CV_8CU3 ect...
- The Pixel Format on camera BGR8 ect...
Hardware
Basler acA2040-55uc USB3 x2 cameras
Pixel Format
As per the Basler website : acA2040-55uc - Basler ace features
BGR 8
Bayer RG 12
Bayer RG 12p
Bayer RG 8
Mono 8
RGB 8
YCbCr422_8 (YUV422_8)
Issues
Via the pylon viewer the pixel format parameter is greyed out. I.e the option is unmodifiable and stuck as Bayer RG 8. This is confusing given the information provided on the website.
In C++, using the Pylon API. The persistent issue of formatting as been playing up. I cannot get access to all the stated pixel formats. I.e. a 3 channel cv::Mat + BGR8 does not work, in fact the Basler API specifies the error that the pixel format is incompatible given a selection of BGR8. I have only ever got this to work with a 2 channel cv::Mat for Bayer RG 8 which seems to go against all the Basler stated documentation.
Resolutions
I would like to understand what compatible pixel formats I can use, and to know other peoples experience with this platform.
Additional question, if someone can explain to me how pixel format plays into computer vision and performance application that would be great. I can only ever find definitional information regarding pixel formats and have no practical understanding of how this applies to machine vision bar the fact they reside in different colour spaces.