You are on page 1of 2

Giải thích từng bước:

while (m ~= 1): Bắt đầu vòng lặp while, thực hiện các bước dưới cho đến khi m trở thành 1.

At = A;: Sao chép nội dung của ma trận A vào ma trận tạm thời At. Mục đích là để thực hiện biến đổi
Haar trên At mà không ảnh hưởng đến giá trị của A.

m = m/2;: Chia giá trị của m cho 2, giảm kích thước của các khối dữ liệu.

for i = 1:m: Bắt đầu vòng lặp for để thực hiện biến đổi Haar cho mỗi khối.

At(i, 2*i-1) = 1/2 ;: Cập nhật phần tử tại vị trí 2*i-1 của hàng i của At thành giá trị 1/2.

At(i, 2*i) = 1/2;: Cập nhật phần tử tại vị trí 2*i của hàng i của At thành giá trị 1/2.

At(i+m, 2*i-1) = 1/2;: Cập nhật phần tử tại vị trí 2*i-1 của hàng i+m của At thành giá trị 1/2.

At(i+m, 2*i) = -1/2;: Cập nhật phần tử tại vị trí 2*i của hàng i+m của At thành giá trị -1/2.

Đây là bước biến đổi Haar cơ bản, nó chia mỗi khối thành hai khối con và tính toán sự khác biệt giữa
chúng.

for i = m*2 + 1 :n: Bắt đầu một vòng lặp để đặt các phần tử trên đường chéo chính của At thành 1. Các
phần tử này tương ứng với các phần tử không thay đổi khi thực hiện biến đổi Haar.

for i = 1:2 * m: Bắt đầu vòng lặp để chuẩn hóa các cột của At (tức là chia mỗi cột cho độ lớn Euclidean
của cột đó).

Q = At * Q;: Nhân ma trận biến đổi At với ma trận biến đổi tổng cộng Q.

dem = dem + 1;: Tăng biến đếm dem lên 1, đại diện cho số lượng các bước biến đổi đã được thực hiện.

Cuối cùng, vòng lặp while sẽ tiếp tục cho đến khi m trở thành 1, và quá trình biến đổi Haar sẽ hoàn
thành.

5.

Trong vòng lặp này, đối với các dòng và cột sau khi đã thực hiện biến đổi Haar ( m*2 + 1 đến n),
giá trị tại các vị trí trên đường chéo chính của ma trận At được thiết lập bằng 1.

Các phần tử này tương ứng với các khối dữ liệu không thay đổi khi thực hiện biến đổi Haar. Việc
giữ nguyên các giá trị này đảm bảo rằng những phần không thay đổi của ảnh sẽ được duy trì.

6.

Trong vòng lặp này, đối với mỗi cột của ma trận At (từ 1 đến 2 * m), các giá trị của cột được chuẩn hóa.

norm(At(:, i)) tính toán độ lớn Euclidean của cột thứ i. Việc chia mỗi phần tử trong cột cho độ lớn
Euclidean giúp chuẩn hóa cột đó, đảm bảo rằng nó có độ dài bằng 1.
Chuẩn hóa này giúp đảm bảo rằng việc thực hiện nhiều bước biến đổi không làm thay đổi lớn giá trị
tuyệt đối của các phần tử trong ma trận At.

Tổng cộng, các bước 5 và 6 đều giúp duy trì thông tin quan trọng và đảm bảo rằng quá trình biến đổi
Haar diễn ra một cách đồng đều trên toàn bộ ma trận At.

You might also like