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

조회 수: 7 (최근 30일)
宗樹 岡本
宗樹 岡本 2023년 6월 5일
댓글: 宗樹 岡本 2023년 6월 6일
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のサイズの画像が作製されてしまいした。
この問題を解決したいです。ご教授よろしくお願いいたします。

채택된 답변

Atsushi Ueno
Atsushi Ueno 2023년 6월 5일
>この問題を解決したいです ⇒ 余白の問題は、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
宗樹 岡本
宗樹 岡本 2023년 6월 6일
ご教授ありがとうございました。非常に勉強になります。

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Convert Image Type에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!