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

18 views (last 30 days)
宗樹 岡本
宗樹 岡本 on 5 Jun 2023
Commented: 宗樹 岡本 on 6 Jun 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のサイズの画像が作製されてしまいした。
この問題を解決したいです。ご教授よろしくお願いいたします。

Accepted Answer

Atsushi Ueno
Atsushi Ueno on 5 Jun 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 Comment
宗樹 岡本
宗樹 岡本 on 6 Jun 2023
ご教授ありがとうございました。非常に勉強になります。

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!