質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MATLAB

MATLABはMathWorksで開発された数値計算や数値の視覚化のための高水準の対話型プログラミング環境です。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Q&A

解決済

1回答

1651閲覧

MATLABで画像に余白を加えたい

KyosukeSato

総合スコア13

MATLAB

MATLABはMathWorksで開発された数値計算や数値の視覚化のための高水準の対話型プログラミング環境です。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

0グッド

1クリップ

投稿2017/11/20 06:24

編集2017/11/22 09:02

MATLABで文字認識の勉強をしています。
CNNを用いて文字認識を行っていますが、画像の正規化について悩んでいます。

全ての文字画像の文字のアスペクト比は変えずに、画像サイズを統一したいです。

例えば50×150サイズの文字画像を30×30サイズにするとして、文字のアスペクト比はそのままにして30×30にしたいです。
そこでまず50×150の画像を10×30に縮小し、この画像の両サイドに10×30の余白を追加して30×30の画像を作ります。
このような処理をすべての画像に対し行い、文字のアスペクト比を変えずに画像サイズを統一したいと考えています。

このような処理をしたいのですが余白を追加する方法がわかりません。わかる方回答をお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

単純ですが、サイズ拡張後の画像サイズ分の白画像を用意し、希望の位置に元画像の画素値を割り当てるのはいかがでしょうか。

MATLAB

1% 縮小済み画像の読み込み 2src_img = imread('lena_gray.png'); 3imshow(src_img) 4 5% 拡張後のサイズ 6dst_siz_x = 300; 7dst_siz_y = 500; 8 9% 縮小後に画像を配置する位置を計算 10src_siz = size(src_img); 11s_pos_x = floor((dst_siz_x - src_siz(1)) / 2); 12s_pos_y = floor((dst_siz_y - src_siz(2)) / 2); 13e_pos_x = s_pos_x + src_siz(1) - 1; 14e_pos_y = s_pos_y + src_siz(2) - 1; 15 16% 拡張画像の初期化 17dst_img = ones(dst_siz_x, dst_siz_y, 'uint8') * 255; 18% 画素割り当て 19dst_img(s_pos_x:e_pos_x, s_pos_y:e_pos_y) = src_img; 20 21figure 22imshow(dst_img)

ただし上記のコードは、以下の仮定のもとでざっくり組んだものです。

  • 元画像は0 - 255のグレースケール
  • 必ず拡張の方向(src_siz < dst_siz)
  • 余白は画像の周りに配置

投稿2017/11/24 07:22

yhmr

総合スコア53

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KyosukeSato

2017/11/27 09:41

解決しました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問