【发布时间】:2020-06-19 01:53:07
【问题描述】:
我有一个二维数据,M,类似于这段代码的结果:
xv = 1:.2:10;
yv = 1:.2:5;
[X, Y] = meshgrid(xv, yv);
M = sin(X - 4 * Y) + 0.5 * rand(size(X));
figure;
imagesc(xv, yv, M)
M 显示平面的周期性变化。我想找到这波的方向。
我的方法是使用circshift,每列数据线性增加移位,并调整移位直到波对齐。但是对于最佳对齐,我没有一个好的数学定义。
是否有任何替代方法来定义和查找波浪的方向?
【问题讨论】:
-
这将受益于editing 中的minimal reproducible example,您的图像显示了您的最终目标应用程序,但是例如 5*5 矩阵的示例会更容易构建.
-
@Wolfie 我添加了一个小例子。
-
您的预期输出是什么?假设您平均沿 45 度或 60 度?否则,很难验证任何提议的解决方案是否按预期工作。您的示例仍然很大,无法在这种情况下进行任何手动计算以进行验证...您提出了一种方法-这行不通吗?
-
我想我的观点是,当角度不是 45 度的倍数时,如何通过矩阵定义角度?当它是 90 的倍数时,这是微不足道的,对于(沿对角线)之间的 45 度是可以理解的,但是对于您要求的任意角度,您是否希望在多个计算中包含元素,或者是否应该没有重叠?当您因为跨越多个而没有列/行计数时,您如何定义应该计算多少平均值?如果没有预期的输出示例,这个简介就太宽泛了...
-
查看氡变换。它会计算您在许多不同角度的投影,然后您可以简单地选择对比度最高的角度。
标签: matlab image-processing matrix mean