How to calculate and visualize HOG Feature in MatLab?
    5 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
Hello, I'm working with HOG features to extracte the features of a hand posture image, and I want to implemente the method of HOG without using the function of "extractHOGFeatures" and there is the code of my method :
if true
  % code
function [ feature] = HOG( im )
%HOG Summary of this function goes here
%Detailed explanation goes here
r=size(im,1);
c=size(im,2);
if size(im,3)==3
  im=rgb2gray(im);
end
%im=double(im);
hx = [-1,0,1];
hy = [1;0;-1];
grad_xr = imfilter((im),hx,'conv');
grad_yu = imfilter((im),hy,'conv');
teta=atan2(double(grad_yu),double(grad_xr));
magnit=sqrt(double((grad_yu.^2)+(grad_xr.^2)));
angle=imadd(teta,90); %(0,180)
feature=[]
%itération par block
for i=0 : r/8-2
  for j=0:c/8-2
      mag_Block=magnit(8*i+1:8*i+16, 8*j+1:8*j+16)
      angle_Block=angle(8*i+1:8*i+16,8*j+1:8*j+16)
      block_feature=[];
      %itérarions par cell
      for x=0:1
          for y=0:1
              mag_Cell=mag_Block(8*x+1:8*x+8,8*y+1:8*y+8)
              angle_Cell=angle_Block(8*x+1:8*x+8,8*y+1:8*y+8)
               % hold on
               % quiver(x,y, angle_Cell(x+1),angle_Cell(y+1))
                H=zeros(1,9)
                %itérations par pixels dans la même cellule
                for p=1:8
                    for q=1:8
                        angle_Pixel=angle_Cell(p,q)
                        if angle_Pixel>0 && angle_Pixel<=10
                            H(1)=H(1)+ mag_Cell(p,q)*(angle_Pixel+10)/20;
                            H(9)=H(9)+ mag_Cell(p,q)*(10-angle_Pixel)/20;
                        elseif angle_Pixel>10 && angle_Pixel<=30
                            H(1)=H(1)+ mag_Cell(p,q)*(30-angle_Pixel)/20;
                            H(2)=H(2)+ mag_Cell(p,q)*(angle_Pixel-10)/20;
                        elseif angle_Pixel>30 && angle_Pixel<=50
                           H(2)=H(2)+ mag_Cell(p,q)*(50-angle_Pixel)/20;                 
                           H(3)=H(3)+ mag_Cell(p,q)*(angle_Pixel-30)/20;
                        elseif angle_Pixel>50 && angle_Pixel<=70
                           H(3)=H(3)+ mag_Cell(p,q)*(70-angle_Pixel)/20;
                           H(4)=H(4)+ mag_Cell(p,q)*(angle_Pixel-50)/20;
                        elseif angle_Pixel>70 && angle_Pixel<=90
                           H(4)=H(4)+ mag_Cell(p,q)*(90-angle_Pixel)/20;
                           H(5)=H(5)+ mag_Cell(p,q)*(angle_Pixel-70)/20;    
                        elseif angle_Pixel>90 && angle_Pixel<=110
                           H(5)=H(5)+ mag_Cell(p,q)*(110-angle_Pixel)/20;
                           H(6)=H(6)+ mag_Cell(p,q)*(angle_Pixel-90)/20;
                        elseif angle_Pixel>110 && angle_Pixel<=130
                           H(6)=H(6)+ mag_Cell(p,q)*(130-angle_Pixel)/20;
                           H(7)=H(7)+ mag_Cell(p,q)*(angle_Pixel-110)/20;
                        elseif angle_Pixel>130 && angle_Pixel<=150
                           H(7)=H(7)+ mag_Cell(p,q)*(150-angle_Pixel)/20;
                           H(8)=H(8)+ mag_Cell(p,q)*(angle_Pixel-130)/20;
                        elseif angle_Pixel>150 && angle_Pixel<=170
                           H(8)=H(8)+ mag_Cell(p,q)*(170-angle_Pixel)/20;
                           H(9)=H(9)+ mag_Cell(p,q)*(angle_Pixel-150)/20;
                        end
                    end
                end
                block_feature=[ block_feature H];
            end
        end
         block_feature= sqrt(block_feature./(norm(block_feature))^2+0.001)
         feature=[ feature block_feature ];
    end
end
end
end
My problem is that my function doesn't have the same value of features vector (results) like the function "extractHOGFeatures" and the other problem that I don't know how to visualize the HOG features without using "extractHOGFeatures" function. I will be thankful if some one help me :)
0 comentarios
Respuestas (0)
Ver también
Categorías
				Más información sobre Statistics and Machine Learning Toolbox en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!