我正在尝试在 MATLAB 中执行本地二进制模式。LBP 工作正常,但我的结果问题是我想在 LBP 完全完成时获取这些零和一个,并将所有 0 和 1 放入行向量
我试图将所有 0 和 1 放入数组中,但 8 次会将所有 0 和 1 放入数组中 for 循环的原因。我使用的图像是 256x256,这意味着我应该得到 256 0 和 1,但现在我得到 2048,如果我们将 2048 除以 8,我们将得到 256,这意味着 8 次将把 0 和 1 放入 C 数组我希望现在更清楚
这是我的代码::::
C=[]; %%% this array collect all zeros and ones
for i=2:r-1
for j=2:c-1
if x(i,j)>x(i-1,j-1)
arr(1,1)=0;
else
arr(1,1)=1;
end
if x(i,j)>x(i-1,j)
arr(1,2)=0;
else
arr(1,2)=1;
end
if x(i,j)>x(i-1,j+1)
arr(1,3)=0;
else
arr(1,3)=1;
end
if x(i,j)>x(i,j+1)
arr(1,4)=0;
else
arr(1,4)=1;
end
if x(i,j)>x(i+1,j+1)
arr(1,5)=0;
else
arr(1,5)=1;
end
if x(i,j)>x(i+1,j)
arr(1,6)=0;
else
arr(1,6)=1;
end
if x(i,j)>x(i+1,j-1)
arr(1,7)=0;
else
arr(1,7)=1;
end
if x(i,j)>x(i,j-1)
arr(1,8)=0;
else
arr(1,8)=1;
end
%Convert Binary to Dec
newimg(i,j)=sum(arr.*2.^(numel(arr)-1:-1:0));
end
C=[C arr]; %% I think my problem with this line to putting zeros and one to C array
end
C