五 laplace 阶增强滤波 增强边缘 增强系数delt
public int[] laplaceHigh DFileter(int []data int width int height double delt){int filterData[]=new int[data length];int min= ;int max= ;for(int i= ;iheight;i++){for(int j= ;jwidth;j++){if(i== || i==height || j== || j==width )filterData[i*width+j]=(int)(( +delt)*data[i*width+j]);elsefilterData[i*width+j]=(int)(( +delt)*data[i*width+j] data[i*width+j ]) data[i*width+j+ ]data[(i )*width+j] data[(i )*width+j ] data[(i )*width+j+ ]data[(i+ )*width+j] data[(i+ )*width+j ] data[(i+ )*width+j+ ];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= ;iwidth*height;i++){filterData[i]=(filterData[i] min)* /(max min);}return filterData;}六 局部阈值处理 值化
//局部阈值处理 值化 niblack smethod/*原理T(x y)=m(x y)+k*s(x y)取一个宽度为w的矩形框 (x y)为这个框的中心统计框内数据 T(x y)为阈值 m(x y)为均值 s(x y)为均方差 k为参数(推荐 )计算出t再对(x y)进行切割 /这个算法的优点是速度快 效果好缺点是niblack smethod会产生一定的噪声*/public int[] localThresholdProcess(int []data int width int height int w int h double coefficients double gate){int[] processData=https://www.04ip.com/post/new int[data length];for(int i= ;idata length;i++){processData[i]= ;}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= ;jhNum;j++){for(int i= ;iwNum;i++){//for(int j= ;j ;j++){// for(int i= ;i ;i++){for(int n= ;nh;n++)for(int k= ;kw;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= ;nh;n++)for(int k= ;kw;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= ;nh;n++)for(int k= ;kw;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= ;nh;n++)for(int k= ;kw;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;}
七 全局阈值处理 值化
public int[] thresholdProcess(int []data int width int height double coefficients double gate){int [] processData=https://www.04ip.com/post/new int[data length];if(data length!=width*height)return processData;else{double sum= ;double average= ;double variance= ;double threshold;if( gate!= ){threshold=gate;}else{for(int i= ;iwidth*height;i++){sum+=data[i];}average=sum/(width*height);for(int i= ;iwidth*height;i++){variance+=(data[i] average)*(data[i] average);}variance=Math sqrt(variance);threshold=average coefficients*variance;}for(int i= ;iwidth*height;i++){if(data[i]threshold)processData[i]= ;elseprocessData[i]= ;}return processData;}}
八垂直边缘检测 sobel算子
public int[] verticleEdgeCheck(int []data int width int height int sobelCoefficients) throws Exception{int filterData[]=new int[data length];int min= ;int max= ;if(data length!=width*height)return filterData;try{for(int i= ;iheight;i++){for(int j= ;jwidth;j++){if(i== || i== || i==height || i==height||j== || j== || j==width || j==width ){filterData[i*width+j]=data[i*width+j];}else{double average;//中心的九个像素点//average=data[i*width+j] Math sqrt( )*data[i*width+j ]+Math sqrt( )*data[i*width+j+ ]average=data[i*width+j] sobelCoefficients*data[i*width+j ]+sobelCoefficients*data[i*width+j+ ]data[(i )*width+j ]+data[(i )*width+j+ ]data[(i+ )*width+j ]+data[(i+ )*width+j+ ];filterData[i*width+j]=(int)(average);}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= ;iwidth*height;i++){filterData[i]=(filterData[i] min)* /(max min);}}catch (Exception e){e printStackTrace();throw new Exception(e);}return filterData;}
九图像平滑 * 掩模处理(平均处理) 降低噪声
- 如何获取云服务器的源代码? 云服务器源代码怎么弄
- 如何设置云服务器的源代码? 云服务器源代码怎么设置
- java查询数组中是否包含某一个值 javamongodb数组查询
- 如何修改云服务器的源代码? 云服务器源码怎么修改
- 如何寻找云服务器的源代码? 云服务器源码怎么找
- 如何配置云服务器的源代码? 云服务器源码怎么设置
- redis实战电子书 redisjava书籍
- redis哨兵keepalive 代码redis哨兵
- javaredis集群 javaredis列队
- Redis队列排队 redis队列java
