java——实现中值、均值滤波器

入口类Entry.java

public class Entry {
   
public static void main(String[] args) {
   
	MyFrame myFrame=new MyFrame();
}
}

窗口类MyFrame.java

public class MyFrame extends JFrame{
   
	
	Filter mf;
	
	public MyFrame() {
   
		// TODO Auto-generated constructor stub
		init();//初始化
		addWindowListener(new WindowAdapter() {
   
			public void windowClosing(WindowEvent e){
   
				System.exit(0);
			}
		});
		MyPanel pdown=new MyPanel();
		pdown.setMedianR(1);
		this.add(pdown);
	}
		
	private void init() {
   
		// TODO Auto-generated method stub
		
		this.setTitle("中值滤波器");
		this.setSize(1000,1000);
		this.setVisible(true);
	}
}

面板类MyPanel.java

public class MyPanel extends Panel{
   
	private static final ImageObserver myFrame = null;
	Filter mf;
	private boolean flag_load=false;
	private int r=1;
	
	public void setMedianR(int r) {
   
		this.r = r;
	}
	Button load,median,k_mean,save,quit;//装载,中值,保存,退出
	JTextField rText;
	MyPanel(){
   
		this.setBackground(Color.lightGray);
		load=new Button("装载图像");
		
		median=new Button("中值滤波");
		k_mean=new Button("K-均值");
		save=new Button("保存");
		quit=new Button("退出");
		  
	        //添加按钮  
	        this.add(load);
	        this.add(median); 
	        this.add(k_mean);
	        this.add(save);  
	        this.add(quit);  
	        //按钮的动作程序  装载图像  
	        load.addActionListener(new ActionListener(){
         
	            public void actionPerformed(ActionEvent e){
     
	                try {
     
	                jLoad_ActionPerformed(e);  
	                } catch (IOException e1) {
     
	                    e1.printStackTrace();  
	                }  
	            }  
	        });
	      //按钮的动作程序  中值滤波  
	        median.
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
均值滤波是一种常见的图像处理滤波,用于去除图像中的噪点,平滑图像,使其更加清晰。Python中可以使用NumPy和OpenCV库实现各种均值滤波。 以下是几种常见的均值滤波的Python实现: 1. 简单均值滤波 简单均值滤波是最常见的均值滤波,它的卷积核中的每个元素都是相同的,都是1/(卷积核大小)。 ```python import cv2 import numpy as np def mean_filter(image, kernel_size): # 构造均值滤波卷积核 kernel = np.ones((kernel_size, kernel_size), np.float32) / kernel_size**2 # 进行卷积操作 result = cv2.filter2D(image, -1, kernel) return result ``` 2. 加权均值滤波 加权均值滤波在卷积核中使用不同的权重系数,权重系数与像素距离成反比。这种滤波通常用于去除椒盐噪声。 ```python import cv2 import numpy as np def weighted_mean_filter(image, kernel_size): # 构造加权均值滤波卷积核 kernel = np.zeros((kernel_size, kernel_size), np.float32) for i in range(kernel_size): for j in range(kernel_size): distance = ((i - kernel_size//2)**2 + (j - kernel_size//2)**2)**0.5 kernel[i][j] = 1 / (distance + 1) kernel /= kernel.sum() # 进行卷积操作 result = cv2.filter2D(image, -1, kernel) return result ``` 3. 中值滤波 中值滤波是一种非线性滤波,它用卷积核中的像素的中值替换原像素。这种滤波通常用于去除椒盐噪声。 ```python import cv2 import numpy as np def median_filter(image, kernel_size): # 进行中值滤波操作 result = cv2.medianBlur(image, kernel_size) return result ``` 以上是三种常见的均值滤波的Python实现。根据需求和实际情况,可以选择适合的均值滤波进行处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值