Tải bản đầy đủ (.docx) (23 trang)

KHÔI PHỤC ẢNH BỊ MỜ BẰNG PHẦN MỀM MÔ PHỎNG MATLAB (có code bên dưới)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.75 MB, 23 trang )

ĐỒ ÁN 3

KHÔI PHỤC ẢNH BỊ MỜ BẰNG PHẦN
MỀM MÔ PHỎNG MATLAB


MỤC LỤC


DANH MỤC CÁC HÌNH VẼ


DANH MỤC CÁC TỪ VIẾT TẮT

VCR

Video Cassette Recorder

PC

Personal Computer

CCD

Charge Coupled Device

TV

Television

VGA



Video Graphics Adapter

SVGA

Super Video Graphics Adapter

PSF

Point Spread Function

PSNR

Peak Signal to Noise Ratio


ĐỒ ÁN 3
Trang 5/20

CHƯƠNG 1.

GIỚI THIỆU VỀ ẢNH SỐ

1.1 Giới thiệu về ảnh số
-

1.1.1 Ảnh số là gì
Hình ảnh được ghi nhận bởi bộ cảm biến điện tử trong máy ảnh

-


Sau đó được lưu lại thành dữ liệu trong bộ nhớ của máy ( thẻ nhớ, đĩa,…)

-

Một ảnh được biểu diễn bằng 1 ma trận (2 chiều)
o Mỗi phần tử của ma trận biểu diễn cho mức xám hay cường độ sáng
của ảnh tại điểm đó
o Mỗi phần tử của ma trận đươc gọi là phần tử của ảnh, kí hiệu là PEL
(Picture Element) hoặc là điểm ảnh (Pixel)

-

1.1.2 Quá trình thu nhận ảnh
Hai thành phần là linh kiện nhạy với phổ năng lượng điện từ trường; loại thứ
nhất tạo tín hiệu điện ở đầu ra tỷ lệ với mức năng lượng của bộ cảm biên (vd:
camera,..), loại thứ hai là bộ số hóa

Bộ cảm biến ảnh:
Có nhiều loại làm việc với ánh sáng nhìn thấy và hồng ngoại như: Micro
Densitometers, Image Dissector, Camera Divicon, linh kiện quang điện bằng bán
dẫn
Camera Divicon và linh kiện bán dẫn quang điện có thể cho ảnh ghi trên bang từ có
thể số hóa
Trong Micro Densitometer, phim và ảnh chụp được gắn trên mặt phẳng hoặc cuốn
quang trống
Nếu quét ảnh thông qua tia sáng trên ảnh được dịch chuyển qua mặt phẳng phim
hoặc cuốn quang trống tương đối theo tia sáng. Trường hợp dung phim, tia sáng đi
qua phim
Các khối trong hệ thống:

Thiết bị nhận ảnh:

Khôi Phục Ảnh Mờ


ĐỒ ÁN 3
Trang 6/20

Chức năng: số hóa một bang tần số cơ bản của tín hiệu truyền hình cung cấp từ một
Camera, hoặc từ một đầu máy VCR. Ảnh số sau đó được lưu trử trong bộ đệm
chính, bộ đệm này có khả năng được địa chỉ hóa (thông qua PC) đến từng điểm
bằng phần mềm. Thông thường thiết bị này có nhiều chương trình con điều khiển để
có thể lập trình được.
Camera:
Có 2 kiểu camera: kiểu dung đèn chân không hoặc kiểu chỉ dung bán dẫn (Camera
bán dẫn được dung nhiều hơn camera dung đén chân không). Camera bán dẫn cũng
được gọi là CCD camera do dung các thanh ghi dịch đặc biệt gọi là thiết bị gộp. các
CCD này chuyển các tín hiệu ảnh từ bộ cảm biến ánh sáng bổ trợ ở trước camera
thành các tín hiệu điện sau đó được mã hóa thành tín hiệu TV. Loại camera chất
lượng cao cho tín hiệu ít nhiễu và có độ nhạy cao với ánh sáng.
Màn hình video:
Hiển thị hình ảnh thu nhận được lên màn hình
Máy tính:
Các chương trình thiết kế và lọc ảnh có thể chạy trên bất kì hệ thống nào. Các
chương trình con hiển thị ảnh có thể dung vi mạch VGA hoặc SVGA
Lấy mẫu và lượng tử hóa
Một ảnh g(x,y) ghi được từ camera là ảnh lien tục tạo nên mặt phẳng 2 chiều. Ảnh
cần chuyển sang dạng thích hợp để xử lý bằng máy tính. Phương pháp biến đổi 1
ảnh hay 1 hàm lien tục trong không gian cũng như theo giá trị thành dạng số rời rạc
được gọi là số hóa ảnh. Gồm 2 bước:

