由它可推导出其他色彩空间,分为线性变换空间和非线性变换空间。线性变换空间有YIQ、YUV等空间。由于是有RGB空间线性变换得到,因此具有较小的计算量;典型的非线性空间有HIS、归一化RGB空间等,非线性空间能较好的消除各彩色分量的相关性,适用于图像处理。但由于变换中,有大量的非线性计算过程,使得计算量巨大。
为了提高交通标志提取的速度,满足实时性要求,本文直接使用RGB彩色空间进行图像分割,这种方法不需要空间转换,减少了不必要的线性或非线性计算,极大的提高算法速度。本文通过提取交通禁令标志中的红色信息,将标志的主体轮廓提取出来。
在RGB空间中R、G、B分量易受光照影响,产生色彩失真。但通过实验发现,红色在不同光照情况下三分量的差值在一定范围内保持不变,所以通过经验选取合适的分量差阈值可将图像中的红色信息提取出来。
基于RGB空间模型的交通禁令标志分割算法如下:对于图像中的所有点:
若满足(R-G)>50且(R-B)>50则该点为红色。该算法结构简单,没有涉及乘法运算,极大地减少了计算量。
很容易可以写出算法实现如下:
void CZXPDlg::SignExtract(IplImage* p)
{
    int i,j;
    char Bcpt,Gcpt,Rcpt; //分别记录每个像素的B、G、R分量
    for(i=0;i<p->height;i++) //这两层循环遍历图中的每一个像素,并访问每一个像素的B,G,R分量
        for(j=0;j<p->width;j++)
        {
            Bcpt=p->imageData[i*p->widthStep+j*3];
            Gcpt=p->imageData[i*p->widthStep+j*3+1];
            Rcpt=p->imageData[i*p->widthStep+j*3+2];
            if(Rcpt-Gcpt>50 && Rcpt-Bcpt>50  //(R-G)>50且(R-B)>50则该点为红色,将其保存为黑白图像中的白色点
            {
                p->imageData[i*p->widthStep+j*3]=255;
                p->imageData[i*p->widthStep+j*3+1]=255;
                p->imageData[i*p->widthStep+j*3+2]=255;
            }
            Else //否则视为不属于红色,即不在交通标志以内,则将该像素点保存为白色点
            {
                p->imageData[i*p->widthStep+j*3]=0;
                p->imageData[i*p->widthStep+j*3+1]=0;
                p->imageData[i*p->widthStep+j*3+2]=0;
            }
        }
}
实验用图及分割效果如图 4 所示:
                  图4 交通标志图及分割结果
3.2 canny边缘检测
3.2.1 Canny算法
    Canny是边缘检测中应用最为广泛,也是效果最为让人满意的算法之一。其检测步骤可以描述为:
(1)降噪
任何边缘检测算法都不可能在未经处理的原始数据上很好地工作,所以第一步是对原始数据与高斯 mask 作卷积,得到的图像与原始图像相比有些轻微的模糊(blurred)。这样,单独的一个像素噪声在经过高斯平滑的图像上变得几乎没有影响。    
上一篇:Kinect体感游戏控制器的手势检测方法研究
下一篇:VC++网络流量监测的设计与实现

基于Apriori算法的电影推荐

基于PageRank算法的网络数据分析

基于神经网络的验证码识别算法

基于网络的通用试题库系...

python基于决策树算法的球赛预测

基于消费者个性特征的化...

基于网络的通用试题库系统的整体规划与设计

AT89C52单片机的超声波测距...

国内外图像分割技术研究现状

承德市事业单位档案管理...

志愿者活动的调查问卷表

10万元能开儿童乐园吗,我...

神经外科重症监护病房患...

医院财务风险因素分析及管理措施【2367字】

公寓空调设计任务书

C#学校科研管理系统的设计

中国学术生态细节考察《...