0

Ich weiß, dass dies irgendwie nicht auf Code-Fehler und Entwicklung, aber Ich möchte wissen, ob jemand diese Codes von Integral-Bild und lokale Binär verstehen kann Muster, und sagen Sie mir, wie sie die resultierenden Histogramme beeinflussen.Wie integrales Bild das Ergebnis von lokalen Binärmuster oder zentrumsymmetrischen lokalen Binärmuster beeinflussen

Vor der Verwendung des Integralbildes ist das Ausgabehistogramm normal, aber nach Anwendung der Integralbildmethode habe ich festgestellt, dass der größte Teil des Histogramms in Nullen geändert wurde. Um die Dinge zu verdeutlichen, besteht der erwartete Nutzen aus der Verwendung eines integralen Bildes darin, den Prozess der lbp Methode zu beschleunigen. In der Tat habe ich das vorher nicht gesehen, weil ich es zum ersten Mal versuche. Kann mir jemand, der sich darüber im Klaren ist, bitte helfen?

Dies sind die Codes der einzelnen Methode:

integrales Bild

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 

Antwort

1

Matlab zum Erstellen integrale Bilder, eine eingebaute Funktion hat integralimage() . Wenn Sie nicht über den Computer-Vision-System Toolbox nutzen möchten, können Sie das gleiche Ergebnis durch den Aufruf erreichen:

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

Möglicherweise Polsterung Zugabe, wenn nötig. Sie sollten überprüfen, dass das Bild nicht gesättigt ist, tun sie das manchmal. Die Berechnung der kumulativen Summe geht ganz schnell über den Bereich von uint8 und uint16 hinaus, ich hatte sogar einmal ein Double!

Verwandte Themen