OpenCV - Bộ lọc song phương

Lọc hình ảnh cho phép bạn áp dụng các hiệu ứng khác nhau cho hình ảnh. Trong chương này và ba chương tiếp theo, chúng ta sẽ thảo luận về các hoạt động lọc khác nhau như Bộ lọc song phương, Bộ lọc hộp, Bộ lọc hộp SQR và Bộ lọc2D.

Bộ lọc song phương

Thao tác Bộ lọc song phương áp dụng hình ảnh song phương cho một bộ lọc. Bạn có thể thực hiện thao tác này trên một hình ảnh bằng cách sử dụngmedianBlur() phương pháp của imgproclớp học. Sau đây là cú pháp của phương thức này.

bilateralFilter(src, dst, d, sigmaColor, sigmaSpace, borderType)

Phương thức này chấp nhận các tham số sau:

  • src - A Mat đối tượng đại diện cho nguồn (hình ảnh đầu vào) cho hoạt động này.

  • dst - A Mat đối tượng đại diện cho đích (hình ảnh đầu ra) cho hoạt động này.

  • d - Một biến kiểu số nguyên đại diện cho đường kính của vùng lân cận pixel.

  • sigmaColor - Một biến kiểu số nguyên đại diện cho sigma bộ lọc trong không gian màu.

  • sigmaSpace - Một biến kiểu số nguyên đại diện cho bộ lọc sigma trong không gian tọa độ.

  • borderType - Một đối tượng số nguyên đại diện cho kiểu đường viền được sử dụng.

Thí dụ

Chương trình sau đây trình bày cách thực hiện thao tác Bộ lọc song phương trên ảnh.

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;

public class BilateralFilter {
   public static void main(String args[]) {
      // Loading the OpenCV core library
      System.loadLibrary( Core.NATIVE_LIBRARY_NAME );

      // Reading the Image from the file and storing it in to a Matrix object
      String file ="E:/OpenCV/chap11/filter_input.jpg";
      Mat src = Imgcodecs.imread(file);

      // Creating an empty matrix to store the result
      Mat dst = new Mat();

      // Applying Bilateral filter on the Image
      Imgproc.bilateralFilter(src, dst, 15, 80, 80, Core.BORDER_DEFAULT);

      // Writing the image
      Imgcodecs.imwrite("E:/OpenCV/chap11/bilateralfilter.jpg", dst);

      System.out.println("Image Processed");
   }
}

Giả sử rằng sau đây là hình ảnh đầu vào filter_input.jpg được chỉ định trong chương trình trên.

Đầu ra

Khi thực hiện chương trình, bạn sẽ nhận được kết quả sau:

Image Processed

Nếu bạn mở đường dẫn được chỉ định, bạn có thể quan sát hình ảnh đầu ra như sau: