在MATLAB中将双矩阵保存为图像文件

时间:2018-05-23 21:29:18

标签: image matlab type-conversion png tiff

我有一个数据类型为double的矩阵sig_matrix,值如下:

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

0 个答案:

没有答案