我正在为教育目的实施哈里斯角检测器,但我被困在哈里斯响应部分。基本上,我正在做的是:
- 计算 x 和 y 方向的图像强度梯度
- (1) 的模糊输出
- 根据 (2) 的输出计算 Harris 响应
- 在 3x3 邻域和阈值输出中抑制 (3) 输出中的非最大值
1 和 2 似乎工作正常;但是,作为 Harris 响应,我得到的值非常小,并且没有任何点达到阈值。输入是标准的户外摄影。
[...]
[Ix, Iy] = intensityGradients(img);
g = fspecial('gaussian');
Ix = imfilter(Ix, g);
Iy = imfilter(Iy, g);
H = harrisResponse(Ix, Iy);
[...]
function K = harrisResponse(Ix, Iy)
max = 0;
[sy, sx] = size(Ix);
K = zeros(sy, sx);
for i = 1:sx,
for j = 1:sy,
H = [Ix(j,i) * Ix(j,i), Ix(j,i) * Iy(j,i)
Ix(j,i) * Iy(j,i), Iy(j,i) * Iy(j,i)];
K(j,i) = det(H) / trace(H);
if K(j,i) > max,
max = K(j,i);
end
end
end
max
end
对于示例图片,max 最终为 6.4163e-018,这似乎太低了。