Я захвата изображения с помощью OpenCV в C ++
firstFrame = cvQueryFrame(capture);
легко установить свойства ширины и высоты
cvSetCaptureProperty( capture, CV_CAP_PROP_FRAME_WIDTH, WIDTH );
cvSetCaptureProperty( capture, CV_CAP_PROP_FRAME_HEIGHT, HEIGHT );
Интересно, есть ли способ указать глубину цвета также без дальнейшей обработки рамки?
Согласно документация, Вы должны быть в состоянии сделать это с помощью CV_CAP_PROP_FORMAT
если вы используете функцию retrive()
чтобы получить ваш кадр.
CV_CAP_PROP_FORMAT Формат объектов Mat, возвращаемых функцией retrieve ().
Однако обратите внимание также на то, что:
При запросе свойства, которое не поддерживается серверной частью, используемой
класс VideoCapture, значение 0 возвращается.
Создали отдельную ветку на github с изменениями в videoio для поддержки пользовательских потоков & форматы.
Ссылка на репозиторий Git Hub
https://github.com/shawndfernandes/opencv
Добавлена поддержка пользовательского потока & глубина для захвата OpenCV, возвращается к значениям OpenCV по умолчанию, если не установлен.
Установить с помощью VideoWriter :: set method
CV_CAP_PROP_DEPTH
matrix_depth = 8,16 // * для 8U и 16 для глубины 16U
CV_CAP_PROP_STREAM
stream_format = 1,2,3,4,5… 12; // выбираем необработанный поток с камеры через V4L
«BGR24» 1:
«YVU420» 2:
«YUV411P» 3:
«MJPEG» 4:
«JPEG» 5:
«ЮЙВ» 6:
«УЙВЫ» 7:
«SN9C10X» 8:
«SBGGR8» 9:
«SGBRG8» 10:
«RGB24» 11:
«Y16» 12: