Я пытаюсь обработать каждый кадр в паре видеофайлов в OpenCV, а затем записать полученные кадры в выходной avi-файл. Все работает, за исключением того, что выходной видеофайл выглядит странно: вместо одного сплошного изображения изображение повторяется три раза и сжимается по горизонтали, поэтому все три копии помещаются в окне. Я подозреваю, что с числом каналов, которые ожидает писатель, что-то идет не так, но я даю для записи 8-битные одноканальные изображения. Ниже приведены настройки, с помощью которых я инициализирую мой видеоверритель:
//Initialize the video writer
CvVideoWriter *writer = cvCreateVideoWriter("out.avi",CV_FOURCC('D','I','V','X'), 30, frame_sizeL, 0);
Кто-нибудь сталкивался с этим странным выводом из видеовысота openCV раньше? Я проверял полученные кадры с помощью cvSaveImage, чтобы посмотреть, как-то на моем шаге обработки создается «утроенное» изображение, но это не так. Только когда я записываю AVI с помощью cvWriteFrame, изображение «утраивается» и сжимается.
Edit: Итак, я обнаружил, что это происходит только тогда, когда я пытаюсь записать одноканальные изображения, используя рамку записи. Если я пишу 3-канальные 8-битные RGB-изображения, выходное видео получается нормально. Почему он это делает? Я правильно передаю «0» для аргумента цвета при инициализации CvVideoWriter, поэтому он должен ожидать одноканальные изображения.