⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 中值滤波.txt

📁 用JAVA工具 编写程序 实现数字图像处理的中值滤波
💻 TXT
字号:
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import javax.swing.*;


public class zzlb extends Frame{

	Image im,tmp;
	int i,iw,ih;
	int[] pixels;
	boolean flag=false;
	
	public zzlb(){
		Panel pdowm;
		Button load,run,save,quit;
		
		addWindowListener(new WindowAdapter(){
			public void windowClosing(WindowEvent e){
				System.exit(0);
			}
		});
		
		pdowm = new Panel();
		pdowm.setBackground(Color.lightGray);
		
		load = new Button("装载图像");
		run = new Button("中值滤波");
		save = new Button("保存");
		quit = new Button("退出");
		
		this.add(pdowm,BorderLayout.SOUTH);
		
		pdowm.add(load);
		pdowm.add(run);
		pdowm.add(save);
		pdowm.add(quit);
		
		load.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				jLoad_ActionPerformed(e);
			}
		});
		
		run.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				jRun_ActionPerformed(e);
			}
		});
		
		save.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				jSave_ActionPerformed(e);
			}
		});
		
		quit.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				jQuit_ActionPerformed(e);
			}
		});
	}
	public void jLoad_ActionPerformed(ActionEvent e){
		
		MediaTracker tracker = new MediaTracker(this);
		im=Toolkit.getDefaultToolkit().getImage("Color.jpg");
		tracker.addImage(im,0);
		
		try{
			tracker.waitForID(0);
			}catch(InterruptedException e2){e2.printStackTrace();}
			
			iw=im.getWidth(this);
			ih=im.getHeight(this);
			pixels=new int[iw*ih];
			
			try{
				PixelGrabber pg = new PixelGrabber(im,0,0,iw,ih,pixels,0,iw);
				pg.grabPixels();
				}catch (InterruptedException e3){
					e3.printStackTrace();
				}
				
				ImageProducer ip=new MemoryImageSource(iw,ih,pixels,0,iw);
				tmp=createImage(ip);
				flag=true;
				repaint();
	}
	
	public void jRun_ActionPerformed(ActionEvent e){
		try{
				PixelGrabber pg = new PixelGrabber(im,0,0,iw,ih,pixels,0,iw);
				pg.grabPixels();
				}catch (InterruptedException e3){
					e3.printStackTrace();
		}
		ColorModel cm=ColorModel.getRGBdefault();
		for(i=1;i<ih-1;i++)
		{
			for(int j=1;j<iw-1;j++)
			{
				int red,green,blue;
				int alpha=cm.getAlpha(pixels[i*iw+j]);
				
				int red2=cm.getRed(pixels[(i-1)*iw+j]);
				int red4=cm.getRed(pixels[i*iw+j-1]);
				int red5=cm.getRed(pixels[i*iw+j]);
				int red6=cm.getRed(pixels[i*iw+j+1]);
				int red8=cm.getRed(pixels[(i+1)*iw+j]);
				
				if(red4>=red5){
					if(red5>=red6){red=red5;}
					else{
						if(red4>=red6){red=red6;}
						else{red=red4;}
					}}
					else{
						if(red4>red6){red=red4;}
						else{
							if(red5>red6){red=red6;}
							else{red=red5;}
						}}
               int green2=cm.getGreen(pixels[(i-1)*iw+j]);
               int green4=cm.getGreen(pixels[i*iw+j-1]);
               int green5=cm.getGreen(pixels[i*iw+j]);
               int green6=cm.getGreen(pixels[i*iw+j+1]);
               int green8=cm.getGreen(pixels[(i+1)*iw+j]);		
               	
               	if(green4>=green5){
					if(green5>=green6){green=green5;}
					else{
						if(green4>=green6){green=green6;}
						else{green=green4;}
					}}
					else{
						if(green4>green6){green=green4;}
						else{
							if(green5>green6){green=green6;}
							else{green=green5;}
						}}
						
			int blue2=cm.getBlue(pixels[(i-1)*iw+j]);
			int blue4=cm.getBlue(pixels[i*iw+j-1]);
			int blue5=cm.getBlue(pixels[i*iw+j]);
			int blue6=cm.getBlue(pixels[i*iw+j+1]);
			int blue8=cm.getBlue(pixels[(i+1)*iw+j]);
			
			if(blue4>=blue5){
					if(blue5>=blue6){blue=blue5;}
					else{
						if(blue4>=blue6){blue=blue6;}
						else{blue=blue4;}
					}}
					else{
						if(blue4>blue6){blue=blue4;}
						else{
							if(blue5>blue6){blue=blue6;}
							else{blue=blue5;}
						}}
						pixels[i*iw+j]=alpha<<24|red<<16|green<<8|blue;
			}
		}
		ImageProducer ip=new MemoryImageSource(iw,ih,pixels,0,iw);
		tmp=createImage(ip);
		flag=true;
		repaint();
	}
	public void jSave_ActionPerformed(ActionEvent e){
		
		ImageIcon ii=new ImageIcon("copyColor.jpg");
		ii.setImage(tmp);
		}
		
	public void jQuit_ActionPerformed(ActionEvent e){
		System.exit(0);
	}
	public void paint(Graphics g){
		if(flag){
			g.drawImage(tmp,50,50,this);
		}else{ }
	}
	
	public static void main(String[] args){
		zzlb mi=new zzlb();
		mi.setSize(300,300);
		mi.show();
	}
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -