注册 登录
查看: 571|回复: 5

CCD二值化图像抖动非常厉害,滤波的问题

[复制链接]
发表于 2014-4-11 00:31:13 | 显示全部楼层 |阅读模式
我用的是KL26的芯片,CCD采集用的是山外的底层库,但是处理使用的是大津法,所以二值化的以后,非常的抖动,请问问山外哥有没有什么解决的方法啊。
附上二值化的程序和大津法的程序
//二值化程序
void bin(uint8 *bin,uint8 * img,uint16 len)
{
    uint8 tmplen=len;

    memset(bin,0xFF,len);  //全部当作


     while(tmplen--)
    {
        if((tmplen < 0)|| (tmplen > len))
        {
            return;
        }

        if(img[tmplen]<fazhi)                 //找到 差分阈值
        
        bin[tmplen]=0x00;
    }
}

/*以下是CCD图像的算法*/

/*大津法二值化,浮动阈值
函数入口:CCD采集数据数组首地址
函数出口:二值化的浮动阈值*/

uint8 nList[256]={0};
uint8 otsu(uint8 *pSrc)
{
    uint8 j=0,tr=0,num=0,cnt=0;
    uint16 i=0;
    uint32 avfor=0,avback=0;    //u32  long int   
    uint16 cnts=0;
    uint32 total=0,total_low=0,total_high=0,g=0,max=0;
    //清空直方图
    for(i=0;i<256;i++)
    {
        nList[i]=0;
        
    }
    //计算直方图
        for(j=0;j<128;j++)
        {   
            num=* (pSrc+j);//获取灰度值
            //nList[num]++;//直方图统计图像所有像素点
            nList[num]+=1;
            total+=num;//total计算图像的灰度值总和
        }

    for(i=0;i<256;i++)
    {
        cnt=nList[i];//当前灰度值的计数数量
        if(cnt==0)   continue;
        total_low+=cnt*i;//计算灰度值从0到当前值的像素点灰度值的总和
        cnts+=cnt;//计算灰度值从0到当前值的像素点数目的总和
        if(cnts==128)  break;//统计完所有像素点,之后的灰度值已经没有任何像素点符合,计算完毕,退出

        total_high=total-total_low;//背景灰度=灰度总和-前景灰度(还没有归一化)
        avfor=(int)(total_low/cnts);//前景归一化
        avback=(int)(total_high/(128-cnts));//背景归一化  
        g=(avback-avfor)*(avback-avfor)*(cnts*128-cnts*cnts)/(128*128)    ;//计算方差     
        if(max<g)
        {
            max=g;
            tr=i;//方差最大的灰度值即为大津阈值
        }
       // if(i==80)
         // i=80;
    }  
    return tr;
}
回复

使用道具 举报

发表于 2014-4-11 00:40:25 | 显示全部楼层
这个比较难处理的,尤其是线性CCD有余弦效应。用差分来求二值化,我认为是最稳定的了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-11 19:49:07 | 显示全部楼层
图像的一边抖动特别厉害。。。从0开始的那边抖动特别厉害。。。
回复 支持 反对

使用道具 举报

发表于 2014-4-11 20:08:45 | 显示全部楼层
孤独的守望者 发表于 2014-4-11 19:49
图像的一边抖动特别厉害。。。从0开始的那边抖动特别厉害。。。

白天还是抖得很严重吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-12 14:05:21 | 显示全部楼层
感觉白天晚上都很严重,还有  山外哥你给的那个简单的二值化算法我不能用,我都采集不到黑线的,灰度图像显示正常的,可是二值化后的图像显示没有黑线。我也不是很明白,所以就没用了,用了大津法。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-12 14:10:57 | 显示全部楼层
山外メ雲ジ 发表于 2014-4-11 20:08
白天还是抖得很严重吗?

感觉白天晚上都很严重,还有  山外哥你给的那个简单的二值化算法我不能用,我都采集不到黑线的,灰度图像显示正常的,可是二值化后的图像显示没有黑线。我也不是很明白,所以就没用了,用了大津法。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回列表 返回顶部