在代码中,错误提示是关于索引的冒号运算符的问题。具体来说,错误发生在以下这行代码:

edgeStrength(y, x) = bilinear_interpolation(subpixelX, subpixelY, edgeImg(y1:y2, x1:x2));

问题出在索引 edgeImg(y1:y2, x1:x2) 上。根据错误提示,冒号运算符的端点或增量不是有限的。这是因为在计算 subpixelXsubpixelY 时,使用了 floor 函数来取整。然后在计算 x1x2y1y2 时,又使用了 floor 函数。这导致了 x1x2y1y2 的值可能是非整数的,从而导致了索引的错误。

要解决这个问题,你可以尝试使用 round 函数来取整,而不是 floor 函数。修改以下这些行代码:

subpixelX = floor(x - dx / (2*dx - dx));
subpixelY = floor(y - dy / (2*dy - dy));

为:

subpixelX = round(x - dx / (2*dx - dx));
subpixelY = round(y - dy / (2*dy - dy));

这样,x1x2y1y2 的值就会是整数,从而避免了索引错误。

matlab中此段代码错误提示为: yaxiangsutiqu索引中的冒号运算符的非有限端点或增量。出错 subpixel_edge 第 31 行 edgeStrengthy x = bilinear_interpolationsubpixelX subpixelY edgeImgy1y2 x1x2;出错 yaxiangsutiqu 第

原文地址: https://www.cveoy.top/t/topic/hCIf 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录