本文主要是根据分析一份matlab代码PHOG特征生成的demo得到的,作为总结便于以后使用。
if sum(sum(G))>100
E = edge(G,'canny');
[GradientX,GradientY] = gradient(double(G));
GradientYY = gradient(GradientY);
Gr = sqrt((GradientX.*GradientX)+(GradientY.*GradientY));
index = GradientX == 0;
GradientX(index) = 1e-5;
YX = GradientY./GradientX;
if angle == 180, A = ((atan(YX)+(pi/2))*180)/pi; end
if angle == 360, A = ((atan2(GradientY,GradientX)+pi)*180)/pi; end
[bh bv] = anna_binMatrix(A,E,Gr,angle,bin);
else
bh = zeros(size(I,1),size(I,2));
bv = zeros(size(I,1),size(I,2));
end
首先需要说明的是G是一幅灰度图,将灰度图看做矩阵进行统计,看看是否有足够的像素产生梯度信息,如果小于100的话,表明整个图像接近于是一幅完全的黑色图像。经过上面的比较之后,再对图像进行canny轮廓处理,得到的图像为0-1二值图像(至于其用处在后面介绍)。紧跟其后