Làm mờ bằng bộ lọc thông thấp loại bỏ tần số cao (nhiễu, cạnh). Median Blur thay thế pixel trung tâm bằng giá trị trung vị của các pixel trong kernel, rất hiệu quả khử nhiễu muối tiêu (salt-and-pepper).
Dùng Imgproc.medianBlur(src, dst, ksize) với ksize là kích thước kernel (số lẻ).
Ví dụ (JavaFX)
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.IOException;
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
import javafx.application.Application;
import javafx.embed.swing.SwingFXUtils;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.image.ImageView;
import javafx.scene.image.WritableImage;
import javafx.stage.Stage;
public class MedianBlurExample extends Application {
public void start(Stage stage) throws IOException {
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
String file = "D:\\Images\\logo_noise.jpg";
Mat src = Imgcodecs.imread(file);
Mat dst = new Mat(src.rows(), src.cols(), src.type());
Imgproc.medianBlur(src, dst, 5);
Image img = HighGui.toBufferedImage(dst);
WritableImage writableImage = SwingFXUtils.toFXImage((BufferedImage) img, null);
ImageView imageView = new ImageView(writableImage);
imageView.setX(10); imageView.setY(10);
imageView.setFitWidth(575); imageView.setPreserveRatio(true);
Group root = new Group(imageView);
Scene scene = new Scene(root, 595, 400);
stage.setTitle("Median Blur Example");
stage.setScene(scene);
stage.show();
}
public static void main(String args[]) { launch(args); }
}
Ảnh gốc có nhiễu

Ảnh sau Median Blur (kernel 5x5)
