我已經使用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」,但它會使圖像變形或拉伸,這意味着它會產生不成比例的結果。 ||你有什麼建議嗎?感謝您的迴應。 –
如果您使用'imresize'只使用圖像參數和標量(而不是2元素矢量),則寬高比將保持不變。你只關心寬高比,還是你希望字母的大小相互正確? (例如,在你的例子中,'部分'不填充他們的框,這是故意的嗎? –