OpenCV - Gaussian Blur
Trong hoạt động Gaussian Blur, hình ảnh được đối chiếu với bộ lọc Gaussian thay vì bộ lọc hộp. Bộ lọc Gaussian là bộ lọc thông thấp loại bỏ các thành phần tần số cao bị giảm.
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ụng Gaussianblur() phương pháp của imgproclớp học. Sau đây là cú pháp của phương thức này:
GaussianBlur(src, dst, ksize, sigmaX)
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.
ksize - A Size đối tượng đại diện cho kích thước của hạt nhân.
sigmaX - Một biến kiểu double đại diện cho độ lệch chuẩn của hạt nhân Gaussian theo hướng X.
Thí dụ
Chương trình sau đây trình bày cách thực hiện thao tác làm mờ Gaussian trên ảnh.
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.Size;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
public class GaussianTest {
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 ="C:/EXAMPLES/OpenCV/sample.jpg";
Mat src = Imgcodecs.imread(file);
// Creating an empty matrix to store the result
Mat dst = new Mat();
// Applying GaussianBlur on the Image
Imgproc.GaussianBlur(src, dst, new Size(45, 45), 0);
// Writing the image
Imgcodecs.imwrite("E:/OpenCV/chap9/Gaussian.jpg", dst);
System.out.println("Image Processed");
}
}
Giả sử rằng sau đây là hình ảnh đầu vào sample.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: