私はすでにpadarray(以下のコード)を使って正規化を行っていますが、次の処理(特徴抽出)の結果は十分ではありません。セグメント化されたパーツフィーチャではなく、パッドパーツを含むためです。分割された文字画像のサイズ正規化
は、私は、画像のみセグメント化された文字を正規化することが中心に置く必要がある、との二乗(それがすることになって[64 64])。また、画像を伸ばしたり歪ませたりせずにアスペクト比を保持する必要があるため、文字画像は比例した状態に保たれます。
% Normalization done using pad
function p = pad (im)
nrows = size(im,1);
ncols = size(im,2);
d = abs(ncols-nrows); % difference between ncols and nrows:
if(mod(d,2) == 1) % if difference is an odd number
if (ncols > nrows) % we add a row at the end
im = [im; zeros(1, ncols)];
nrows = nrows + 1;
else % we add a col at the end
im = [im zeros(nrows, 1)];
ncols = ncols + 1;
end
end
if ncols > nrows
im = padarray(im, [(ncols-nrows)/2 0]);
else
im = padarray(im, [0 (nrows-ncols)/2]);
end
im = imresize(im, [64 64]);
% figure, imshow (im);
p = (im);
% Here im is a 5x5 matix, not perfectly centered
% because we added an odd number of columns: 3
% Original code by Sembei Norimaki, modified by Ana
このコードの一部の変更は、まだ動作しません。だから、私はこのコードの変更やこの場合に推奨される方法の提案が必要です。
ご協力いただければ幸いです。ありがとうございました。
あなたが正確に何をしようとしているのかはまだ分かりません。画像をトリミングして、64x64のゼロ配列の中心にコピーしようとしていますか?あなたの画像はすべて64x64未満であることが保証されていますか? –
ゼロ配列にコピーするとどういう意味ですか?もっと説明できますか? ||私はアスペクト比を維持したまま、すべての画像を[64 64]に正規化(サイズ変更)する必要があります。 ||サイズは様々ですが、64x64より小さくて大きくなります。私は "imresize"を使うことができましたが、画像が歪んだり伸びたりすると、不均衡な結果が出ます。 ||提案はありますか?応答してくれてありがとう。 –
イメージ引数とスカラー(2要素ベクトルとは対照的に)だけをとる 'imresize'を使うと、アスペクト比は変わらないでしょう。あなたはアスペクト比だけを気にしますか、または文字をお互いに正しいサイズにしたいですか? (あなたの例では、「パーツ」はボックスを埋めるわけではありません)それは意図的なのですか? –