Сохранить двойную матрицу как файл изображения в MATLAB - PullRequest
0 голосов
/ 24 мая 2018

У меня есть матрица sig_matrix типа данных double, значения имеют вид:

3,0450  3,0450  3,0450
2,6200  2,6050  2,5900
2,5250  2,5200  2,5150
2,3800  2,3800  2,3650
2,6050  2,6650  2,7350

Мне нужно сохранить как файл изображения, но проблема заключается в следующем: типы изображений, такие как только jpg, pngпринимает целочисленные данные (uint8, uint16), но мне действительно нужно сохранить данные как двойные.

Я попытался сохранить как TIF-файл, используя следующий код:

t = Tiff('test.tif', 'w8');
setTag(t,'Photometric',Tiff.Photometric.RGB);
setTag(t,'ImageLength',length(sig_matrix));
setTag(t,'ImageWidth',length(sig_matrix));
setTag(t,'BitsPerSample',64);
setTag(t,'SamplesPerPixel',3);
setTag(t,'SampleFormat', 3);
setTag(t,'PlanarConfiguration',Tiff.PlanarConfiguration.Chunky);
setTag(t,'Compression',Tiff.Compression.None);
write(t,repmat(sig_matrix, [1 1 3]));
close(t);

Это сработало, но затем я попытался преобразовать этот файл в yuv (используя, например, ffmpeg), но получил ошибку (неверный заголовок TIFF, если быть более точным).

Итак, мне нужно сохранить двойную матрицу какфайл изображения, а затем преобразовать в yuv.

Кто-нибудь может мне помочь, пожалуйста?

Обс .: Я не могу использовать mat2gray или что-то в этом роде, потому что мне нужны эти конкретные двойные данные для преобразования в yuv

...