我有一堆箭头草图,我想确定它们的方向,起点坐标和终点坐标。
我使用的是goodFeaturesToTrack
,但我对下一步该做什么一无所知。
这就是我所拥有的
箭头的形状没有限制,它们可以像你想要的那样有风,或者它们可以由直线和直角组成。
我真的很感激任何想法因为我真的迷失了。该项目是关于将有限状态机的草图转换为VHDL代码,并且我已经覆盖了圆圈和字符,因此这是最后一个组件,但我不知道如何解决问题。
答案 0 :(得分:2)
您可以使用goodFeaturesToTrack
而不是使用HoughLines
,它会为您提供图片中的所有线条,因此我建议您先进行一些分割以分别获取每个箭头。 HoughLines
为您提供极坐标中的所有线条,这对您来说非常合适,因为您可以知道线条的方向。您可以在此处阅读更多内容:https://docs.opencv.org/3.4.0/d9/db0/tutorial_hough_lines.html
对于直线,您的任务很容易,您需要找到在一个点(http://answers.opencv.org/question/92164/how-to-find-coordinates-of-intersection-of-lines-after-using-houghlines/)相交的3个线段。这将是箭头的终点,您可以使用中间线的等式找到起点。
对于曲线,它有点棘手,因为你可能会得到曲线段的几条hough线或根本没有。所以在这种情况下,我建议你将两条线的交点作为终点,然后使用goodFeaturesToTrack
然后从最近点到终点开始移动到下一条线,直到你到达终点并选择以此为出发点。
我不知道这是不是最好的解决方案,我自己也没试过,但我希望它可以帮助你或给你指路。