最近一直在思考阳光对摄像头的影响问题如何解决,在网上找了很多资料也没有找到什么合适的算法,或者方法。但是了解到了一些有意思的算法——边缘提取算法
边缘提取本质像是一种滤波,根据算子的不同会有不同的效果,在MCU上的处理时间也不同。比较常用的方法有三种,Sobel算子,Laplacian算子,Canny算子。
Sobel算子检测方法对灰度渐变和噪声较多的图像处理效果较好,sobel算子对边缘定位不是很准确,一般情况下图像的边缘不止一个像素;当对精度要求不是很高时,是一种较为常用的边缘检测方法。
Canny方法不容易受噪声干扰,能够检测到真正的弱边缘。优点在于,使用两种不同的阈值分别检测强边缘和弱边缘,并且当弱边缘和强边缘相连时,才将弱边缘包含在输出图像中。但是由于算法的复杂性导致其所需时间的增加。
Laplacian算子法对噪声比较敏感,所以很少用该算子检测边缘,而是用来判断边缘像素视为与图像的明区还是暗区。拉普拉斯高斯算子是一种二阶导数算子,将在边缘处产生一个陡峭的零交叉, Laplacian算子是各向同性的,能对任何走向的界线和线条进行锐化,无方向性。这是拉普拉斯算子区别于其他算法的最大优点。
我最近将Sobel算子的边缘提取做成了实例,效果还是比较满意的,但是我还没有想好是否将其运用在智能车的程序中。
![9a53c680b81b9372fd1f922ce861aba6.png](https://img-blog.csdnimg.cn/img_convert/9a53c680b81b9372fd1f922ce861aba6.png)
![afb68c3b4281a0c85caf7251a643bbc7.png](https://img-blog.csdnimg.cn/img_convert/afb68c3b4281a0c85caf7251a643bbc7.png)
下面是赛道的处理结果(疫情期间,赛道简陋,在卧室搭起来的)
![5f301924bee89ba3d325f5820dd5eaad.png](https://img-blog.csdnimg.cn/img_convert/5f301924bee89ba3d325f5820dd5eaad.png)
![4759e6a677a6685d817f1f975174450f.png](https://img-blog.csdnimg.cn/img_convert/4759e6a677a6685d817f1f975174450f.png)
此时看到,边界上会有一些嘈杂的细线,此时只需在对其进行二值化即可。下面是我用MATLAB仿真处理的图像。
![713702eaa103daf941183eee1ff5c61e.png](https://img-blog.csdnimg.cn/img_convert/713702eaa103daf941183eee1ff5c61e.png)
由于并没有决定是否将其运用到智能车上,所以也还没有对这个算法进行优化处理,目前的效果只能说还算可以。
以上就是我今天分享的内容啦,有兴趣的朋友们也可以私聊我或者评论。排版比较丑,请见谅。代码就不在这里写了,否则会更乱。有兴趣的可以点个赞 !加个关注! 私聊我啊 !