Đo giá trị trong các khoảng không gian gọi là lấy mẫu
Lấy mẫu là quá trình ảnh được tạo nên trên một vùng có tính lien tục được chuyển
thành các giá trị rời rạc theo tọa độ nguyên
Lượng tử hóa là quá trình ánh xạ các số thực mô tả giá trị lấy mẫu thành một dãy
hữu hạn các số thực. Nói cách khác nó là quá trình số hóa biên độ

CHƯƠNG 2.

Khôi Phục Ảnh Mờ

CÁC NGUYÊN NHÂN LÀM MỜ ẢNH


ĐỒ ÁN 3
Trang 7/20

-

2.1 Tốc độ màn trập quá chậm
Màn trập (Shutter) là bộ phận cơ khí trong máy ảnh có nhiệm vụ ấn định thời
gian để ánh sáng sau khi đi qua ống kính sẽ tiếp xúc với cảm biến ảnh (hoặc
bề mặt phim). Khoảng thời gian đóng/mở đó được gọi là thời gian vận hành
của màn trập hoặc tốc độ màn trập

-

Tốc độ màn trập chậm thì hình ảnh có nhiều khả năng không được sắc nét.
Đảm bào rằng tốc độ màn trập thấp nhất phải trùng với tiêu cự của ống kính

-


Để đảm bảo chắc chắn, ta nhân đôi tiêu cự của ống kính

2.2 Chủ thể di chuyển nhanh
Để bắt dính đối tượng chup, cần chỉnh một tốc độ chụp đủ nhanh để làm ngưng (bắt
dính nét) hoạt động đang diễn tiến
2.3 Lấy nét trật
Các nguyên nhân làm ảnh bị trật nét:
-

Chủ thể được chụp ở phía sau một vật phía trước dẫn đến máy sẽ lấy nét ở
phần phía trước chủ thể muốn chụp

-

Ở chế độ ưu tiên khẩu độ hay Manual ta thường set máy ở chế độ lấy nét
theo điểm, ta setup điểm lấy nét ở phía trên góc trái mà khi chụp ta lại để
mẫu đứng ở 1/3 góc bên phải => lấy nét sai

CHƯƠNG 3.

PHẦN MỀM KHÔI PHỤC ẢNH MỜ VÀ KẾT QUẢ

Giới thiệu về Matlab:
-

Là phần mềm toán học để lập trình, tính toán số và có tính trực quan cao

-


Làm việc chủ yếu với ma trận, với nhiều kiểu dữ liệu khác nhau, với chuỗi kí
tự hay chuỗi mã số các kí tự

Khôi Phục Ảnh Mờ


ĐỒ ÁN 3
Trang 8/20

-

Giải quyết các bài toán về giải tích số, xử lý tín hiệu số, xử lý đồ họa… mà
không cần lập trình cổ điển

-

Hỗ trợ các Toolbox và tiện ích cho người dùng như toán sơ cấp, xử lý tín
hiệu số, xử lý ảnh, xử lý âm thanh, ma trận thưa, logic mờ,…

Xử lý ảnh với Matlab:
-

Một số hàm cơ bản trong xử lý ảnh:
o Imread()
o Imshow()
o Imwrite()
o Rgb2gray()
o Imadjust()

 Imread(): đọc một file ảnh thành một ma trận, Matlab trợ giúp nhiều kiểu

định dạng như GIF, JPEG, PNG, TIFF
 Imshow() và imagesc()
