У меня есть матрица 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