元の行列と同じサイズでjpeg画像を保存することはできますか?
Mostrar comentarios más antiguos
test(214×407×3 uint8)をimshowで表示して、同じサイズ(214×407)の画像を保存することは可能ですか?
下記のコードでは、保存した画像が334×636で、元の行列と異なってしまいました。また、余白はなしで保存したいです。保存後に、画像を呼び出して、元とサイズ・値が同じ行列を得たいです。
何かご存じのことありましたら、ご教示いただきたいです。よろしくお願いいたします。
fig=figure;
imshow(test,'Border','tight');
path_jpeg = 'C:\Users\...\';
filename_jpeg = [path_jpeg,num2str(i)];
saveas(fig,filename_jpeg,'jpeg')
2 comentarios
「なぜ質問の方法では目的通りにならないのか」原因が分かったら回答に記入致します。
load('test.mat');
path_jpeg = '.';
filename_jpeg = [path_jpeg,filesep,num2str(1),'.jpeg'];
imwrite(test,filename_jpeg,'jpeg');
test2 = imread(filename_jpeg); % saveas 関数ではなくimwrite 関数を使う
size(test) == size(test2) % イメージデータのサイズは一致した
imshow(double(test == test2)); % 見た目は同じだが、イメージデータは完全に一致しない
Hiroshi Iwamura
el 21 de Oct. de 2023
saveas() は表示されたfigureの保存に使います。
ボーダーや、colorbarが表示されていればそれごと保存されますので、イメージ部分より大きくなります。
Uenoさんが示されたとおり、イメージ行列のみの保存にはimwrite()を使ってください。
Respuesta aceptada
Más respuestas (0)
Categorías
Más información sobre Convert Image Type en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!