Trong bài biết này giới thiệu 1 số bộ lọc ảnh số trong OpenCV. Show Nội dung chính
Lọc số ảnh là gì?
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ứcIdst = M * Isrc
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.
Ví dụ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
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ễuLọc trung bình - Median FilterÝ tưởngVớ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án1 ả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θ.
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ụngTrong 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ưởngLọ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 |