Bộ lọc Sobel được dụng để

Trong bài biết này giới thiệu 1 số bộ lọc ảnh số trong OpenCV.

Nội dung chính

  • Lọc số ảnh là gì?
  • Công thức
  • Nhân chập ảnh với phép lọc số ảnh
  • Công thức tính nhân chập
  • 1 số kỹthuật lọc nhiễu
  • Lọc trung bình - Median Filter
  • Lọc trung vị - Mean Filter

Lọc số ảnh là gì?

  • 1 hệ thống dùng để làm biến dạng sự phân bố tần số của các thành phần tín hiệu theo các chỉ tiêu gọi đã cho được gọi là bộ lọc số.
  • Lọc số ảnh(Filter) có ý nghĩa quan trọng trong việc tạo ra các hiệu ứng trong ảnh, 1 số hiệu ứng nhờ sử dụng các bộ lọc làm mờ (Blur), làm trơn (Smooth),...

Nguyên tắc chung của các phương pháp lọc là cho ma trận ảnh nhân chập với 1 ma trận lọc (Kernel) hay còn được gọi là các phép tính nhân chập trên ảnh. Ma trận lọc lọc (Kernel) còn có thể được gọi là cửa số chập, cửa sổ lọc, mặt nạ,... trong bài viết này sử dụng thuật ngữ ma trận lọc (Kernel).

Công thức

Idst = M * Isrc
  • Isrc: ảnh gốc được sử dụng để lọc số ảnh.
  • Idst: ảnh ra sau khi thực hiện xong phép lọc số ảnh.
  • M: ma trận lọc (Mask, kernel).

Với mỗi phép lọccó những ma trận lọc (Kernel)khác nhau, không có 1 quy định cụ thể nào cho việc xác định M.Kích thước ma trận M là 1 số lẻ. Ví dụ:3x3, 5x5.

Tổng Tpt các phẩn tử trong ma trận M thường là 1.

  • Tpt > 1:Ảnh sau khi thực hiện xong phép lọc số ảnh (Idst) có độ sáng lớn hơn so với ảnh ban đầu (Isrc).
  • Tpt < 1:Ảnh sau khi thực hiện xong phép lọc số ảnh (Idst) có độ sáng nhỏ hơn so với ảnh ban đầu (Isrc).

Ví dụ

Bộ lọc Sobel được dụng để

Nhân chập ảnh với phép lọc số ảnh

Để thực hiện 1 phép lọc số ảnh, cần phải tiến ảnh nhân chập ảnh đầu vào với 1 ma trận lọc hay cửa sổ nhân chập (Kernel). Toàn bộ các điểm ảnh (Pixel)trên ảnh sẽ được tiến hành nhân chập với ma trận lọc,tâm của ma trận lọc sẽ được đặt trùng vào vị trí của điểm ảnh (Pixel) đang được tính nhân chậplàm thay đổi các giá trị của pixel ban đầu.

Công thức tính nhân chập

  • n = (kích thước ma trận lọc - 1)/2.
  • Lấy tâm của ma trận lọc (Kernel) làm điểm gốc.

Ví dụ

1 ma trận điểm ảnh I và ma trận lọc (Kernel) M:

n = (3 - 1) / 2 = 1.Idst(2,2) = Isrc(2, 2) * M(u, v)
= Isrc(1, 1) * M(-1, -1) + Isrc(1, 2) * M(-1, 0) + Isrc(1, 3) * M(-1, 1) +
Isrc(2, 1) * M(0, -1) + Isrc(2, 2) * M(0, 0) + Isrc(2, 3) * M(0, 1) +
Isrc(3, 1) * M(1, -1) + Isrc(3, 2) * M(1, 0) + Isrc(3, 3) * M(1, 1)
= 2*1 + 4*2 + 3*3 + 5*4 + 7*5 + 2*6 + 7*7 + 6*8 + 2*9 = 201.

1 số kỹthuật lọc nhiễu

Lọc trung bình - Median Filter

Ý tưởng

Với lọc trung bình, mỗi điểm ảnh (Pixel) được thay thế bằng trung bình trọng số của các điểm trong vùng lân cận.

Giả sử rằng có 1 ma trận lọc (Kernel) (3x3) quét qua từng điểm ảnh của ảnh đầu vào Isrc. Tại vị trí mỗi điểm ảnh lấy giá trị của các điểm ảnh tương ứng trong vùng (3x3) của ảnh gốc đặt vào ma trận lọc (Kernel). Giá trị điểm ảnh của ảnh đầu ra Idst là giá trị trung bình của tất cả các điểm trong ảnh trong ma trận lọc (Kernel).

Thuật toán

1 ảnh đầu vào với I(x,y) là giá trị điểm ảnh tại 1 điểm (x,y) và 1 ngưỡngθ.

  • Bước 1: Tính tổng các thành phần trong ma trận lọc (Kernel).
  • Bước 2: Chia lấy trung bình của tổng các thành phần trong ma trận được tính ở trên với số lượng các phần tử của cửa sổ lọc ra 1 giá trị Itb(x, y).
  • Bước 3: Hiệu chỉnh:
    • Nếu I(x,y) - Itb(x,y) > θ thì I(x,y) = Itb(x,y).
    • Nếu I(x,y) - Itb(x,y) <= θ thì I(x,y) = I(x,y).

Chú ý

θ là 1 giá trị cho trước và có thể có hoặc không tùy thuộc vào mục đích.

Tác dụng

Trong lọc trung bình, thường ưu tiên cho các hướng để bảo vệ biên của ảnh khỏi bị mờ khi làm trơn ảnh. Các kiểu ma trận lọc (Kernel) được sử dụng tùy theo các trường hợp khác nhau. Các bộ lọc trên là bộ lọc tuyến tính theo nghĩa là điểm ảnh ở tâm cửa sổ sẽ được thay bởi tổ hợp các điểm lân cận chập với ma trận lọc (Kernel).

Ví dụ

Ma trận lọc (Kernel) M ở nội dung phần Ví dụ: Lọc số ảnh là gì?như ở trên và phía dưới lần lượt là ma trậnđiểm ảnh đầu vào (Isrc) và ma trận điểm ảnh đầu ra (Idst).

Idst(3,3) = (7+2+1+6+2+8+6+7+7) / 9 = 46 / 9 = 5.

Chú ý

Các hệ số trong ma trận lọc (Kernel)này có tổng bằng 1, nên độ sáng ảnh giữ nguyên, và các hệ số đều dương nên nó có khuynh hướng làm nhoè ảnh.

Lọc trung vị - Mean Filter

Ý tưởng

Lọc trung vị là lọc phi tuyến. 1 phép lọc phi tuyến là 1 kết quả không thể thu được từ 1 tổng trọng số của các điểm ảnh (Pixel) lân cận.Sau khi đã định nghĩa kích thước vùng lân cận, giá trị điểm ảnh (Pixel) trung tâm được thay bằng trung vị tức là giá trị chính giữa của tất cả các giá trị của các điểm trong vùng lân cận.

Cho 1 dãy số X1, X2, X3, ..., Xn được sắp xếp theo thứ tự tăng dần hoặc giảm dần. Khi đó Xtv được tính bởi công thức:

Nếu n lẻ:

Nếu n chẵn:

Kích thước của ma trận lọc (Kernel) thường dùng có kích thước 3x3, 5x5, 7x7.

Thuật toán