我試圖將使用LBP提取的所有圖像的特徵存儲在矩陣中。
但它給我這個錯誤:將特徵提取數據存儲在矩陣中時的尺寸不匹配錯誤
Subscripted assignment dimension mismatch.
Error in fe1 (line 10) A(i, :) = LBP(img);
這裏是我的代碼:
fe.m
clc;
clear all;
pat = 'D:/modified database';
Angry = dir([pat '/anger']);
Andry = Angry(3:end);
A = zeros(255, length(Andry));
for i = 1:length(Andry)
img = imread(Andry(i).name);
A(:, i) = LBP(img);
end
display(A);
LBP.m
function LBP0 = LBP(I)
I = imresize(I, [256,256]);
I = rgb2gray(I);
m = size(I,1);
n = size(I,2);
for i = 2:m-1
for j = 2:n-1
J0 = I(i,j);
I3(i-1,j-1) = I(i-1,j-1)>J0;
I3(i-1,j) = I(i-1,j)>J0;
I3(i-1,j+1) = I(i-1,j+1)>J0;
I3(i,j+1) = I(i,j+1)>J0;
I3(i+1,j+1) = I(i+1,j+1)>J0;
I3(i+1,j) = I(i+1,j)>J0;
I3(i+1,j-1) = I(i+1,j-1)>J0;
I3(i,j-1) = I(i,j-1)>J0;
LBP0(i,j) = I3(i-1,j-1)*2^7 + I3(i-1,j)*2^6 + I3(i-1,j+1)*2^5 + I3(i,j+1)*2^4 + I3(i+1,j+1)*2^3+I3(i+1,j)*2^2 + I3(i+1,j-1)*2^1 + I3(i,j-1)*2^0;
end
end
end
我認爲有一些問題與矩陣A的尺寸。
請幫我編碼。
謝謝。 :)
我仍然得到相同的錯誤在線A(:,:,i)= LBP(img); – Tejashree
所有圖像的LBP輸出尺寸是否必須相同? – Tejashree
如果大小不同,可以使用單元陣列而不是3D矩陣。 – Rotem