基于Niblack's method方法的局部阈值分割

本文介绍了一种基于Niblack's method的局部阈值分割方法,通过计算宽度为w的矩形框内的均值m(x,y)和均方差s(x,y),并结合参数k计算阈值T(x,y)进行图像二值化。虽然该方法快速且效果良好,但可能引入一定噪声。" 128282943,16861872,Python实现猜拳游戏,"['python', '游戏', '开发语言']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于Niblack's method方法的局部阈值分割

Email:whowhoha@outlook.com


    /*原理:   
        T(x,y)=m(x,y)  +   k*s(x,y)   
        取一个宽度为w的矩形框,(x,y)为这个框的中心。
        统计框内数据,T(x,y)为阈值,m(x,y)为均值,s(x,y)为均方差,k为参数(推荐-2)计算出t再对(x,y)进行切割255/0。   
        这个算法的优点是    速度快,效果好。   
        缺点是    niblack's   method会产生一定的噪声。 
     */
    
    public int[]localThresholdProcess(int []data,int width,intheight,int w,int h,doublecoefficients,double gate){
    int[] processData=newint[data.length];
    for(inti=0;i<data.length;i++){
      processData[i]=255;
    }
    
    if(data.length!=width*height)
       returnprocessData;
    
    int wNum=width/w;
    int hNum=height/h;
    int delt[]=new int[w*h];
    
    //System.out.println("w;"+w+"h:"+h+" wNum:"+wNum+" hNum:"+hNum);
    
    for(int j=0;j<hNum;j++){
       for(inti=0;i<wNum;i++){
    //for(int j=0;j<1;j++){
    // for(int i=0;i<1;i++){ 
        for(intn=0;n<h;n++)
             for(intk=0;k<w;k++){
             delt[n*w+k]=data[(j*h+n)*width+i*w+k];
        &nbsp;   //System.out.print("delt["+(n*w+k)+"]:"+delt[n*w+k]+"");
             }
       //System.out.println();
        /*
        for(intn=0;n<h;n++)
             for(intk=0;k<w;k++){
             System.out.print("data["+((j*h+n)*width+i*w+k)+"]:"+data[(j*h+n)*width+i*w+k]+"");
             }
       System.out.println();
        */
       delt=thresholdProcess(delt,w,h,coefficients,gate);
        for(intn=0;n<h;n++)
             for(intk=0;k<w;k++){
             processData[(j*h+n)*width+i*w+k]=delt[n*w+k];
             //System.out.print("delt["+(n*w+k)+"]:"+delt[n*w+k]+"");
             }
       //System.out.println();
        /*
        for(intn=0;n<h;n++)
             for(intk=0;k<w;k++){
             System.out.print("processData["+((j*h+n)*width+i*w+k)+"]:"+processData[(j*h+n)*width+i*w+k]+"");
             }
       System.out.println();
        */
       } 
    }
    
    return processData;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值