나는 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'를 사용하면 가로 세로 비율은 그대로 유지됩니다. 종횡비 만 신경 써야합니까? 아니면 문자가 올바른 크기가되도록 하시겠습니까? (예를 들어 귀하의 예에서 '부품'은 상자를 채우지 않습니다.) –