扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:中国IT实验室 来源:中国IT实验室 2007年8月23日
关键字:
五 laplace2阶增强滤波,增强边缘,增强系数delt
public int[] laplaceHigh2DFileter(int []data,int width,int height,double delt){ int filterData[]=new int[data.length]; int min=10000; int max=-10000; for(int i=0;i<height;i++){ for(int j=0;j<width;j++){ if(i==0 || i==height-1 || j==0 || j==width-1) filterData[i*width+j]=(int)((1+delt)*data[i*width+j]); else filterData[i*width+j]=(int)((9+delt)*data[i*width+j]-data[i*width+j-1])-data[i*width+j+1] -data[(i-1)*width+j]-data[(i-1)*width+j-1]-data[(i-1)*width+j+1] -data[(i+1)*width+j]-data[(i+1)*width+j-1]-data[(i+1)*width+j+1]; if(filterData[i*width+j]<min) min=filterData[i*width+j]; if(filterData[i*width+j]>max) max=filterData[i*width+j]; } } for(int i=0;i<width*height;i++){ filterData[i]=(filterData[i]-min)*255/(max-min); } return filterData; } |
// 局部阈值处理2值化,niblack's method /*原理: 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,int height,int w,int h,double coefficients,double gate){ int[] processData=new int[data.length]; for(int i=0;i<data.length;i++){ processData[i]=255; } if(data.length!=width*height) return processData; 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(int i=0;i<wNum;i++){ //for(int j=0;j<1;j++){ // for(int i=0;i<1;i++){ for(int n=0;n<h;n++) for(int k=0;k<w;k++){ delt[n*w+k]=data[(j*h+n)*width+i*w+k]; //System.out.print("delt["+(n*w+k)+"]: "+delt[n*w+k]+" "); } //System.out.println(); /* for(int n=0;n<h;n++) for(int k=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(int n=0;n<h;n++) for(int k=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(int n=0;n<h;n++) for(int k=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; } |
七 全局阈值处理2值化
public int[] thresholdProcess(int []data,int width,int height,double coefficients,double gate){ int [] processData=new int[data.length]; if(data.length!=width*height) return processData; else{ double sum=0; double average=0; double variance=0; double threshold; if( gate!=0){ threshold=gate; } else{ for(int i=0;i<width*height;i++){ sum+=data[i]; } average=sum/(width*height); for(int i=0;i<width*height;i++){ variance+=(data[i]-average)*(data[i]-average); } variance=Math.sqrt(variance); threshold=average-coefficients*variance; } for(int i=0;i<width*height;i++){ if(data[i]>threshold) processData[i]=255; else processData[i]=0; } return processData; } } |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者