简单介绍一下中值滤波:
数字图像的采样或传输在经过传感器或传输通道时经常受到噪声的干扰。为了便利进一步的图像操作,如:边缘检测、图像分割和模式识别等,有必要甚至是必须对受噪图像进行滤波。中值滤波是由Tukey发明的一种非线性信号处理技术,由于其在滤除噪声的同时,能够很好地保护图像的边缘,因此得到了广泛的应用。但通常的中值滤波中的数据排序费时较多,特别在大窗口下,需要进行大量的数据比较工作,不利于图像快速实时的处理。因而有必要研究中值滤波。
代码如下:
package picture;
import java.awt.Color;
import java.awt.image.BufferedImage;
import java.awt.image.ColorModel;
import java.io.*;
import java.util.Arrays;
import java.awt.*;
import javax.imageio.*;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import java.lang.Object;
class Inco extends JFrame{
JButton[] buttons = new JButton[12];
public Inco()
{
super("Inco");
setSize(671,367);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
//这里我用了图片的绝对路径,根据你的图片写路径就可以了
ImageIcon ic = new ImageIcon("C:/Users/ddl/Desktop/zzlb4.png");
JLabel label=new JLabel();
label.setIcon(ic);
panel.add(label);
setContentPane(panel);
show();
}
}
public class prcessing {
public static void main(String[] args) throws IOException {
medianFiltering();
Inco ik = new Inco();
}
public static void medianFiltering() throws IOException {
BufferedImage img = ImageIO.read(new File("C:/Users/ddl/Desktop/zzlb4.png"));
int w = img.getWidth();
int h = img.getHeight();
int[] pix = new