import java.awt.*; import java.awt.image.*; import java.applet.*; public class zhongzhi extends Applet { Image img,pic; int wide,high; int p[]; int hist[]=new int[16]; public void init() { try { img=getImage(getDocumentBase(),"1.jpg"); MediaTracker mt= new MediaTracker(this);//跟踪多种媒体对象状态 mt.addImage(img,0);//向此媒体跟踪器正在跟踪的图像列表添加一个图像 mt.waitForID(0);//开始加载由此媒体跟踪器跟踪且具有指定标识符的所有图像。 wide=img.getWidth(null); high=img.getHeight(null); p=new int[wide*high]; PixelGrabber grabber=new PixelGrabber(img,0,0,wide,high,p,0,wide); grabber.grabPixels(); }catch(InterruptedException e){}; for(int y=3;y<high;y+=3) for(int x=3;x<wide;x+=3) { int k=0; for(int i=x;i<x+3;i++) for(int j=y;j<y+3;j++) { int pixel=p[(j-1)*wide+i]; int r=0xff&(pixel>>16); int g=0xff&(pixel>>8); int b=0xff&(pixel); hist[k++]=(int)(0.33*r+0.56*g+0.11*b); } for(int i=0;i<9;i++) for( int j=0;j<9-i;j++) { if(hist[j]>hist[j+1]) { int t=hist[j]; hist[j+1]=hist[j]; hist[j+1]=t; } } int mid=hist[4]; for(int i=x;i<x+3;i++) for(int j=y;j<y+3;j++) { p[(j-1)*wide+i]=0xff000000|mid<<16|mid<<8|mid; pic=createImage(new MemoryImageSource(wide,high,p,0,wide)) ; //根据指定的图像生成器创建一幅图像 } } } public void paint (Graphics g) { g.drawImage(img,20,0,300,300,null); g.drawImage(pic,330,0,300,300,null); } }
java图像的中值滤波器
猜你喜欢
转载自blog.csdn.net/chehec2010/article/details/80577794
今日推荐
周排行