智能车的“眼睛”。CCD是一种半导体器件,能够把光学影像转化为数字信号。 CCD上植入的微小光敏物质称作像素(Pixel)。一块CCD上包含的像素数越多,其提供的画面分辨率也就越高。作用就像胶片一样,但它是把图像像素转换成数字信号。
CCD广泛应用在数位摄影、天文学,尤其是光学遥测技术、光运蚂橡学与频谱望远镜,和物枣高速摄影技术如Lucky imaging。CCD在摄像机、数码相机和扫描仪中应用广泛,只不过摄像机中使用的是点阵CCD,即包括x、y两个方向用于摄取平面图像,而旁旁扫描仪中使用的是线性CCD,它只有x一个方向,y方向扫描由扫描仪的机械装置来完成。
我好不容易找出来一个尘带睁亏。int SignalProcess( unsigned int signal )
{
const int BitValue[8] = {43,26,12,6,-6,-12,-26,-43}//MAX:28
int i,CurrPoint=0,LastPoint=0,BitNum=0
unsigned char SignalBit[8]
for(i=0i<8i++)
{
SignalBit[i] = signal &0x0001
BitNum += SignalBit[i]
signal >>= 1
}
switch(BitNum)
{
case 1:
for(i=0i<8i++)
if(SignalBit[i] != 0)
CurrPoint += BitValue[i]
CarState.E0 = CurrPoint
break
case 2:
for(i=0i<8i++)
if(SignalBit[i] != 0)
CurrPoint += BitValue[i]
CurrPoint >派早芦>= 1
CarState.E0 = CurrPoint
break
default:
CarState.E0 = CarState.E1
break
}
return CalculateP()*100
}
对环境的适应性是线阵ccd和面阵ccd的通病。具体言之,就是不同时刻,不同环境下,其所获取的AD值会改变。这也枯察就直接影响了后期的处理问题。因此,就有了动态阈值一说。对于摄像头,动态阈值有双峰法等相对已经比较成熟的方案。这里谈谈线性ccd的阈值确定。此方法基于蓝宙提出的两种对ccd智能调光的的解决方案提出。在硬件二值化的基础上解决动态阈值的确定。具体实验有待回校验证。把ccd的AO口引出两根,一根连到单片机片内AD,(或者也可采用片外高速AD,加快AD的读取速度。如AD974、AD976A等都可)。另一根跟比较器相连。作为比较器的输入源。比较器输出为硬件二值化后的0和1。比较器的输入部分连接可变增益放大器。采用一个凳此电源作为输入接入这里的关键部分可变增益放大器。通过程序设置可令可变增益放大器对此0~5V的信号进行放大,从而对比较器的基准电源进行动态的调节。程序的处理。在单片机的初始化中,通过clk和SI的 *** 作。直接获取ccd128个点的平均电压值voltage。因为环境的影响,voltage会发生变化。在下午和晚上日光灯下。分别在此voltage1和voltage2下找到适合ccd循迹的放大倍数a和b。然后可以在程序中进行一个判断选择,让他找到合适的放大倍数。(精度肯定没有双峰法高)测试的情况越多,ccd适应环境的能力就越强。因为二值化的原故,此法没有自适应法处没粗茄理ccd时间太长的弊端。当然可靠性还有待检验。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)