Image MATLAB中的图像处理代码(角点检测)

Image MATLAB中的图像处理代码(角点检测),image,matlab,Image,Matlab,我想知道这行代码是如何工作的 corners = (m==n)&(n>threshold); 这是我正在使用的一段代码,我想理解它。基本上,m和n都是大小相等的图像,“阈值”是一个十进制值 为了理解上下文,下面是一段代码 % compute the m cornerness measure m = (ix2s.*iy2s - ixys.^2) - 0.04*(ix2s+iy2s).^2; % perform non-maximal suppression using ordfi

我想知道这行代码是如何工作的

corners = (m==n)&(n>threshold);
这是我正在使用的一段代码,我想理解它。基本上,m和n都是大小相等的图像,“阈值”是一个十进制值

为了理解上下文,下面是一段代码

% compute the m cornerness measure
m = (ix2s.*iy2s - ixys.^2) - 0.04*(ix2s+iy2s).^2;

% perform non-maximal suppression using ordfilt2
n = ordfilt2(m, radius^2, ones([radius radius]));

% display corner spots
corners = (m==n)&(n>threshold);

% superimpose corners
Q = corners+im;
Q(Q>1) = 1;
C = repmat(im,[1 1 3]);
C(:,:,1) = Q;

如果我理解正确,n是附近m的最大值(“转角测量”),因此该线表示“如果m是局部最大值且足够大(大于阈值),那么这可能是一个角”,可以说它更容易理解为:

corners = (m==n)&(m>threshold);

如果我理解正确,n是附近m的最大值(“转角测量”),因此该线表示“如果m是局部最大值且足够大(大于阈值),那么这可能是一个角”,可以说它更容易理解为:

corners = (m==n)&(m>threshold);

你应该多读一点。摘自维基百科:


此行是上述功能的实现。它用于检测角点。

您应该了解更多有关角点的信息。摘自维基百科:


此行是上述功能的实现。它用于检测角点。

因此,为了分解它,m==n检查数组中每个插槽m(:,:)和n(:,:)中的m是否与n相等,如果为真,则标记1。这只会发生在局部最大值,因为这是n相对于m的定义。然后检查等效值是否大于阈值,如果该值也为真,则在拐角处返回1。以上是正确的吗?关于角的尺寸,MATLAB会自动给出m和n的尺寸,对吗?如果m和n是不同的值呢?我猜这句话是无效的?如果我理解正确,你的解释是正确的。程序在第一行计算m,在第二行计算n,外部参数是半径(局部区域的大小)和阈值(或多或少-我们在误报和误报之间的偏好水平)。因此,为了分解它,m==n检查数组中每个插槽m(:,:)和n(:,:)中的m是否与n相等,如果为真,则标记1。这只会发生在局部最大值,因为这是n相对于m的定义。然后检查等效值是否大于阈值,如果该值也为真,则在拐角处返回1。以上是正确的吗?关于角的尺寸,MATLAB会自动给出m和n的尺寸,对吗?如果m和n是不同的值呢?我猜这句话是无效的?如果我理解正确,你的解释是正确的。程序在第一行计算m,在第二行计算n,外部参数是半径(局部区域的大小)和阈值(或多或少-我们在假阳性和假阴性之间的偏好水平)。