image - 在 MATLAB 中将双矩阵保存为图像文件
问题描述
我有一个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),但我确实需要将数据保存为double。
我尝试使用以下代码另存为 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。
任何人都可以帮助我吗?
Obs.:我不能使用mat2gray
或类似的东西,因为我需要特定的双精度数据才能转换为 yuv