【发布时间】:2013-09-27 14:06:18
【问题描述】:
我正在尝试在 MATLAB 中执行本地二进制模式。 LBP 工作正常,但我的结果问题是我想在 LBP 完全完成时获取这些零和一个,并将所有 0 和 1 放入行向量
我尝试将所有 0 和 1 放入数组,但 8 次会将所有 0 和 1 放入数组中,因为 for 循环。 我使用的图像是 256x256,这意味着我应该得到 256 0 和 1,但现在我得到 2048,如果我们将 2048 除以 8,我们将得到 256,这意味着 8 次会将 0and1 放入 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
【问题讨论】:
-
您可以随时编辑您的原始问题...我仍然对此感到困惑,但我认为其他人也许可以帮助您...
-
好的,但如果你在第二个结束循环之前看到我的代码,我写了注意我向 C 数组添加值的问题
-
我尝试了一个答案,看看我是否理解:)
标签: matlab image-processing computer-vision