0

MATLAB でローカル バイナリ パターンを実行しようとしています。LBP は正常に動作していますが、結果の問題により、LBP が完全に終了したときにこれらのゼロと 1 を取得し、すべての 0 と 1 を行ベクトルに入れたいと考えています。

0 と 1 をすべて配列に入れようとしましたが、8 回では 0 と 1 をすべて配列に入れます for ループの原因。私が使用した私のイメージは 256x256 です。つまり、256 0 と 1 を取得する必要がありますが、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
4

1 に答える 1

0

すべてのピクセルのバイナリ シーケンスを に格納する場合はC、次のようにステートメントを 2 つのループ内に配置します。

C=zeros(8,254*254);   %%% this array collect all zeros and ones 
for i=2:r-1
    for j=2:c-1

     % ... if conditions here...

        %Convert Binary to Dec
        newimg(i,j)=sum(arr.*2.^(numel(arr)-1:-1:0));  


       C(:,j-1+(i-2)*254) = arr(:);

    end    
end

256 x 256 ではなく 254 x 254 になることに注意してください (ループの範囲を見てくださいC) 。

Cデータを列ごとに、ピクセルごとに1列格納するように設定しました

于 2013-09-22T17:28:44.323 に答える