好吧,很长一段时间以来,我一直在努力解决这个问题。我有一些图像需要跟踪并从像素中提取一些值。问题是我需要图像上的那些线的长度,所以我知道何时停止尝试提取值。这些线应位于距图像中心的所有角度。以下是图像上痕迹如何发生的描述
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
第二个绝对不是很好,因为它超出了图像边界,甚至是负面的!
有三角学知识的人会帮助我理解为什么我从上面的公式得到如此不同的值?如果有一种更简单的方法来计算这些线的长度,使用线的角度,图像的尺寸以及线与图像中心的距离。
感谢您的帮助!