長方形の画像(JPG​)をレターボックス処​理を行い正方形にした​いのですが、可能でし​ょうか?

 채택된 답변

Atsushi Ueno
Atsushi Ueno 2022년 1월 5일

2 개 추천

入力画像の幅・高さの内大きい方のサイズに合わせた正方形の黒い画像の中央に元画像をコピーします。
I = imread('peppers.png');
sz = size(I); % 画像の幅・高さ・色数を取得
mx = max(sz(1:2));
LtBx = uint8(zeros(mx,mx,3)); % 幅・高さの大きい方に合わせた正方形の黒画像
if sz(1) < mx % 元画像が横長の場合
top = floor((mx-sz(1)) / 2);
LtBx(top:top+sz(1)-1,:,:) = I; % 黒画像の中央に元画像をコピー
else % 元画像が縦長の場合
left = floor((mx-sz(2)) / 2);
LtBx(:,left:left+sz(2)-1,:) = I; % 黒画像の中央に元画像をコピー
end
imshow(LtBx);

댓글 수: 1

隆人 山田
隆人 山田 2022년 1월 5일
できました!!
これで卒業研究が捗ります
本当にありがとうございました!!

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

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Read, Write, and Modify Image에 대해 자세히 알아보기

질문:

2022년 1월 5일

댓글:

2022년 1월 5일

Community Treasure Hunt

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

Start Hunting!