画像をパディングし正方形にする方法

深層学習によるX線画像の二値分類を行なっております。
様々なサイズのX線画像があり、全ての画像を長径の長さの正方形にゼロパディングした後、224×224に縮小したいです。
何か方法はありますでしょうか。

 採用された回答

Akira Agata
Akira Agata 2022 年 10 月 6 日
編集済み: Akira Agata 2022 年 10 月 6 日

1 投票

関数 padarray を使って、以下のようにする方法はいかがでしょうか?
% サンプル画像 (1000×200ピクセル)
I_in = randi(255, [1000 200], "uint8");
% 縦横のピクセル数とその差を取得
sz = size(I_in);
d = abs(diff(sz));
% 縦横のうち短いほうに対して、両側に d/2 だけゼロパディング(※)
if sz(1) < sz(2)
I_pad = padarray(I_in, [round(d/2), 0], 0, "both");
else
I_pad = padarray(I_in, [0, round(d/2)], 0, "both");
end
% 全体を 224×224 にリサイズ
I_out = imresize(I_pad, [224, 224]);
※厳密には、縦横のピクセル数の差が奇数の場合にはどちらか片側のパディング幅を round(d/2)-1 にする必要があります。

1 件のコメント

拓 青柳
拓 青柳 2022 年 10 月 19 日
上手くいきました!
ありがとうございます。

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeDeep Learning Toolbox についてさらに検索

製品

リリース

R2022b

質問済み:

2022 年 10 月 5 日

コメント済み:

2022 年 10 月 19 日

Community Treasure Hunt

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

Start Hunting!