o Imshow(): cho 1 hình ảnh trong định dạng chuẩn 8 bit, giống như 1
trình duyệt web
o Imagesc():hiển thị các hình ảnh trên các trục đồ thị với giá trị min là
màu đen và giá trị tối đa là màu trắng.
 Imwrite():Lưu 1 ảnh nào đó với tên mong muốn
 Imadjust():điều chỉnh giá trị cường độ hình ảnh. Câu lệnh này làm tăng độ
tương phản của hình ảnh đầu ra.
 Rgb2gray: chuyển đổi hình ảnh RGB thành trắng đen bằng cách loại bỏ các
thông tin màu sắc và độ bão hòa nhưng vẫn giữ độ sáng.
-

Một ảnh bị mờ được mô tả vắn tắt bởi phương trình g=Hf+n, trong đó
o g: ảnh bị mờ
o H: tác nhân làm méo (PSF)
o f: ảnh góc (cần tìm)
o n: nhiễu phu, được tạo ra trong quá trình nhận ảnh, nó làm hỏng ảnh

Khôi Phục Ảnh Mờ


ĐỒ ÁN 3
Trang 9/20

-

Tầm quan trọng của PSF:
o Được sử dụng trong hàm imfilter để convolve PSF với ảnh gốc để tạo
ra ảnh giả mờ Blurred


-

Các hàm khôi phục ảnh mờ trong Matlab
o Deconvwnr: Sử dụng bộ lọc Wiener
o Deconvreg: Sử dụng bộ lọc được quy tắc hóa
o Deconvlucy: Sử dụng giải thuật Lucy-Richardson
o Deconvblind: Sử dụng giải thuật blind deconvolution
Trong đó: Hàm deconvwnr và deconvreg cung cấp một số thông tin về nhiễu
để giảm sự khuếch đại nhiễu đến mức có thể trong quá trình khôi phục.
Hàm deconvlucy không cần cung cấp thông tin về nhiễu trong ảnh. Hàm
deconvblind không cần nhận ra PSF, ta truyền 1 giá trị dự đoán ban đầu cho
PSF và deconvblind sẽ trả lại một PSF đã được khôi phục để khôi phục ảnh,
làm việc cùng chế độ suy giảm và lặp như hàm deconvlucy

CHƯƠNG 1.

KẾT QUẢ MÔ PHỎNG

Ở đây ta dùng bộ lọc Wiener để khử mờ cho ảnh dựa trên các trường hợp dao động
của nhiễu khác nhau:
1.1 Mô hình mô phỏng
a. Khử mờ bằng bộ lọc Wiener với nhiễu biến đổi cao
-

Noise_var=0.01

Khôi Phục Ảnh Mờ



ĐỒ ÁN 3
Trang 10/20

Hình 1) PSNR giữa ảnh mờ với mức nhiễu tương ứng và I

Hình 2) PSNR giữa ảnh sau khi qua bộ lọc Wiener và ảnh góc

Khôi Phục Ảnh Mờ


ĐỒ ÁN 3
Trang 11/20

Hình 3) PSNR giữa ảnh sau khi qua bộ lọc Nhiễu và ảnh góc

b. Khử mờ bằng bộ lọc Wiener với nhiễu biến đổi thấp

-

Noise_var=0.0001

Khôi Phục Ảnh Mờ


ĐỒ ÁN 3
Trang 12/20

Hình 4) PSNR giữa ảnh mờ với mức nhiễu tương ứng và I

Hình 5) PSNR giữa ảnh sau khi qua bộ lọc Wiener và ảnh góc


Khôi Phục Ảnh Mờ


ĐỒ ÁN 3
Trang 13/20

Hình 6) PSNR giữa ảnh sau khi qua bộ lọc Nhiễu và ảnh góc

c. Khử mờ bằng bộ lọc Wiener với ảnh không có nhiễu biến đổi
-

Noise_var=0

Hình 7) PSNR giữa ảnh mờ với mức nhiễu tương ứng và I

Khôi Phục Ảnh Mờ


ĐỒ ÁN 3
Trang 14/20

