【发布时间】:2023-03-18 23:35:06
【问题描述】:
我正在使用来自here 的 Harris 角点检测器代码。但是,最终输出“H”具有非常大的负值,最大值为 0。我最初将图像与两个 3x3 Sobel 掩码进行卷积以提取 Ix 和 Iy 矩阵。然后 Harris 角点检测器函数使用 Ix 和 Iy 矩阵计算 Harris
这是我的代码:
IxMask = [-1, 0, 1; -2, 0, 2; -1, 0, 1];
IyMask = [1, 2, 1; 0, 0, 0; -1, -2, -1];
Ix = conv2(double(imread('imageName.jpg')), IxMask);
Iy = conv2(double(imread('imageName.jpg')), IyMask);
A = Ix.^2;
B = Iy.^2;
C = (Ix.*Iy).^2;
lambda = 0.04;
H = (A.*B - C) - lambda*(A+B).^2;
H 矩阵的所有值都是负数,其中一些是极大的负数。有什么问题吗?如果是这样,我无法弄清楚我的代码有什么问题。你能帮我解决这个问题吗?
这是原图:
这是我的函数的输出,未在具有负值的 Ix 和 Iy 矩阵上应用任何高斯核:
这是函数在Ix 和Iy 矩阵上应用Sigma 1-3 的高斯核 后的输出。应用高斯核后,R 矩阵的最小值将为 0!!
然而,R 矩阵的值为负数,最大值为 0!
我完全不知道如何检测角落。我可能会注意到我没有 MATLAB 的计算机视觉工具箱。
【问题讨论】:
标签: matlab image-processing matrix computer-vision corner-detection