Tiến hành thử nghiệm

Một phần của tài liệu Tìm hiểu về bộ lọc Wiener, ước lượng bình phương tối thiểu (Trang 28 - 39)

III. Mô phỏng thử nghiệm Wiener Filter

2. Tiến hành thử nghiệm

Quy trình:

∗ Dùng 1 ảnh có chất lượng tốt, coi như là ảnh lý tưởng ( không có sự xuống cấp

hay ảnh hưởng của nhiễu và quang học)

∗ Tạo ra sự xuống cấp lên ảnh như tạo nhiễu hay làm tác đông quang học do

chuyển đông

∗ Khôi phục lại bằng các hàm sử dụng bô lọc weiner được chương trình Matlab

cung cấp sẵn.

Thực hiện:

∗ Đọc vào ảnh đa mức xám lưu ma trận điểm ảnh

I = imread('D:\lena.jpg'); imshow(I); title('anh goc');

∗ Tạo nhiễu ngẫu nhiên, nhiễu trắng Gaussian:

noise_mean = 0; noise_var = 0.01;

J = imnoise(I, 'gaussian', noise_mean, noise_var); imshow(J); title('anhnhieu'); ∗ Khôi phục ảnh bằng hàm wiener2: K = wiener2(J,[5 5]); figure, imshow(K); title('anhphuchoi'); Kết quả:

Sau khi quan sát ảnh khôi phục có thể thấy nhiễu đã giảm, nhưng đồng thời đường

nét cũng không còn rõ ràng nữa, điều này là hiển nhiên.

Thuật toán mà wiener2() sử dụng:

Với NM chỉ lân cận của mỗi điểm ảnh trong hình ảnh. wiener2() sau đó tạo ra môt

bô lọc Wiener pixel thông minh bằng cách sử dụng những ước tính này

Trong đólà phương sai nhiễu. Nếu đúng nhiễu không phải là nhất

định, wiener2() sử dụng trung bình của tất cả các ước tính chênh lệch địa phương.

Rõ ràng từ 2 ảnh ta có thể thấy ảnh lọc bằng Wiener 2 sử dụng phương pháp

adaptive Wiener ảnh giữ lại nhiều đường nét hơn ảnh lọc bằng lọc trung vị

Thử nghiệm khôi phục ảnh bị ảnh hưởng quang học (do chuyển động) và có nhiễu

∗ Đọc ảnh vào coi như là ảnh lý tưởng

I = im2double(imread('D:\lena.jpg')); imshow(I); title('anh goc');

∗ Giả định rằng trong quá trình chụp ảnh ống kính bị rung hay do vật được chụp

chuyển đông nhanh qua ống kính khi chụp. Chúng ta sẽ mô phỏng hiện tượng

này bằng cách tạo ra đáp ứng xung H sau đó nhân chập ảnh với ảnh gốc để tạo

ra ảnh bị nhòe

H=fspecial('motion',11,5); anh_bi_mo=imfilter(I,H,'conv'); figure,imshow(anh_bi_mo); title('Anh bi lam mo');

∗ Sử dụng hàm imnoise để tạo thêm nhiễu gaussian lên ảnh

noise_mean = 0; noise_var = 0.001;

anh_bi_monhieu = imnoise(anh_bi_mo, 'gaussian', noise_mean, noise_var); figure, imshow(anh_bi_monhieu);

title('ANH BI LAM MO VA NHIEU');

∗ Khôi phục sử dụng bô lọc wiener có sử dụng ước lượng nhiễu khi biết phương

sai của hàm tạo nhiễu (noise_var).

uocluong_nhieu= noise_var / var(I(:));% day chinh la ti so SNR

wnr3 = deconvwnr(anh_bi_monhieu, H, uocluong_nhieu); % ti so SNR 0 figure, imshow(wnr3);

title('anh sau khi loc bang weiner');

Kết quả:

Ảnh thêm nhiễu nữa: Ảnh lọc bằng Wiener:

Thêm môt thử nghiệm nữa: ảnh mờ do chuyển đông + nhiễu Gauss được lọc bởi

lọc trung bình và kết quả sẽ được như sau:

I = imread('D:\lena_mo_nhieu.jpg'); H = fspecial('average');

K = imfilter(I,H,'conv');

Lọc bằng lọc ngược:

Có thể nhận xét từ các kết quả lọc Wiener và lọc trung bình thì lọc Wiener khôi

phục lại đường nét rõ ràng nhưng cũng đồng thời đã làm cho nhiễu tăng cường lên,

ảnh hưởng quang học (do chuyển đông) gần như đã mất. Ngược lại ảnh được lọc

loại bỏ. Đặc biệt lọc ngược rất nhạy cảm với nhiễu nên ta có được kết quả ảnh

Tài liệu tham khảo

Books:

1. Nhập môn xử lý ảnh Lương Mạnh Bá – Nguyễn Thanh Thủy

2. Adaptive filter theory (3rd_ed) Simon Haykin

3. Digital Image Processing 2nd by Rafael C. Gonzalez Richard E. Woods

Websites: 4. http://En.Wikipedia/wiki/Wiener_Filter 5. http://En.Wikipedia/wiki/Wiener_deconvolution 6. http://en.wikipedia.org/wiki/Least_mean_squares_filter 7. http://en.wikipedia.org/wiki/Minimum_mean-square_error 8. http://en.wikipedia.org/wiki/Wiener%E2%80%93Hopf_method 9. http://www.owlnet.rice.edu/~elec539/Projects99/BACH/proj2/wiener.html 10. http://www.mathworks.com/help/toolbox/images/ 11.

Một phần của tài liệu Tìm hiểu về bộ lọc Wiener, ước lượng bình phương tối thiểu (Trang 28 - 39)

Tải bản đầy đủ (DOCX)

(39 trang)
w