.tif を matlab に保存しようとしています。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);
ここでも同じ問題があり、コントラストが上がり、画像が台無しになります。私がグレースケールで作業している写真。これらの写真を台無しにせずに保存する方法はありますか?