画像を指定したサイズにトリミング

19 vues (au cours des 30 derniers jours)
宗樹 岡本
宗樹 岡本 le 5 Juin 2023
Commenté : 宗樹 岡本 le 6 Juin 2023
I = imread("a.jpg");
h1 = drawrectangle('Position',[988,0.500000000000171,3999,3999]);
roi1 = h1.Position;
imgtriming= imcrop(img,roi1);
figure;imshow(imgtriming,"Border","tight");
print(指定したフォルダ)
指定したサイズにトリミングした画像をフォルダ内に保存したいです。 [ファイル] メニューの [名前を付けて保存] ダイアログ ボックスで得られる結果と同様のものをプログラムによって作りたいと考えています。
現状↓
上記のコードを使って指定した範囲内を4000×4000にトリミングします。その後printによって作製した画像をフォルダ内に保存します。
しかし,printで保存した場合余計な余白ができてしまいました。この問題を解決するためにimshowのオプションBorder","tight"で余白を消しましたが、今度は4000×4000のサイズの画像が拡大されて余白を含めた7000×7000のサイズの画像が作製されてしまいした。
この問題を解決したいです。ご教授よろしくお願いいたします。

Réponse acceptée

Atsushi Ueno
Atsushi Ueno le 5 Juin 2023
>この問題を解決したいです ⇒ 余白の問題は、imwrite関数やexportgraphics関数を使う事で解消します。
I = imread("a.jpg"); imshow(I); % imshowを追加
h1 = drawrectangle('Position',[988,0.500000000000171,3999,3999]);
roi1 = h1.Position;
imgtriming= imcrop(img,roi1);
figure;imshow(imgtriming,"Border","tight");
[file,path] = uiputfile % [名前を付けて保存] ダイアログ ボックスと同様
imwrite(imgtriming,[path filesep file]); % print(指定したフォルダ)
  1 commentaire
宗樹 岡本
宗樹 岡本 le 6 Juin 2023
ご教授ありがとうございました。非常に勉強になります。

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!