我试图写一个多页(确切地说是1024页)来存档。
for frame=1:num_images
imwrite(output(:,:,frame), 'output.tif', 'tif', 'WriteMode', 'append', 'compression', 'none');
end
我试过这个,但imwrite不支持将int32写入tiff。 我也试过了
tiffObj = Tiff('output.tif', 'w');
tiffObj.setTag('ImageLength', x_size);
tiffObj.setTag('ImageWidth', y_size);
tiffObj.setTag('Photometric', Tiff.Photometric.MinIsBlack);
tiffObj.setTag('BitsPerSample', 32);
tiffObj.setTag('SamplesPerPixel', 1);
tiffObj.setTag('RowsPerStrip', 64);
tiffObj.setTag('SampleFormat', Tiff.SampleFormat.Int);
tiffObj.setTag('TileWidth', 128);
tiffObj.setTag('TileLength', 128);
tiffObj.setTag('Compression', Tiff.Compression.None);
tiffObj.setTag('PlanarConfiguration',Tiff.PlanarConfiguration.Chunky);
tiffObj.setTag('Software', 'MATLAB');
tiffObj.write(output);
tiffObj.close();
tif I imread()每帧有1个SamplesPerPixel,但是当我尝试使用相同的值时,我得到了
SamplesPerPixel为1,但提供的图像平面数为1204。
如果我将它设置为1204 Imagej抱怨
不支持的SamplesPerPixel:1204
这令人沮丧。
答案 0 :(得分:1)
将多个页面写入TIFF文件的正确方法是在写入每个页面(2D图像)之后调用Tiff.writeDirectory
。我同意,那里的MATLAB文档不是很清楚,知道LibTIFF有助于使用df2 = pd.DataFrame({'price': [Decimal(1.4334), Decimal(1.4335), Decimal(1.4336), Decimal(1.4337)], 'tpo_count': [1, 2, 3, 1], 'tpo': ['A', 'BC', 'BCD', 'D']})
print(df2.dtypes)
price object
tpo_count int64
tpo object
dtype: object
类。例如:
df2['price_float']=float(df2['price'])