0

これはどういうわけかコードエラーおよび開発とは関係ないと思われますが インテグラルイメージとローカルバイナリのこれらのコードを理解できるかどうかを知りたいどのように結果のヒストグラムに影響するかを教えてください。インテグラルイメージがローカルバイナリパターンまたは中央対称ローカルバイナリパターンの結果にどのように影響するか

積分画像を使用する前に出力ヒストグラムは正常ですが、積分画像法を適用した後、ほとんどのヒストグラムがゼロに変更されました。事を明確にするために、積分画像を使用することによる期待される利点は、lbpの方法の処理を高速化することである。実際に、私はこれを初めて試しているので、これを見たことはありません。これについて知っている人は誰でも私を喜ばせるでしょうか?

これらは、すべてのメソッドのコードである:

積分画像

function [outimg] = integral(image) 
[y,x] = size(image); 
outimg = zeros(y+1,x+1); 
disp(y); 
for a = 1:y+1 
    for b = 1:x+1 
     rx = b-1; 
     ry = a-1; 
     while ry>=1 
      while rx>=1 
       outimg(a,b) = outimg(a,b)+image(ry,rx); 
       rx = rx-1; 
      end 
      rx = b-1; 
      ry = ry-1; 
     end 
     % outimg(a,b) = outimg(a,b)-image(a,b); 
    end 
end 
% outimg(1,1) = image(1,1); 
disp('end loop'); 
end 

CS-LBP

function h = CSLBP(I) 
%% this function takes patch or image as input and return Histogram of 
%% CSLBP operator. 
h = zeros(1,16); 
[y,x] = size(I); 
T = 0.1; % threshold given by authors in their paper 
for i = 2:y-1 
    for j = 2:x-1 
     % keeping I(j,i) as center we compute CSLBP 
     % N0 - N4 
     a = ((I(i,j+1) - I(i, j-1) > T) * 2^0);   
     b = ((I(i+1,j+1) - I(i-1, j-1) > T) * 2^1); 
     c = ((I(i+1,j) - I(i-1, j) > T) * 2^2); 
     d = ((I(i+1,j-1) - I(i - 1, j + 1) > T) * 2^3); 
     e = a+b+c+d; 
     h(e+1) = h(e+1) + 1; 
    end 
end 
end 

答えて

1

MATLABは、積分画像を作成するための内蔵機能を有するintegralimage() 。コンピュータビジョンシステムツールボックスを使用したくない場合は、同じ結果を得るには、

IntIm = cumsum(cumsum(double(I)),2); 

必要に応じてパディングを追加することがあります。画像が飽和していないことを確認する必要があります。累積合計を計算すると、uint8とuint16の範囲を上回る整数値に素早く移行します。

関連する問題