2

好的,我长期以来一直在努力解决这个问题。我有一些图像需要跟踪并从它们的像素中提取一些值。问题是我需要图像上这些线的长度,所以我知道何时停止尝试提取值。这些线应与图像中心成各个角度。这是关于痕迹如何在图像上发生的描述

http://s16.postimage.org/yzxwze6tf/Screenshot_at_2012_08_29_11_26_00.png

所以 p 是线到图像中心的距离(我必须计算所有距离的线),t 是从图像中提取的沿线的值以及线的角度,因为我需要整个 360角度。

因此,当我对此进行编程时,我发现了这些公式来计算线条的长度。

t1y = -((Mhe - (p * cos(phi)))/sin(phi));
t1x = ((Nhe - (p * sin(phi)))/cos(phi));
t2y = ((Mhe + (p * cos(phi)))/sin(phi));
t2x = -((Nhe + (p * sin(phi)))/cos(phi));

在该代码上,Mhe 是图像宽度的一半,Nhe 是图像高度的一半。p 是线到图像中心的距离,phi 是角度。t1y t1x 和 t2y 和 t2x 是线与图像边界相交的最极端点,因此我在 t1x 和 t1y 之间选择一个,在 t2x 和 t2y 之间选择另一个。例如,如果我选择 t1x 和 t2y,那么我从 t1x (t2y-t1x) 中减去 t2y,这样我就得到了线的长度。这是描述这些值的另一张图片

http://s12.postimage.org/cw1rbdlqz/Screenshot_at_2012_08_29_11_47_06.png

问题是当我应用这些公式来计算那些行的长度时,我会得到疯狂的数字,例如,

角度 153,线 82 的长度(这很好,因为在图像边界内)

角度154,线长-2584

第二个肯定不好,因为它超出了图像边界,甚至是负面的!

有三角学知识的人会帮助我理解为什么我从上面的公式中得到如此不同的值吗?如果有更简单的方法可以使用线条的角度、图像的尺寸以及线条与图像中心的距离来计算这些线条的长度。

谢谢你的帮助!

4

0 回答 0