我正在尝试在 matlab 中保存一个 .tif。imwrite 不支持直接为 .tif 写 int16,但是可以将我的图片投到 uint16 并使用 imwrite。
imageName='someimage.tif';
info=imfinfo(imageName);
num_images=numel(info);
x_size=info(1).Width;
y_size=info(1).Height;
result=zeros(y_size, x_size, num_images, 'uint16');
for i=1:num_images
result(:,:,i) = im2uint16(imread(imageName,i,'Info',info));
end
imwrite(result(:,:,i), 'newimage.tif');
for i=2:num_images,
imwrite(result(:,:,i), 'newimage.tif', 'WriteMode', 'append');
end
当我这样做时,对比度似乎以某种方式增加,而我希望图片是相同的。
其次,我尝试使用它如下
imageName='someimage.tif';
info=imfinfo(imageName);
num_images=numel(info);
x_size=info(1).Width;
y_size=info(1).Height;
result=zeros(y_size, x_size, num_images, 'int16');
for i=1:num_images
result(:,:,i) = imread(imageName,i,'Info',info);
end
options.message=true;
saveastiff(result, 'newimage.tif', options);
我在这里有同样的问题,对比度上升,它破坏了画面。我正在处理灰度的图片。有没有办法保存这些图片而不破坏它?