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

Bài tập lớn haar 9.5 điểm

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 (385.97 KB, 20 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA


BÁO CÁO BÀI TẬP LỚN
ĐẠI SỐ TUYẾN TÍNH
ĐỀ TÀI 23: GIỚI THIỆU PHÉP BIẾN ĐỔI HAAR

GVHD: THẦY BÙI ANH TUẤN
LỚP:


ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
BỘ MÔN: VẬT LÝ ỨNG DỤNG


BÁO CÁO BÀI TẬP LỚN
ĐẠI SỐ TUYẾN TÍNH

ĐỀ TÀI 23: GIỚI THIỆU PHÉP BIẾN ĐỔI
HAAR

GVHD: THẦY BÙI ANH TUẤN
LỚP:

2


DANH SÁCH THÀNH VIÊN
STT



HỌ VÀ TÊN

MSSV

1
2
3
4
5
6
7
8
9
10

3


MỤC LỤC

4


CHƯƠNG 1: ĐỀ TÀI
1. Yêu cầu:
- Giới thiệu phép biến đổi Haar.
- Viết chương trình sử dụng phép biến đổi Haar để nén dữ liệu.

2. Nhiệm vụ:

- Dùng matlab để triển khai việc nén ảnh thông qua phép biến đổi
Haar.

5


CHƯƠNG 2: LỜI MỞ ĐẦU
Cuộc sống càng phát triển thì nhu cầu thông tin của con người càng
phong phú, dẫn đến sự phát triển mạnh mẽ của khoa học kỹ thuật,
các loại hình thơng tin vơ tuyến, các hình thức xử lý tín hiệu, đặc
biệt là cơng nghệ xử lý ảnh. Vấn đề này đặt ra yêu cầu ngày càng
cao trong việc xử lý tín hiệu để đảm bảo vừa có thể nén dữ liệu, tiết
kiệm dung lượng trên đường truyền tín hiệu, vừa đảm bảo loại trừ
nhiễu tín hiệu và có khả năng khơi phục lại được tín hiệu với chất
lượng tốt.
Có rất nhiều phương pháp xử lý tín hiệu với rất nhiều thuật toán,
biến đổi toán học đã được nghiên cứu. Trong số đó, biến đổi Haar
hiện nay đang được xem là một phép biến đổi mới, có rất nhiều
tiềm năng, đang phát triển khá mạnh mẽ với các ưu điểm vượt trội
so với các phép biến đổi truyền thống. Haar cho phép phân tích tín
hiệu cả trong miền thời gian và tần số. Do đó, hiện nay biến đổi
Haar đang được ứng dụng khá rộng rãi trong nhiều lĩnh vực, từ y
sinh tới công nghệ xử lý ảnh.
Trong bài báo cáo này, em xin phép được giới thiệu về:"Tìm hiểu
phép biến đổi Haar, khảo sát, phân tích và xây dựng một ứng dụng
của phép biến đổi Haar trong xử lý ảnh”.

6



CHƯƠNG 3: GIỚI THIỆU HAAR VÀ PHÉP ĐỔI HAAR WAVELET
3.1 Tổng quan:
Trong toán học, các wavelet Haar là một chuỗi các chức năng “
hình vng” rescaled mà cùng nhau tạo thành một gia đình wavelet hoặc
cơ sở. Phân tích Wavelet tương tự
như phân tích Fourier ở chỗ nó cho phép một hàm mục tiêu trong một khoảng
thời gian

được biểu diễn dưới dạng cơ sở trực giao . Trình tự Haar bây giờ được công nhận
là cơ sở
wavelet được biết đến đầu tiên và được sử dụng rộng rãi như một ví dụ giảng
dạy.
Các chuỗi Haar đã được đề xuất vào năm 1909 bởi Alfréd Haar . Haar sử dụng
các hàm
này để đưa ra một ví dụ về một hệ thống trực giao cho khơng gian của các hàm
có thể
tích phân vuông trong khoảng thời gian đơn vị [0, 1]. Các nghiên cứu về
wavelet, và
thậm chí cả thuật ngữ "wavelet", đã không đến cho đến sau này. Như một
trường hợp đặc
biệt của wavelet Daubechies , wavelet Haar còn được gọi là Db1.
Haar wavelet cũng là wavelet đơn giản nhất có thể. Những bất lợi kỹ thuật của
wavelet
Haar là nó khơng phải là liên tục , và do đó khơng phải là khác biệt . Tuy nhiên,
tài sản
này có thể là một lợi thế cho việc phân tích các tín hiệu với sự chuyển đổi đột

7



ngột, chẳng
hạn như giám sát lỗi công cụ trong máy.

8


3.2 Haar Wavelet:
Chúng ta bắt đầu với 4 hàm wavelet cơ bản được Alphré Haar (nhà
toán học Hungary) giới thiệu năm 1910.

Hàm Haar wavelet thứ nhất

Hình 3.2.1 4 hàm Haar Wavelet

gọi là hàm scaling
(scaling function),
xác định như sau:
ϕ1(t) = ϕ(t) ≡ 1, 0 ≤ t
≤1,

Hàm Haar wavelet thứ hai

gọi là wavelet mẹ
(mother wavelet):

Giá trị của hàm w(t) tại những điểm rời rạc không quan trọng lắm, nhưng tương tự
trường hợp khai triển Fourier ta quy ước cho w(t) = 0, tại các điểm t=0,,1

9



Hàm Haar wavelet thứ ba và hàm Haar wavelet thứ tư là dạng nén của hàm wavelet
mẹ,được gọi là các hàm wavelet con (daughter wavelet), xác định như sau:

Hàm scaling j(t) và wavelet w(t) được mở rộng lên toàn bộ tập số thực R bằng cách cho
nhận giá trị 0 bên ngồi khoảng cơ bản:

Khi đó ta biểu diễn
(t)- ղ(t-1)
(t) -2(t-) + ղ(t-1)

10


3.2 Biến đổi Haar:
Biến đổi Haar là đơn giản nhất của các biến đổi wavelet . Sự biến
đổi này nhân chéo một hàm với Haar wavelet với các thay đổi và
trải dài khác nhau, giống như phép biến đổi Fourier nhân chéo một
hàm chống lại sóng sin với hai pha và nhiều đoạn trải dài.
Biến đổi Haar là một trong những chức năng biến đổi lâu đời nhất,
được đề xuất vào năm 1910 bởi nhà toán học người Hungary Alfréd
Haar . Nó được tìm thấy hiệu quả trong các ứng dụng như nén tín
hiệu và hình ảnh trong kỹ thuật điện và máy tính vì nó cung cấp
một cách tiếp cận đơn giản và hiệu quả về mặt tính tốn để phân
tích các khía cạnh địa phương của tín hiệu.
Biến đổi Haar bắt nguồn từ ma trận Haar. Các hàm Haar được định
nghĩa trong một khoảng liên tục t [0, 1].

3.3 Cơ sở phép biến đổi Haar:
-


Họ các hàm N Haar hk (t),(k=0,…,N-1) được xác định trên khoảng t [0,1] . Hình
dạng của hàm cụ thể của một chỉ số nhất định phụ thuộc vào hai tham số p và q

Cơ sở phép biến đổi:
k = 2p +q -1
- Với bất kỳ giá trị nào của k ≥ 0, p và q được xác định duy nhất sao
cho 2p là lũy thừa lớn nhất của 2 chứa trong k (2p < k) và q -1 là
-

phần dư .
Ví dụ: khi N =16, p và q được xác định như sau:

k

0

1

2

3

4

5

6

7


8

9

10 11 12 13 14 15

p

0

0

1

1

2

2

2

2

3

3

3


3

3

3

3

3

q

0

1

1

2

1

2

3

4

1


2

3

4

5

6

7

8

11


Bây giờ các hàm haar được định nghĩa như sau:
Khi K = 0,

h0(t) =
Khi k > 0,
hk (t)= hp,q(t)=

3.4 Ma trận Haar:
Các chức năng N Haar có thể được lấy mẫu tại t = , khi đó m chạy từ 0,..,N-1 để tạo
thành một ma trận NxN. Chẳng hạn như sau cho N=2, ta có:
H2 =
Và N = 4, ta có:

H4 =
Và khi N = 8:
H8 =
S
S
S
Ta có thể thấy là tất cả các hàm Haar hk (t) (k > 0) chứa một hình dạng nguyên mẫu duy
nhất bao gồm một sóng vng và phiên bản âm của nó:



p chỉ định độ lớn và chiều rộng (hoặc tỷ lệ) của hình dạng;
12




q xác định vị trí (hoặc sự dịch chuyển) của hình dạng.

Lưu ý rằng: các ma trận biến đổi Haar khơng chỉ có thể đại diện cho
các chi tiết trong tín hiệu của các thang đo khác nhau (tương ứng với
các tần số khác nhau) mà cịn cả vị trí của chúng theo thời gian.

Tính chất của phép biến đổi Haar
Phép biến đổi Haar là thực và trực giao:
H = H*
H-1= HT và HTH = I
VD: Với N = 4

Phép biến đổi Haar là phép biến đổi nhanh. Các vector cơ sở của ma

trận Haar được sắp xếp liên tục.
Phép biến đổi Haar có khả năng nén năng lượng kém nhất trong các
phép biến đổi đơn nguyên.

Ta có thể xem vd sau đây
VD 4.5.4 ( ĐSTT- Đặng Văn Vinh): Xét một phương pháp nén dữ liệu dựa trên biến
đổi Haar. Giả sử ta có đoạn dữ liệu X0 = ( 152, 150, 156, 152,160,160, 152, 156)T. ta
chia dữ liệu thành từng cặp và tìm nửa tổng a và nửa hiệu d của các cặp. Khi đó ta

13


được dãy X1 = (152, 154, 160, 154,2,2,0,-2)T với bốn số đầu tiên là nửa tổng của bốn
cặp, bốn số tiếp theo là nửa hiệu của các cặp.
Có thể dùng ma trân để mơ tả q trình này như sau.
Xét ma trận A =
Các cột của A tạo nên là họ trực giao. Nếu ta chia mỗi cột cho độ dài của chúng ta
được họ trực chuẩn và ma trận tương ứng là ma trận trực giao H như sau:
H=
Khi đó nghịch đảo của H là HT . Ta dùng ma trận H để nén dữ liệu thay cho A. Ta có
Y1 = HX0. Giải nén dữ liệu Y1 ta được X0 = HTY1.
Phép biến đổi trực giao H có tính chất quan trọng là nó bảo tồn khoảng cách và góc.
Thật vậy,
===.
Tức là đồ dài véctơ X và độ dài véctơ HX như nhau.
Ngồi ra góc giữa hai véctơ u và v thỏa cos.
Qua phép biến đổi H, góc giữa hai véctơ Hu và Hv thỏa
Cos cos. Hay góc giữa hai véctơ u và v bằng với góc giữa hai ảnh Hu và Hv.
Phép biến đổi trực giao H bảo tồn góc và khoảng cách nên nó khơng làm thay đổi
hình dạng của ảnh trong q trình nén.

Ta có thể tiếp tục quá trình nén ở trên như sau:
Véctơ Y1 = H1X0 = (152, 154, 160, 154,2,2,0,-2)T, với H1 là ma trận H ở trên, có 4
phần tử sau nhỏ còn 4 phần tử đầu là những số lớn. Giữ bốn số sau của dãy lại. Đối
với bốn số đầu, ta chia làm hai cặp, tìm
Y2 = H2Y1 = (306;314;-2;6;2;2;0;-2)T, với
H2 =
Tiếp tục quá trình trên, giữ 6 số cuối của Y2 lại. Hai số đầu được thay bởi nửa tổng và
hiệu của chúng, ta có Y3 = H3Y2 = (310;-4;-2;6;2;2;0;-2)T, với
H3 =
Tóm lại ta có Y3 = H3H2H1X0 <-> Y3 = QX0.
14


Véctơ Y3 chứa 7 số sau nhỏ. Giải nén dãy dữ liệu Y3 tìm lại dãy X0 = Q-1Y3 <-> X0 =
QTY3, với
Q=

15


Chương 4: CHƯƠNG TRÌNH GIẢI MATLAB
4.1 Các lệnh Matlab được sử dụng:
-

A=Rgb2gray(Imread(‘picture.jpg’): Số hóa ảnh và lưu vào

ma trận cỡ 960 x 1280.
- Figure;
subplot(4,2,1),
-


imshow(A),

title(‘Name

of

picture): hiển thị hình ảnh.
Imresize(im2double(‘’): chỉnh sửa kích cỡ ảnh.
Length: xác định kích thước cảu một ma trận.
Zeros(m,n): tạo một ma trận 0 cỡ mxn.
Norm(v): độ dài vecto v theo tích vơ hướng chính tắc.
Eye(n): tạo một ma trận đơn vị cấp n.
Axis: đặt lại các giá trị trên trục toạ độ.
Vịng lặp while: dùng khi khơng thể biết trước số lần lặp

while<biểu thức> - phát biểu- end,
- Vịng lặp for: dùng khi khơng thể biết trước số lần lặp
for<chỉ số> = <giá trị đầu>:<mức tăng>:<giá trị cuối>.
- Imagesc(C): hiển thị dữ liệu trong mảng C dưới dạng hình ảnh
màu.
- Imwrite(C,’name of output.jpg’): lưu hình ảnh trong tập file
chỉ định.

16


4.2 Chương trình giải:
clc;clear;
coverIM = imread('C:\Users\Win 8.1\Desktop\my_matlab\tien.jpg');

coverIM = rgb2gray(coverIM);
XO = imresize(im2double(coverIM),[512 512]);
subplot(2,1,1);
imagesc(XO);title('Hinh anh ban dau')
axis off; axis square;
colormap gray ;
n = length(XO);
A = zeros(n,n);
m = 8;
Q =eye(1);
dem = 0;
while (m == 1)
At=A;
m = m/2;
for i =1:m
At(i,2*i-1) =1/2;
At(i,2*i) = 1/2;
At(i+m,2*i) =-1/2;
At(i+m,2*i)=-1/2;
end
for i = m*2+1:n
At(i,i) = 1;
end
for i =1:2*m
At(:,i) = At(:,i)/norm(At(:,i));
end
Q = At * Q;
dem =dem + 1;
end
Y = Q * XO;

subplot (2,1,2);
imwrite(Y,'output.jpg');
imagesc(Y);title('Hinh anh sau khi dung bien doi Haar')
axis off; axis square;
colormap gray;

17


Ta có các hình tương ứng như sau:

Hình 4.1.1: Ảnh ban
đầu.

Hình 4.2.2: Ảnh(màu) sau khi dùng biến
đổi Haar.

18


CHƯƠNG 5: KẾT LUẬN
Với sự tìm hiểu, chuẩn bị và cố gắng của từng thành viên trong
quá trình làm bài, nhóm N11 đã hồn thành nhiệm vụ được giao và
cho ra được kết quả như mong muốn qua việc sử dụng Matlab.
Qua phần bài tập lớn này, nhóm đã:
- Biết được phép biến đổi Haar cũng như vai trò thực tiễn trong
đời sống.
- Nhận thấy được việc sử dụng Matlab giúp tiết kiệm được thao
tác cũng như thời gian so với cách tính phổ thơng bởi sự thuận tiện
và giao diện dễ sử dụng.

- Nâng cao sự hứng thú với môn học.
- Trao dồi kỹ năng học tập và làm việc nhóm.

19


DANH MỤC TÀI LIỆU THAM KHẢO
[1] Giáo trình Đại số tuyến tính-Đặng Văn Vinh, trường ĐH Bách
Khoa – ĐHQG TPHCM
[2] />[3] Tài liệu này được tạo bằng trình dịch HTML LaTeX 2 Phiên bản 2008 (1.71)

Bản quyền © 1993, 1994, 1995, 1996, Nikos Drakos , Đơn vị Học tập dựa trên Máy tính,
Đại học Leeds.
Bản quyền © 1997, 1998, 1999, Ross Moore , Khoa Toán học, Đại học Macquarie,
Sydney.

20



×