Используя fwrite, хотите пропустить запись трех элементов в A между каждой записью - PullRequest
0 голосов
/ 16 декабря 2010

Итак, я делаю некоторую обработку изображения в MATLAB и пытаюсь сохранить файл в формате y4m с цветовым пространством 4: 2: 0.

По сути, я хочуиспользовать fwrite, но я хочу иметь возможность пропустить определенное количество элементов в векторе, который пишет.Есть ли простой способ сделать это?

Ответы [ 2 ]

0 голосов
/ 16 декабря 2010

Для этого уже есть инструменты .

Если вы настаиваете на том, чтобы что-то делать самостоятельно (я так и делаю, так как не могу не платить за отдельные наборы инструментов), вы всегда можете создать новый вектор, содержащий только те элементы, которые вам нужно написать. Предполагая, что у вас есть YUV 4: 4: 4, и вы хотите записать его как YUV 4: 2: 0:

  • Разделить yuv444 на отдельные компоненты Y ', Cb, Cr
  • Напишите Y' как есть, используя fwrite
  • Downsample Cb и Cr в два раза, чтобы получить Cb_down и Cr_down
  • Запись Cb_down и Cr_down с использованием fwrite в тот же дескриптор открытого файла
0 голосов
/ 16 декабря 2010

Логическое индексирование из ' Стив об обработке изображений ' может быть хорошим началом для вашей цели.

...