在代码中,错误提示是在使用索引时出现问题。具体来说,错误发生在以下行:

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

问题是在使用冒号运算符时,索引的端点或增量不是有限的。这可能是由于计算得到的亚像素边缘位置subpixelX和subpixelY不是整数值导致的。

要解决这个问题,可以尝试使用floor函数将subpixelX和subpixelY向下取整,以确保它们是整数值。修改如下:

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

然后,重新计算x1、x2、y1和y2:

x1 = subpixelX; x2 = subpixelX + 1; y1 = subpixelY; y2 = subpixelY + 1;

这样,就可以使用这些整数值作为索引来进行双线性插值。

请注意,这只是一种可能的解决方案。根据具体情况,可能需要进一步调整代码以适应您的需求。

matlab中此段代码错误提示为:索引中的冒号运算符的非有限端点或增量。出错 subpixel_edge 第 28 行 edgeStrengthy x = bilinear_interpolationsubpixelX subpixelY edgeImgy1y2 x1x2;该如何解决?function subpixelEdgeImg ed

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

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