颜色匹配与腐蚀中心

本文探讨了图像处理中的腐蚀中心概念及其在二值图像操作中的应用。同时,介绍了颜色匹配的重要函数算法,包括如何搜索腐蚀中心并进行颜色识别。虽然代码细节未展示,但提到了通过调整条件来确定目标的坐标和尺寸。建议读者通过查阅相关图示以更好地理解腐蚀和膨胀操作。
摘要由CSDN通过智能技术生成

一、腐蚀中心
腐蚀与膨胀,二值图像的腐蚀和膨胀图像数字处理中应用相当广泛,代码处理也很简单。为看懂本文的关键。
相应的代码及原理在此处省略,或另外开文。

二、颜色匹配中几个重要的函数算法

//搜索腐蚀中心

/*函数引入目标条件,和搜索的区域
从而返回了腐蚀中心x,y
*/
static int SearchCentre(unsigned int *x,unsigned int *y,const TARGET_CONDI *Condition,const SEARCH_AREA *Area)
{
    unsigned int SpaceX,SpaceY,i,j,k,FailCount=0;
    COLOR_RGB Rgb;
    COLOR_HSL Hsl;

    SpaceX = Condition->WIDTH_MIN/3;  //X间隔
    SpaceY = Condition->HIGHT_MIN/3;//Y间隔,将区域矩形化,方便表示腐蚀中心

    for(i=Area->Y_Start;i<Area->Y_End;i+=SpaceY)
    {
        for(j=Area->X_Start;j<Area->X_End;j+=SpaceX)
        {                                       //遍历区域搜索
            FailCount=0;
            for(k=0;k<SpaceX+SpaceY;k++)
            {
                if(k<SpaceX)       //每一分块进行横扫
                    ReadColor(j+k,i+SpaceY/2,&Rgb);
                else     //每一分块进行竖扫
                    ReadColor(j+SpaceX/2,i+(k-SpaceX),&Rgb);
                RGBtoHSL(&Rgb,&Hsl);//将读取的颜色格式转换

                if(!ColorMatch(&Hsl,Condition))//颜色范围匹配
                    FailCount++;
                if(FailCount>((SpaceX+SpaceY)>>ALLOW_FAIL_PER))
                    break;
            }
            if(k==SpaceX+SpaceY)
            {
                *x = j+SpaceX/2;
                *y = i+SpaceY/2;//腐蚀中心的确认,假设矩形,
                               //则得腐蚀中心的表达式
                return 1;
            }
        }
    }
    return 0;
}

//从腐蚀中心向外腐蚀,得到新的腐蚀中心

static int Corrode(unsigned int oldx,unsigned int oldy,const TARGET_CONDI *Condition,RESULT *Resu)
{
    unsigned int Xmin,Xmax,Ymin,Ymax,i,FailCount=0;
    COLOR_RGB Rgb;
    COLOR_HSL Hsl;

 
  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值