Я пытаюсь получить необработанные данные Logitech Pro 9000 (например, так называемый шаблон Байера). Это может быть достигнуто с помощью так называемого приложения Байера, которое можно найти в интернете. Он должен возвращать 8-битный паттерн Байера, но результаты совершенно не такие.
Тем не мение; Изображение, которое передается в потоковом режиме, кажется совершенно нереальным. Как видно на изображении ниже, я получаю 2 изображения сцены в 3-канальном изображении (всего 6 каналов). Каждое изображение составляет 1/4 от общей площади захвата, поэтому может показаться, что в потоковом режиме есть какие-то данные YUV.
Мне не удалось преобразовать эти данные во что-либо значимое, используя преобразования, предоставленные openCV. Любые идеи, какие данные отправляются и (что более важно), как преобразовать это в RGB?
РЕДАКТИРОВАТЬ
Как просили; codenippet, который используется для генерации изображения.
system("Bayer.exe 1 8"); //Sets the camera to raw mode
// set up camera
VideoCapture capture(0);
if(!capture.isOpened()){
waitKey();
exit(0);
}
Mat capturedFrame;
while(true){
capture>>capturedFrame;
imshow("Raw",capturedFrame);
waitKey(25);
}
Как вы получили кадры из потока, используя openCV? Можете ли вы поделиться некоторыми фрагментами кода? В openCV слишком много видеоформатов для получения правильного цветового канала и сжатых данных.
Я думаю, что вы должны быть в состоянии получить правильные рамки изображения, как указано здесь:
http://forum.openrobotino.org/archive/index.php/t-295.html?s=c33acb1fb91f5916080f8dfd687598ec
Скорее всего, это произойдет, если формат выходных данных (ширина, высота, битовая глубина, количество каналов …) камеры и формат данных, ожидаемый вашей программой, отличаются.
Однако я мог захватить камеру Logitec Pro, просто используя
Mat img;
VideoCapture cap(0);
cap >> img;