Lọc tuyến tính

Một phần của tài liệu Thiết kế và thi công mobile robot bám theo đối tượng dùng phương pháp xử lý ảnh (Trang 34 - 35)

1. 3.2 Các khái niệm và qui ước trong Image Processing Toolbox

2.2.2.1Lọc tuyến tính

Ta xét một ví dụ cụ thể sử dụng hàm imfilter: Giả sử ta có một ảnh f ở class double, kích

thước 512x512 >>w=ones(31);

cho ta mặt nạ lọc là ma trận vuông 31 31. Do đây là ma trận đối xứng nên toán tương quan và chập là như nhau. a b c d e f Hình 2.4

Hình a là ảnh ban đầu. Hình b là kết quả của quá trình lọc ảnh dùng padding là các mức xám giá trị 0(màu đen), ta thấy ảnh bị làm mờ đi ở cạnh giữa 2 vùng trắng và đen, cũng như giữa phần biên ảnh với vùng trắng. Điều này có thể giải thích như sau: Do mức xám tại một điểm là tổng của các tích mức xám các điểm vùng lân cận với hệ số của bộ lọc, ở đây các hệ số bộ lọc là 1, do đó mỗi điểm ảnh xem như là giá trị trung bình của các điểm ảnh xung quanh, dẫn đến kết quả như trên. Ta có thể loại bỏ phần mờ ở vùng biên bằng cách dùng thông số „replicate‟

hoặc „symmetric‟ như ở kết quả c và d. Với hình e, ta sử dụng thông số „circular‟. Do sự lập lại có tính chu kỳ làm cho vùng sáng và tối nằm cạnh nhau, dẫn đến kết quả là toàn bộ biên ảnh cũng như phần cạnh giữa 2 vùng sáng và tối bên trong bức ảnh bị mờ.

Nếu ta sử dụng ảnh ban đầu là class uint8 và sử dụng bộ lọc w như trên, ta nhận được kết quả là hình f với một phần dữ liệu ảnh gốc bị mất. Lý do là các giá trị lớn hơn 255 đều bị gán giá trị 255. Để giải quyết vấn đề đó, cửa sổ lọc cần được chuẩn hóa trước khi tiến hành lọc:

>>w=w/(sum(w(:)));

Ta có công thức tính mức xám của ảnh sau xử lý qua bộ lọc chuẩn hóa:

Một phần của tài liệu Thiết kế và thi công mobile robot bám theo đối tượng dùng phương pháp xử lý ảnh (Trang 34 - 35)