Hình 8) PSNR giữa ảnh sau khi qua bộ lọc Wiener và ảnh góc

Hình 9) PSNR giữa ảnh sau khi qua bộ lọc Nhiễu và ảnh góc

Khôi Phục Ảnh Mờ


ĐỒ ÁN 3

Trang 15/20

1.2 Kết quả mô phỏng
a. Khử mờ bằng bộ lọc Wiener với nhiễu biến đổi cao
-

Noise_var=0.01

Hình 10) Kết quả sau khi khử mờ có Nhiễu dao động cao

Khôi Phục Ảnh Mờ


ĐỒ ÁN 3
Trang 16/20

b. Khử mờ bằng bộ lọc Wiener với nhiễu biến đổi thấp
-

Noise_var=0.0001

Hình 11) Kết quả sau khi khử mờ có Nhiễu dao động thấp

Khôi Phục Ảnh Mờ


ĐỒ ÁN 3
Trang 17/20

c. Khử mờ bằng bộ lọc Wiener với ảnh không có nhiễu biến đổi

-

Noise_var=0

Hình 12) Kết quả sau khi khử mờ không có Nhiễu dao động

CHƯƠNG 2.

NHẬN XÉT

1.3 Nhận xét 1
Tùy theo các mức dao động của nhiễu khác nhau, hình ảnh sau khi qua bộ lọc sẽ có
các hiệu suất khác nhau
-

Ảnh có mức dao động nhiễu cao sau khi qua bộ lọc sẽ thu được hình ảnh có
mức nhiễu cao tương ứng và PSNR cao

-

Ảnh có mức dao động nhiễu thấp sau khi qua bộ lọc sẽ thu được hình ảnh có
mức nhiễu thấp tương ứng và PSNR thấp

-

Ảnh không có dao động nhiễu sau khi qua bộ lọc sẽ thu được hình ảnh gần
như không có nhiễu, hình ảnh gần như được lọc hoàn toàn và PSNR=0

CHƯƠNG 3.


Khôi Phục Ảnh Mờ

KẾT LUẬN


ĐỒ ÁN 3
Trang 18/20

1.4 Kết luận
Sau khi mô phỏng khôi phục ảnh mờ bằng matlab, ảnh có mức dao động nhiễu càng
lớn sẽ cho hình ảnh sau khi khôi phục có mưc nhiễu càng lớn và ngược lại
1.1.1 Kết luận 1
Mức dao động nhiễu ảnh hưởng đến khả năng khôi phục ảnh mờ
1.1.2 Kết luận 2
Tỷ lệ tính hiệu trên nhiễu tính theo peak thể hiện tỷ lệ khôi phục giữa ảnh sau khi
khôi phục và ảnh gốc
3.1 Hướng phát triển
Có thể kết hợp với các mạch chống trộm hoặc camera an ninh để thuận tiện cho việc
quan sát, cảnh báo. Ngoài ra còn được dùng trong các lĩnh vực quốc phòng, hang
không,… để giám sát, điều khiển các phương tiện, thiết bị và có phương pháp điều
chỉnh phù hợp

PHỤ LỤC A
-

Noise_var=0.01
clear all
clc
I = im2double(imread('cameraman.tif'));
imshow(I);

title('Original Image (courtesy of MIT)');;

Khôi Phục Ảnh Mờ


ĐỒ ÁN 3
Trang 19/20

LEN = 21;
THETA = 11;
PSF = fspecial('motion', LEN, THETA);
blurred = imfilter(I, PSF, 'conv', 'circular');
A=psnr(blurred,I)
noise_mean = 0;
noise_var = 0.01;
blurred_noisy = imnoise(blurred, 'gaussian', ...
noise_mean, noise_var);
B=psnr(blurred_noisy,I)
estimated_nsr = 0;
wnr2 = deconvwnr(blurred_noisy, PSF, estimated_nsr);
C=psnr(wnr2,I)
estimated_nsr = noise_var / var(I(:));
wnr3 = deconvwnr(blurred_noisy, PSF, estimated_nsr);
D=psnr(wnr3,I)
m = 3; n = 3;
w = fspecial('average', [m, n]);
f1 = imfilter(wnr3, w);
E=psnr(f1,I)
subplot(231),imshow(I)
title('Original Image (courtesy of MIT)');


