- 1、本文档共30页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
摄像头组培训 摄像头的选择与架设 目前市场的模拟摄像头有两大种:CCD 和CMOS。CCD摄像头的优点是动态性能好,即使车在高速行驶时也可得到较为清晰的图像,其缺点主要有两点:耗电量大、重量大。CMOS摄像头恰好相反,动态性能较差,高速时容易出现图像模糊的现象,但体积小,耗电小。 摄像头的选择与架设 由于它们的特性不一致,所以在架设方式的选择上会有所差别。CCD摄像头更适合做“低摄像头”,因为CCD摄像头质量大,如果架设过高可能会使重心太高;同时在实践中发现,“低摄像头”的动态模糊现象较“高摄像头”更为明显,而CCD高动态性能这一特点恰好可以弥补这一缺陷。与CCD相反,CMOS摄像头由于其质量轻,动态性能差的特点,更适合于“高摄像头”。 摄像头的选择与架设 我们学校在参加第六届全国赛时选择的就是CMOS“高摄像头”的方案。主要原因是,虽然低摄像头具有更大的前瞻,但图像畸变过于严重,我们现有的技术还无法很好的处理这种畸变,导致远处的图像不仅得不到很好的利用,反而会带来各种各样的干扰,所以最终为了保证稳定与可靠性,选择了CMOS“高摄像头”的方案。 摄像头的选择与架设 除了摄像头的选型与高度选择外,摄像头的前后位置也对车的性能有很大的影响。在前后位置上,分为摄像头“前置”与“后置”。后置摄像头存在的主要问题是转向以及弯入直的过程严重滞后;而前置摄像头的主要问题是动态模糊现象过于严重。所以在第六届全国赛时,我们采用了一种折中的办法,即将摄像头架在车的中部,电池之前但紧挨电池的地方,实践发现性能要好于前两种架设方式。 摄像头的处理电路 摄像头的处理电路 硬件二值化的数据采集 将比较器的输出接到单片机的两个外部中断引脚一个负责采上升沿,另一个负责采集下降沿(对于XS单片机,由于外部中断引脚不够,我们将其接到PT口,用PT口的输入捕捉功能实现信号采集)。同时开启一个计数器,并在行中断的一开始将其恢复至初值。当图像信号反转(黑变白或白变黑)时,触发上升/下降沿中断,在这两个中断中将计数器的值记录下来,这个计数值就对应着这个反转在这一行中的坐标。从而通过这些边沿对应的计数值就可以将一行的图像的全部信息反映出来。 硬件二值化的数据采集 void interrupt 56 PP5_ISR(void) /*行中断*/ { PIFP_PIFP5 = 1; /*清中断标志*/ PITCFLMT_PFLMT0 = 1; PITFLT_PFLT0 = 1; /*初始化计数器值,行中断之后要保证处理时间小于(255-235)*16=320个时钟周期*/ TIE = ~(TIE_C4I_MASK | TIE_C6I_MASK); /*关闭通道4和6的中断*/ Flag_Down = 0; Flag_Up = 0; LineCCD++; if(LineCCD=24 LineCCD300(LineCCD-24)%3==0) /*在24行到300行之间,每3行取一行*/ { if(LineCCD == 24) /*一场开始时清零*/ { Line_Save = 0; Line_Process = 0; FlagField = 0; } else { Line_Save++; } TFLG1 = (14) | (16); /*清通道4和6中断的中断标志*/ TIE = TIE_C4I_MASK | TIE_C6I_MASK; /*打开通道4和6的中断*/ } else if(LineCCD == 300) { Line_Save = 92; PIEP_PIEP5 = 0; /*关行中断*/ LineCCD = 0; } } 硬件二值化的数据采集 void interrupt 12 Timer4_ISR(void) /*上升沿中断*/ { PITCNT0temp = PITCNT0; if(Flag_Down - Flag_Up == 1) { /*由于使用的是反向比较器,再加上消隐区信号等效为黑,所以第一个边沿一定是下降沿*/ v_point_up[Line_Save][Flag_Up] = PITCNT0temp; /*上升沿中断记录计数器值*/ Flag_Up++;
文档评论(0)