场景
最近做了一个项目,类似图像中,长方体物体的倾角计算,在此记录下。
基本思路
物体检测 + canny边缘检测 + HoughLines线条检测 + 四边形顶点计算 + 三角函数计算
方法
(数据为敏感数据,就不上图了,需要方法的小朋友,私信吧。)
1.先用物体检测的方法 将图像中的物体检测出来,可以使用的方法很多,传统方法、深度学习方法,都行,我这边使用的是yoloV3,来检测物体。
2.获得物体4个角坐标后,在原有的基础上,向四周扩大一些像素,以防物体检测未把物体完全含住。
3.将物体从原图中扣出后,用opencv的canny边缘检测,将图像二值化。
4.得到的二值化图,我们再做HoughLines线条检测,检测出四条边。
注:canny、HoughLines这两个函数需要你多测,已达到最好的结果
5.将得到的边求出4个焦点,即长方体物体的四个顶点。(若在前一步的到的边很多,那建议,将所有的焦点都求出,最后按你的图像规律进行逻辑过滤)
6.得到4个角的坐标后,进行三角函数计算得到倾角。
亲自测过 误差在±5度左右,调优的话会更小。