Khôi Phục Ảnh Mờ


ĐỒ ÁN 3
Trang 20/20

subplot(232), imshow(blurred)
title('blurred')
subplot(233), imshow(blurred_noisy)
title('Simulate Blur and Noise')
subplot(234), imshow(wnr2)
title('Restoration of Blurred, Noisy Image Using NSR = 0 ')
subplot(235), imshow(wnr3)
title('

Restoration of Blurred, Noisy Image Using Estimated NSR');

subplot(236),imshow(f1)
title('Cleared Noise')
-

Noise_var=0.0001
clear all
clc
I = im2double(imread('cameraman.tif'));
imshow(I);
title('Original Image (courtesy of MIT)');;

LEN = 21;

THETA = 11;
PSF = fspecial('motion', LEN, THETA);
blurred = imfilter(I, PSF, 'conv', 'circular');
A=psnr(blurred,I)
noise_mean = 0;
noise_var = 0.0001;
blurred_noisy = imnoise(blurred, 'gaussian', ...
noise_mean, noise_var);

Khôi Phục Ảnh Mờ


ĐỒ ÁN 3
Trang 21/20

B=psnr(blurred_noisy,I)
estimated_nsr = 0;
wnr2 = deconvwnr(blurred_noisy, PSF, estimated_nsr);
C=psnr(wnr2,I)
estimated_nsr = noise_var / var(I(:));
wnr3 = deconvwnr(blurred_noisy, PSF, estimated_nsr);
D=psnr(wnr3,I)
m = 3; n = 3;
w = fspecial('average', [m, n]);
f1 = imfilter(wnr3, w);
E=psnr(f1,I)
subplot(231),imshow(I)
title('Original Image (courtesy of MIT)');
subplot(232), imshow(blurred)
title('blurred')

subplot(233), imshow(blurred_noisy)
title('Simulate Blur and Noise')
subplot(234), imshow(wnr2)
title('Restoration of Blurred, Noisy Image Using NSR = 0 ')
subplot(235), imshow(wnr3)
title('

Restoration of Blurred, Noisy Image Using Estimated NSR');

subplot(236),imshow(f1)
title('Cleared Noise')
-

Noise_var=0
clear all

Khôi Phục Ảnh Mờ


ĐỒ ÁN 3
Trang 22/20

clc
I = im2double(imread('cameraman.tif'));
imshow(I);
title('Original Image (courtesy of MIT)');;

LEN = 21;
THETA = 11;
PSF = fspecial('motion', LEN, THETA);

blurred = imfilter(I, PSF, 'conv', 'circular');
A=psnr(blurred,I)
noise_mean = 0;
noise_var = 0;
blurred_noisy = imnoise(blurred, 'gaussian', ...
noise_mean, noise_var);
B=psnr(blurred_noisy,I)
estimated_nsr = 0;
wnr2 = deconvwnr(blurred_noisy, PSF, estimated_nsr);
C=psnr(wnr2,I)
estimated_nsr = noise_var / var(I(:));
wnr3 = deconvwnr(blurred_noisy, PSF, estimated_nsr);
D=psnr(wnr3,I)
m = 3; n = 3;
w = fspecial('average', [m, n]);
f1 = imfilter(wnr3, w);

Khôi Phục Ảnh Mờ


ĐỒ ÁN 3
Trang 23/20

E=psnr(f1,I)
subplot(231),imshow(I)
title('Original Image (courtesy of MIT)');
subplot(232), imshow(blurred)
title('blurred')
subplot(233), imshow(blurred_noisy)
title('Simulate Blur and Noise')

subplot(234), imshow(wnr2)
title('Restoration of Blurred, Noisy Image Using NSR = 0 ')
subplot(235), imshow(wnr3)
title('

Restoration of Blurred, Noisy Image Using Estimated NSR');

subplot(236),imshow(f1)
title('Cleared Noise')

Khôi Phục Ảnh Mờ



×