单调背景下高性能直线检测⚔️

工程在这:github,这一部分工作是统一上传的,所以和别的工程放在同一个repository里了,见谅
由于要在树莓派上运行直线检测的代码,opencv提供的霍夫直线的效率不能够满足博主的需求,用了三天时间写了一个注重效率的直线检测。

因为场景中这个图片其实是非常简单的,羽毛球场地,绿地加白边,做完边缘检测之后就十分的简洁了,一般封装好的直线检测函数都是设计来应对各种复杂环境的,这样自然而然效率就跟不上了。

看图猜算法,不知道你猜出来没有。其实就是在图片中采样,第一张图的红线就是采样点,如果有白点就做个标记。然后检查每两个白点,直接去原图中对两个白点连线位置上的数据进行采样,如果采集到了大量白点,就认为是识别的直线啦。

然后我写的这个算法检测时间只有霍夫直线的百分之二到百分之十左右。工程中运用了自行定义了动态的数组,这个方法是受浙大老师翁恺的启发。

上传的仍然是vs工程,函数都封装在了base.h和base.cpp中。以下是base.h的内容:

 

发表回复