大津法进行图像二值化opencv

15 篇文章 0 订阅
2 篇文章 0 订阅

int Ostu(cv::Mat &temp,int &Threshvalue)
{
    int hist_size=256;
    int hist_height=256;
    float range[]={0,255};
    float *ranges[]={range};
    IplImage *src=&IplImage(temp);
    CvHistogram* gray_hist=cvCreateHist(1,&hist_size,CV_HIST_ARRAY,ranges,1);
    cvCalcHist(&src,gray_hist,0,0);
    cvNormalizeHist(gray_hist,1.0);
    int Width=src->width;
    int Height=src->height;
    double delta=0.0;
    double U_t=0;
    for(int i=0;i<256;i++)
    {
        U_t+=cvQueryHistValue_1D(gray_hist,i)*i;
    }
    double u=0,w=0;
    for(int j=0;j<256;j++)
    {
        u+=cvQueryHistValue_1D(gray_hist,j)*j;
        w+=cvQueryHistValue_1D(gray_hist,j);
        double t=U_t*w-u;
        double delta_tmp=t*t/(w*(1-w));
        if(delta_tmp>delta)
        {
            delta=delta_tmp;
            Threshvalue=j;
        }
    }
    cvReleaseHist(&gray_hist);
    return Threshvalue;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值