ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

智能车摄像头算法——车库(识别斑马线)

2021-12-11 16:32:45  阅读:310  来源: 互联网

标签:斑马线 车库 第一圈 第二圈 识别 扫线 摄像头 出库


车库分为出库和第一圈处理斑马线还有第二圈入库

出库

第一种方法比较简单,适合小白。出库,一个比较明显的特征就是比赛的开始,你可以用按键来开始打脚,配合陀螺仪积分到一定值时(也就是出库到直道上)正常巡线循迹。

第二种方法

首先从巡线方面需要重新寻(从最下面开始扫线,屏蔽斑马线,可以得到大约这样黑色的线(相册

里面没找到图片,凑合看哈,懂意思就行)

红色的是扫不到的,这种扫线方法跟八临域一个意思。这样我们就可以直接找到左右下拐点,然后开始拉线,正常循迹出库即可了。

第一圈 屏蔽斑马线,正常行驶

小车第一圈经过斑马线的情况下,不做处理,一般都会抖动的,所以我们要处理这个现象。

车库的识别跟环岛第一阶段特别像,1.一边是直线,一边丢线 2.斑马线

斑马线跟左边上下拐点是有一定的空隙的,所以他是会检测到丢线的。下面这段代码是检测斑马线的。大概意思就是,取几行然后从左到右 扫描黑白跳变点的次数,扫到第一个点(例如白点),我们记录下这个点,然后继续扫下一个点,拿这个点跟下一个点比较,如果颜色相同则跳过,如果不同则计数+1.然后把这个点变为作为比较点,继续扫描,扫到结束。然后如果计数大于一定的值,那基本就是斑马线,因为这个特征点非常明显,除了上坡道的时候乱看,其他地方应该不会有误判,这就是斑马线识别。

	 for(uint8 hang = 20;hang<35;hang++)
	 {
		 garage_count= 0 ;
		 for(uint8 lie = 10;lie<100;lie++)
		  {
				if(Pixle[hang][lie]==white)
				{
					white_black=1;
				}
				else
        {
          white_black=0;  
        }

				if(white_black!=black_white)
				{
				  black_white = white_black;
					garage_count++;
				}
				if(garage_count>11)
			  {
				region++;					
			  }			
			}
      if(region>2)
			{
				garageout_flag=1;		
                break;		
			}				
		}	

 识别完,就可以处理了,老样子找到上下两个拐点,补线就可以了。

有的人说扫线会扫到斑马线,那就改变前瞻的控制行,或者直道够长的情况下锁舵机就行(个人补推荐)。

第二圈 入库

第二圈识别的方法和第一圈一样,我就不再说了。

入库的时候一样拉上拐点补线就行(扫线不要扫到斑马线哦,斑马线只进行判断)。

停车识别 第一种可以靠陀螺仪积分停车。

第二种 依靠识别停车

           

 

大概是这个样子,待看到右下角空白区域快消失的时候(类似于不丢线)或者右边线最小值大于莫个值的时候进行停车判断。

标签:斑马线,车库,第一圈,第二圈,识别,扫线,摄像头,出库
来源: https://blog.csdn.net/qq_51679917/article/details/121874542

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有