我试图将使用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