私は教育目的でハリスコーナー検出器を実装していますが、ハリス応答部分で立ち往生しています。基本的に、私がしていることは次のとおりです。
- x方向とy方向の画像強度勾配を計算します
- (1)のぼかし出力
- (2)の出力に対するハリス応答を計算します
- 3x3近傍およびしきい値出力で(3)の出力の非最大値を抑制します
1と2は正常に機能しているようです。ただし、ハリスの応答として非常に小さい値を取得し、しきい値に達するポイントはありません。入力は標準的な屋外写真です。
[...]
[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
サンプル画像の場合、最大値は6.4163e-018になり、低すぎるように見えます。