2)设置编译路径。在VS2010中先新建一个项目(每新建一个项目都需要进行以下的配置才能编译Opencv里的函数,可以不注册电脑),在“解决方案资源管理器”窗口下,右击,“属性”,配置属性>VC++目录,在右边“包含目录”那栏,点击编辑按钮,分别新建以下3条路径:C:\opencv\build\include C:\opencv\build\include\opencv、C:\opencv\build\include\opencv2。然后选择“库目录”那栏,新建1条路径:C:\opencv\build\x86\vc10\lib
3)设置库文件:在“解决方案资源管理器”窗口中,右单击项目名,选择“属性”>配置属性>链接器>输入,接着在“配置”下拉框中,选择“Debug”,在“附加依赖项”那栏点击右边的“编辑”按钮,复制下面的库文件名到上方空白处:
opencv_calib3d231d.lib
opencv_core231d.lib
opencv_gpu231d.lib
opencv_highgui231d.lib
然后,在“配置”下拉框中选择“Release”,照上面的操作,复制上面的库文件名到上方的空白处。
4)MFC项目中使用OpenCV:在所需的引入头文件:
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
3 图像预处理
由于交通标志牌受到内在破损,污染等因素和外在被树木遮挡等客观条件的共同
作用,并且标志牌在获取过程中难免会引入随机噪声,所以对图像进行预处理是必要的。
由于交通标志的功能是起到指示性、提示性和警示性等作用,它们都具有设置醒目、颜色鲜明,图形简洁、意义明确等特点。已有的研究绝大多数都是基于这些特点(位置、颜色、形状、图形、文字等)进行的。因此,按照检测与识别的依据来分,交通标志检测与识别方法主要分为两类:基于颜色的方法和基于形状的方法。根据人类视觉系统辨识物体的特性。可将识别过程分为“检测”和“识别”两个步骤。先在图像中发现目标(可能是虚假目标),然后再进一步判断目标的真实性和表示涵义。基于颜色的方法主要应用在标志检测阶段,标志识别阶段主要采用基于形状的方法。当然,这样的区分并不是绝对的,实际的研究中也可能采用两类方法相结合的方式,或其他一些非传统的方法。
3.1 基于颜色的标志检测
对于交通标志来说,颜色无疑是最显著、最重要的特征。以颜色为依据进行检测和识别的研究有很多,如对颜色空间的各通道(或各通道的组合)进行阈值分割或聚类;区域分裂;彩色边缘检测;用经过训练的人工神经网络作为分类器识别颜色;还有以颜色为索引,即将目标的直方图与模板库中图像的直方图进行匹配,找出可能的若干模板,再做进一步的形状分析。还有一类的研究侧重于物理角度的分析,如建立各种材料的反射模型,从而在图像中找到各种不同材料物体之间的界线。这些研究与“色彩不变性”都有着密切的关系。
无论是人眼观察还是仪器拍摄,得到的物体图像颜色并不是物体真正的颜色,而是该物体在光源照射下的反射光线的颜色。因此照射光源的强度和光谱(颜色)对以颜色为依据的检测和识别影响很大。研究者们试图找到具有“色彩不变性”(即不受光源影响)的量,于是,这些研究早期的重点就在于选择合适的色彩空间。
彩色图像空间最常见的是RGB空间,RGB色彩空间使用红、绿、蓝3种基色来表现彩色。三分量各自量化取值为 0-255,0对应最暗,255对应最亮。在交通标志分类中,交通禁令标志以红色和黑色为主,在RGB空间中红色表示为:R=255,G =255,B=255,黑色表示为:R =0,G=0,B=0。 基于Hough变换的静态交通标志检测方法研究(5):http://www.youerw.com/jisuanji/lunwen_7819.html