實際上,我有一個作業,它需要識別單獨的十進制數字作爲文本識別過程的一部分。我已經給出了一組數字的JPEG格式圖像。每個圖像的大小爲160 x 160像素。在檢查了一些資源後,我設法編寫了這段代碼,但是:用於簡單數字識別的KNN分類器
1)我不確定是否讀取圖像並在矩陣中調整它們的大小以保持它們是正確的。
2)假設我有30個火車數據圖像的數字[0-9]每個數字有三個圖像,我有10個圖像測試每個圖像只有一個數字。如何計算每個測試和火車之間的距離在一個循環?因爲在我的計算歐幾里得的代碼中,它給出了一個輸出零。
3)如何使用混淆矩陣計算精度?
% number of train data
Train = 30;
%number of test data
Test =10;
% to store my images
tData = uint8(zeros(160,160,30));
tTest = uint8(zeros(160,160,10));
for k=1:Test
s1='im-';
s2=num2str(k);
t = strcat('testy/im-',num2str(k),'.jpg');
im=rgb2gray(imread(t));
I=imresize(im,[160 160]);
tTest(:,:,k)=I;
%case testing if it belongs to zero
for l=1:3
ss1='zero-';
ss2=num2str(l);
t1 = strcat('data/zero-',num2str(l),'.jpg');
im1=rgb2gray(imread(t1));
I1=imresize(im1,[160 160]);
tData(:,:,l)=I1;
% Euclidean distance
distance= sqrt(sum(bsxfun(@minus, tData(:,:,k), tTest(:,:,l)).^2, 2));
[d,index] = sort(distance);
%k=3
% index_close(l) = index(l:3);
%x_close = I(index_close,:);
end
end
謝謝您的回答,但我只是想讓它不使用Knnclassify也是,我怎麼能調整我的圖像轉換成小的什麼都lab_train或lab_test? – Suzy