用老的回调机制来联系一些代码与一个按钮时,需要将一个函数指针传递给按钮。当按钮被点击时,函数被调用。老的工具包不能保证当一个函数被调用时给出的参数都有着正确的类型,所以很容易崩溃。回调方式的另一个问题是它将GUI元素与其功能紧紧地捆绑在一起,使独立地开发类变得很困难。QT的信号与槽机制则不同。事件发生时部件就发射信号。比如,当一个按钮被点击时,他就发送“clicked”信号。通过创建一个函数(槽)并调用connect()函数来连接信号,程序员就可以将信号与槽连接起来。信号与槽机制不需要类相互知道对方,这使得开发高度可重用的类变的更加容易。因为这种机制是类型安全的,类型错误被当成警告并且不会引起崩溃。
图2.3
2.2.5 Qt4 designer
Qt4 Designer 是一个可视化的基于 Qt 的用户界面设计工具。用来生成 ui 定义文件,而不考虑具体的语言。
在使用QT4 designer时可以直接根据设计需要来拖动控件生成一个ui文件。然后在Linux的终端中输入uic xxx.ui –o xxx.h来讲ui文件变成.h文件。
然而QT4 designer是一款比较简单的工具。若要在生成的文件中添加一些用户插槽,则需要手动输入一些代码。
3道路车辆检测原理
3.1车道检测技术
因为道路相对平坦,不具有三文形态,基本上处于相同的平面。大部分智能车辆系统对道路的检测与识别都是采用基于知识的技术在单目视觉图像中感知道路。由于现实生活中的道路千差万别,因此道路检测是个非常复杂的模式识别问题,目前不存在通用的道路检测系统。但是,适当地引入一些关于道路的基本假设,比如道路形状、路面特征,感兴趣区域等假设,将有助于简化问题。
3.1.1摄像机标定
为了得到图像中的像素和实际道路区域点的对应关系,必须知道二文图像信息和三文世界信息的关系模型。由于单目视觉系统损失了三文世界中的深度信息,这个过程是不可逆的,在实际应用中,根据需要作了一些假设和已知一定的信息,从而从二文图像中估计出三文的道路信息[4] [5]。
具体的做法如下:假设车辆前方的道路是平坦的,设定摄像机的安装位置固定(安装的高度h,俯视角 ,偏离角 ),摄像机的固有参数为常数(摄像机焦距f,孔径张角2 )。由于在道路检测的过程中,只需要得到道路延伸方向、车辆的偏移距离,并不需要将道路的三文信息完全恢复,以上的假设是可以满足实际需要。摄像机成像几何模型的三文信息完全恢复,以上的假设是可以满足实际需要。
有关世界和图像的两个欧式空间可定义如下, 代表三位世界坐标系, 代表图像二文坐标系。由于假定道路是平坦的,道路平面坐标系可以看作世界坐标系中 的情况下的平面,道路平面坐标系为 。摄像机在W坐标系中的坐标为 。 代表当前车辆偏离道路切线方向的偏航角, 代表摄像机俯视角(摄像机光轴与坐标系中X轴的夹角)。
设定摄像机采集的图像分辨率为 (像素),摄像机孔径张角为2 。按照小孔成像原理,通过几何和三角变换,得到二文图像坐标I与三文道路平面坐标R对应的关系表达式如下:
(3.3)
从上式可以得到图像中的像素的坐标与真实道路路面的点坐标之间的对应关系,已知图像中像素,可以轻易求出其在道路路面上对应的世界坐标。在系统检测出图像中感兴趣的目标后,根据目标在图像中的坐标,按照上述公式可以求出目标在道路中的世界坐标。 基于嵌入式计算平台的机器人视觉信息处理与编程(5):http://www.youerw.com/jisuanji/lunwen_6130.html