智能车制作

标题: 大津法阈值,分块,求指教 [打印本页]

作者: 心雾为水    时间: 2015-4-16 22:21
标题: 大津法阈值,分块,求指教
void YuZhiGet()//图像分三块大津法算法,找出最佳阈值
{
    u32 u0=0,u1=0,w0=0,w1=0;//u0对应为小于遍历灰度的当前值,u1为大于当前灰度的遍历值。
    //w0为小于遍历灰度点的比例。w1为大于的比例
    u8 t=0;//遍历灰度值变量
    u8 g=0,MaxG=0,T=0;//T对应最优灰度阈值,g为大津法公式中的变量,MaxG记录公式计算过程中的最大变量
    for(t=0;t<255;t++)//t为遍历像素值
    {
        u8 PixelCouter[256]={0};//对应像素点数计数。
        u8 Fen=V/3;
        for(u8 k=1;K<=3;k++)
        {

            for(i=0;i<Fen;i++)//计算像素点个数,和阈值下与上的点数和
            {
                for(j=0;j<H;j++)
                {
                    PixelCouter[Pix_Data[i][j]]++;
                    if(Pix_Data[i][j]<=t)BlackCouter++;
                    else WhiteCouter++;
                }

            }

            for(i=0;i<=t;i++)
            {
                u0+=i*PixelCouter[i];//计算小于阈值t像素点的总和
            }
            u0=u0/BlackCouter;//算出小于等于t的像素的平均灰度

            for(;i<255;i++)
            {
                u1+=i*PixelCouter[i];//计算大于阈值t像素点的总和
            }
            u1=u1/WhiteCouter;//算出大于t的像素的平均灰度

            w0=BlackCouter/(H*Fen);//小于t像素点的个数比
            w1=WhiteCouter/(H*Fen);//大于t像素点的个数比

            g=w0*w1*(u0-u1)*2;//采用大律法的等价公式计算。
            if(g>MaxG)
            {
                MaxG=g;
                T=t;
            }
            yuzhiDID[k]=T;//算出对应分块阈值
        }


    }


}



作者: 不朽的Lionel    时间: 2015-4-17 04:03
卧槽,你是谁,用咱学校图书馆当头像~~~:lol:lol:lol
作者: 静默深眠的夏    时间: 2015-4-17 13:45
卧槽,who  are  you
作者: 飞起来2015    时间: 2015-4-21 16:05
Pix_Data[i][j] LZ的这个函数代表的是什么?
作者: 绿眼睛兔子    时间: 2015-4-21 17:34
表示 在特殊情况下此方法不准
作者: 浅笑无痕    时间: 2015-4-22 02:51
受余弦效应严重
作者: Miss.z    时间: 2016-4-6 16:27
浅笑无痕 发表于 2015-4-22 02:51
受余弦效应严重

什么是余弦效应喃,不太懂,解释一下吧


作者: jioajietao    时间: 2016-6-25 21:07
同上,求解答
作者: 小爷代码无bug    时间: 2017-3-18 13:22
LZ  那个yuzhiDID是什么




欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2