Khi đó vectơ
CƠ SỞ LÝ THUYẾT
Vector riêng của ma trận
1 Định nghĩa: Đây là ví dụ một vector riêng không thay đổi hướng trong một phép biến đổi: Định nghĩa 1: Cho một ma trận vuông A ∈ R nxn , nếu số vô hướng λ và vector 𝑣 ≠ 0 ∈ R nxn thỏa mãn:
6 thì 𝜆 là trị riêng của 𝐴 và 𝑣 được gọi là vector riêng tương ứng với trị riêng đó
Theo định nghĩa, tồn tại vector 𝒗 ≠ 0 để 𝐴𝑣 = 𝜆𝑣
Suy ra 𝑣 là một nghiệm khác 0 của hệ phương trình
Hệ thuần nhất (1) có nghiệm khác 0 ⇔ det(𝐴 − 𝜆𝐼) = 0 (2) Trong đó, 𝜆 là một nghiệm của phương trình (2) Định nghĩa 2: Phương trình (2) được gọi là đa thức đặc trưng của A
𝑃 𝐴 (𝜆) = det(𝐴 − 𝜆𝐼) = 0 được gọi là đa thức ặc trưng của 𝐴
✓ Số 𝜆 là trị riêng cùa 𝐴 khi và chỉ khi 𝜆 là nghiệm của phương trình đặc trưng
✓ Vector 𝑣 là vector riêng của 𝐴 ứng với trị riêng 𝜆 khi và chỉ khi 𝑣 là một nghiệm khác 0 của hệ phương trình (1)
2 Các bước tìm vector riêng của ma trận A:
3 Tính chất của trị riêng, vector riêng:
✓ Tổng tất cả các trị riêng của 𝐴 bằng với vết của ma trận 𝐴, tức là bằng với tổng các phần tử trên đường chéo của A
✓ Tích tất cả các trị riêng của 𝐴 bằng với 𝑑𝑒𝑡(𝐴)
✓ Tổng tất cả các bội đại số của các trị riêng bằng với cấp của 𝐴
✓ Tổng tất cả các bội hình học của các trị riêng bằng với số vector độc lập tuyến tính cực dại
✓ Nếu 𝜆 là trị riêng của 𝐴, thì 𝜆 𝑚 là trị riêng của ma trận
Giả sử 𝜆 là trị riêng của 𝐴
Khi đó tồn tại vector 𝑣 ≠ 0, sao cho 𝐴𝑣 = 𝜆𝑣
Suy ra 𝜆 𝑚 là trị riêng của 𝐴 𝑚 và 𝑣 là vector riêng của 𝐴 𝑚 ứng với trị riêng 𝜆 𝑚
Ma trận vuông 𝐴 khả nghịch khi và chỉ khi không có trị riêng bằng 0 Nếu 𝜆 là trị riêng của 𝐴, thì 𝜆 −1 là trị riêng của ma trận
Phương trình đặc trưng của 𝐴 là 𝑑𝑒𝑡(𝐴 − 𝜆𝐼) = 0
Thế 𝜆 = 0 vào phương trình ta được det(𝐴 − 0 𝐼) = 0 ⇔
Giả sử 𝜆 là trị riêng của 𝐴 và 𝐴 khả nghịch
Khi đó tồn tại vector 𝑣 ≠ 0, sao cho 𝐴𝑣 = 𝜆𝑣
𝜆 là trị riêng của 𝐴 −1 và 𝑣 là vector riêng của 𝐴 −1 ứng với 1
Ví dụ: Cho ma trận 𝐴 = ( 3 2 −1
) a Tìm tất cả các trị riêng và vector riêng của 𝐴 b Tìm tất cả các trị riêng và vector riêng của ma trận 𝐴 10 c Tìm tất cả các trị riêng và vector riêng của 𝐴 −1
1) Phương trình đặc trưng: det(𝐴 − 𝜆𝐼) = 0
⇔ −(𝜆 − 2) 2 (𝜆 − 8) = 0 ⇔ 𝜆 1 = 2, 𝜆 2 = 8 là 2 giá trị riêng của ma trận 𝐴
Suy ra vector riêng của A ứng với trị riêng 𝜆 1 là 𝑣 (
) Dùng phép khử Gauss, ta có:
⇒ vector riêng của A ứng với trị riêng 𝜆 2 là 𝑣 = (
2) Giá trị riêng của 𝐴 10 là 𝛽 1 = 2 10 , 𝛽 2 = 8 10
Vector riêng của 𝐴 10 ứng với trị riêng 𝛽 1 : 𝑣 = (
Vector riêng của 𝐴 10 ứng với trị riêng 𝛽 2 : 𝑣 = (
3) Ma trận A không có giá trị riêng bằng 0 nên A khả nghịch
Giá trị riêng của 𝐴 −1 là 𝛾 1 = 1
8 Vector riêng của 𝐴 −1 ứng với trị riêng 𝛾 1 :𝑣 = (
Vector riêng của 𝐴 −1 ứng với trị riêng 𝛾 2 : 𝑣 = (
Chéo Hóa Ma Trận
-Cho 2 ma trận 𝐴, 𝐵 Ta nói 𝐴, 𝐵 đồng dạng khi tồn tại 1 ma trận khả nghịch P sao cho: 𝐵 = 𝑃 −1 𝐴𝑃
-Trong trường hợp đặc biệt khi B là ma trận đường chéo thì ta nói ma trận 𝐴 là ma trận chéo hóa được và P là ma trận chéo hóa ma trận 𝐴
-Cho 𝐴 ∈ 𝑀 𝑛 , ta có thể nói 𝐴 chính là 1 ma trận của ánh xạ tuyến tính f: 𝑅 𝑛 → 𝑅 𝑛 đối với cơ sở chính tắc 𝑅 𝑛
-Nếu ma trận A chéo hóa được nghĩa là tồn tại 1 ma trận khả nghịch P sao cho 𝑃 −1 𝐴𝑃 là 1 ma trận chéo thì chính là ma trận đổi cơ sở từ cơ sở chính tắc 𝐵 = {e 1 = (1,0,0 ,0); e 2 (0,1,0 ,0); ; e 1 = (0,0,0 ,1)} qua một cơ sở B’ nào đó của 𝑅 𝑛 mà trong cơ sở, ma trận AXTT f là ma trận chéo
Nói đơn giản, thì khi 1 ma trận vuông có thể biểu diễn dưới dạng
𝐴 = 𝑃𝐴𝑃 −1 thì đó là ma trận chéo hóa được và phép biến đổi trên được gọi là chéo hóa ma trận
Bước 1: giải phương trình đặc trưng 𝑑𝑒𝑡(𝐴 − 𝜆𝐼) = 0 tìm các giá trị riêng của 𝐴
Bước 2: ứng với mỗi giá trị riêng tìm 1 cơ sở không gian riêng 𝑉𝜆
Bước 3: Xét hệ B’ gồm tất cả các vector riêng tạo thành cơ sở cho các không gian riêng nhận được ở bước 2
✓ Nếu số phần tử của B’ bằng n (tức là: 𝑑𝑖𝑚(𝑉𝜆) = 𝑛) thì
𝐴 chéo hóa được Ma trận P chéo hóa ma trận 𝐴 chính là ma trận đổi cơ sở chính tắc từ B sang B’
✓ Nếu số phần tử của B’ nhỏ hơn n, nghĩa là ∑ 𝑑𝑖𝑚𝑉 𝜆 𝜆 < 𝑛 thì a không chéo hóa được
Bước 4: Ma trận làm chéo hóa 𝐴 cần tìm là ma trận P có các cột là các vector riêng tìm được
Ta giải các ví dụ sau:
1 3 ) có chéo hóa được hay không ? nếu được hãy chéo hóa A
Ta làm theo các bước
Ta có 𝑑𝑖𝑚(𝑉𝜆 ) = 1 < 𝑛 = 2, suy ra ma trận không thể chéo hóa
1 0) có chéo hóa được không ? Nếu được hãy chéo hóa ma trận
Bước 3: 𝑑𝑖𝑚(𝑉𝜆) = 2 = 𝑛 suy ra ma trận chéo hóa được
1 1 ) Với 𝐷 là 1 ma trận đường chéo
Chéo hóa trực giao
1 Cơ sở lý thuyết Định nghĩa 1: Ma trận 𝐴 ∈ 𝑀 𝑛 (𝑅) gọi là ma trận đối xứng, thực nếu 𝐴 𝑇 = 𝐴
Kiểm tra thấy 𝐴 𝑇 = 𝐴.Như vậy A là ma trận đối xứng
Các phần tử của A đối xứng với nhau qua đường chéo chính Định nghĩa 2: Ma trận 𝐴 ∈ M 𝑛 (𝑅 ) gọi là ma trận trực giao, nếu 𝐴 −1 = 𝐴 𝑇 Từ định nghĩa ta có 𝐴𝐴 −1 = 𝐴𝐴 𝑇 ⟺ 𝐴𝐴 𝑇
1.Như vậy nếu tích của 𝐴 và 𝐴 𝑇 là ma trận đơn vị I, thì 𝐴 là ma trận trực giao
Mệnh đề 1: Ma trận 𝐴 là ma trận trực giao khi và chỉ khi họ vector cột (hoặc họ vector hàng) của 𝐴 là họ trực chuẩn
Cho 𝐴 là ma trận trực giao Tức là 𝐴𝐴 𝑇 = 𝐼 Để ý phép nhân 2 ma trận với nhau, ta thấy: hàng i của 𝐴 nhân với cột j của ma trận𝐴 𝑇 ta được phần tử ở hàng I và cột j của ma trận đơn vị Cột j của 𝐴 𝑇 là hàng j của 𝐴
0, 𝑛ế𝑢 𝑖 ≠ 𝑗 Suy ra họ vector hàng của 𝐴 là họ trực chuẩn
Hoàn toàn tương tự, khi xét 𝐴 𝑇 𝐴 = 𝐼 ta có họ vector cột của 𝐴 là họ trực chuẩn
Sử dụng mệnh đề này để tìm 1 ma trận trực giao 𝐴 cấp n tùy ý như sau a) Trong 𝑅 𝑛 , chọn 1 cơ sở E b) Dùng quá trình Gran-Schmidt (nếu cần), trực giao hóa E để được cơ sở trực giao F c) Chia 1 vector hàng trong F cho đô dài của nó ta có cơ sở trực chuẩn Q Tạo ma trận 𝐴 có họ vector hàng/cột là Q
Khi đó 𝐴 là ma trận trực giao
Ví dụ 2: Trong 𝑅 3 , chọn cơ sở 𝐸
Dùng quá trình Gran-Schmidt, ta được họ trực giao
Chia mỗi vector cho độ dài của nó, ta có họ trực chuẩn
Chia mỗi vector cho độ dài của nó, ta có họ trực chuẩn
Lập ma trận trực giao có họ vector cột (hoặc họ vector hàng) là
√2) Định nghĩa 3: Ma trận vuông, thực 𝐴 gọi là chéo hóa trực giao được nếu 𝐴 = 𝑃𝐷𝑃 −1 là ma trận chéo và P là ma trận trực giao Định lý 1 : Cho 𝐴 là ma trận đối xứng thực
Các khẳng định sau đây là đúng
1) Trị riêng của 𝐴 là các số thực
2) 𝐴 luôn chéo hóa trực giao được
3) Hai vector riêng ứng với các giá trị riêng khác nhau vuông góc với nhau
Mệnh đề 2: Nếu ma trận 𝐴 chéo hóa trực giao được, thì 𝐴 là ma trận đối xứng
Giả sử 𝐴 chéo hóa trực giao được Khi đó 𝐴 = 𝑃𝐷𝑃 𝑇
Suy ra 𝐴 𝑇 = (𝑃𝐷𝑃 𝑇 ) 𝑇 = (𝑃 𝑇 ) 𝑇 𝐷 𝑇 𝑃 𝑇 = 𝑃𝐷𝑃 𝑇 = 𝐴 Hay 𝐴 là ma trận đối xứng
Như vậy chỉ ma trận đối xứng thực mới chéo hóa trực giao được
2 Chéo hóa trực giao ma trận đối xứng A
Bước 1: Tìm trị riêng của 𝐴
Bước 2: Tìm 1 cơ sở của trực chuẩn của từng không gian riêng Để tìm cơ sở trực chuẩn của không gian con riêng 𝐸 𝜆𝑘 , ta theo các bước sau a) Chọn cơ sở 𝐸 𝐾 tùy ý của 𝐸 𝜆𝑘 b) Dùng quá trình Gran-Schmidt (nếu cần) để tìm cơ sở trực giao Fk c) Chia mỗi vector trong Fk cho độ dài của nó ta có cơ sở trực chuẩn Qk của Eλk
Bước 3: Kết luận ma trận 𝐴 luôn chéo hóa trực giao được Tức la 𝐴 = 𝑃𝐷𝑃 𝑇 , trong đó ma trận chéo là các trị riêng của 𝐴, họ vector cột của ma trận trực giao P từ các vector riêng trong các cơ sở trực chuẩn ở bước 2
Ví dụ: chéo hóa trực giao ma trận đối xứng thực:
Ta làm theo các bước
Bước 1: tìm các trị riêng theo phương trình 𝑑𝑒𝑡(𝐴 − 𝜆𝐼) = 0
Thì hệ 𝑑𝑒𝑡(𝐴 − 𝜆𝐼)𝑋 = 0 ⟺ 𝑋 = (4α; α) 𝑇 ⟹ cơ sở của 𝐸 𝜆1 là (4,1) 𝑇
Cơ sở trực chuẩn là 1
Thì 𝑋 = (α; −4α) 𝑇 ⟹ cơ sở của 𝐸 𝜆2 là (1, −4) 𝑇
Bước 3: kết luận ma trận 𝐴 chéo hóa được và 𝐴 = 𝑃𝐷𝑃 𝑇 , trong đó:
Ví dụ: chéo hóa trực giao ma trận đối xứng thực
Giải Bước 1 : tìm các trị riêng
Phương trình đặc trưng của A là (𝜆 − 7) 2 (𝜆 + 2) = 0
𝐴 có trị riêng là 𝜆 1 = 7 và 𝜆 2 = −2
Bước 2 : tìm cơ sở trực chuẩn của các không gian con riêng Với 𝜆 1 = 7
Dùng quá trình trực giao hóa Gram-Schmidt, ta được cơ sở trực giao
Vậy cơ sở trực chuẩn của 𝐸 𝜆 1 là { 1
Vậy cơ sở trực chuẩn là 1
Kết luận: Ma trận chéo hóa được và 𝐴 = 𝑃𝐷𝑃 𝑇 , trong đó
Phân tích SVD
Cho 𝐴 là 1 ma trận thực cỡ 𝑚 × 𝑛 Ta chứng minh rằng tập hợp các trị riêng khác không của 𝐴𝐴 𝑇 và A T A là trùng nhau Thật vậy, giả sử 𝜆 0 là một trị riêng khác 0 của 𝐴𝐴 𝑇 và 𝑋 0 vectơ riêng của 𝐴𝐴 𝑇 tương ứng Khi đó
𝐴𝐴 𝑇 𝑋 0 =𝜆 0 𝑋 0 Suy ra𝐴 𝑇 𝐴𝐴 𝑇 𝑋 0 =𝐴 𝑇 𝜆 0 𝑋 0 Điều này tương đương với 𝐴 𝑇 𝐴(𝐴 𝑇 𝑋 0 ) = (𝐴 𝑇 𝑋 0 ), Vì 𝜆 0 ≠ 0 nên
𝐴 𝑇 𝑋 0 ≠ 0 suy ra 𝐴 𝑇 𝐴 = 𝜆 0 , dễ dàng nhìn thấy 𝜆 0 là trị riêng của
Ma trận 𝐴𝐴 𝑇 và ma trận 𝐴 𝑇 𝐴 là hai ma trận đối xứng, nên chúng có thể chéo hóa trực giao được
Phân tích SVD của ma trận 𝐴: Cho ma trận 𝐴 ∈
𝑀 𝑚,𝑛 [𝑅], 𝑟(𝐴) = 𝑟 Ma trận 𝐴 có thể phân tích thành dạng 𝐴 𝑄⅀𝑃 𝑇 , trong đó Q (Left singular vector) và P(Right singular vector) là hai ma trận đều có họ vecto cột là trực chuẩn, ⅀ (𝐷 0
0 0) là ma trận cỡ 𝑚 × 𝑛, D là ma trận chéo, có các phần tử trên dường chéo σ 1 ; σ 2 ; σ 3 ; ; σ 𝑟 là những số thực dương và được gọi là các singular values của 𝐴
Suy ra các cột của Q là các vectơ riêng của 𝐴𝐴 𝑇 và σ 1 2 ; σ 2 2 ; σ 3 2 ; ; σ 𝑟 2 là các trị riêng khác 0 của 𝐴𝐴 𝑇
Các cột của P là các vectơ riêng của 𝐴 𝑇 𝐴 và σσ 1 2 ; σ 2 2 ; σ 3 2 ; ; σ 𝑟 2 là các trị riêng khác 0 của 𝐴 𝑇 𝐴
Trong D, ta sắp xếp các singular values của 𝐴 theo thứ tự giảm dần σ 1 ≥ σ 2 ≥ σ 3 ≥ ≥ σ 𝑟 Gọi 𝑄 = (𝑞 1 /𝑞 2 / …/𝑞 𝑛 ) và 𝑃 = (𝑝 1 /𝑝 2 / …/𝑝 𝑚 ),
Ma trận 𝐴 có thể ghi dưới dạng 𝐴 = σ 1 q 1 p 1 𝑇 + σ 2 q 2 p 2 𝑇 + +σ 𝑟 q 𝑟 p 𝑟 𝑇 , với mỗi 𝑞 𝑖 𝑝 𝑖 𝑇 là 1 ma trận có hạng bằng
Như vậy ma trận 𝐴 chỉ phụ thuộc vào r cột đầu tiên của P,Q và r phần tử khác không trên đường chéo của ⅀ Ta có phân tích gọn hơn của 𝐴 là compact SVD: 𝐴 = 𝑄 𝑟 𝐷𝑃 𝑟 , với 𝑄 𝑟 𝑃 𝑟 là các ma trận tạo nên từ các cột cua Q và P tương ứng.
Lưu ý: 𝑞 𝑖 𝑝 𝑖 𝑇 là một ma trận chứ không phải một tích vô hướng, ta tính ra được ma trận của 𝑞 𝑖 𝑝 𝑖 𝑇 bằng cách lấy hàng đầu tiên của vectơ 𝑞 𝑖 nhân với các phần tử của vector 𝑝 𝑖 ta được hàng thứ nhất của ma trận Tiếp tục lấy hàng thứ hai của vector 𝑞 𝑖 nhân với các phần tử của vector 𝑝 𝑖 ta thu được hàng thứ hai của ma trận Tiếp tục đến hàng cuối cùng của 𝑞 𝑖 ta thu được 1 ma trận có hạng luôn bằng 1 vì số độc lập tuyến tính tối đa bằng 1
Ví dụ: cho 2 vector 𝑞 = (1; 1; 2) 𝑇 và 𝑝 = (2; 0; 1) 𝑇 Ta có tích ngoài của vector 𝑞 và vector 𝑝 chuyển vị là
Trong lưu trữ hình ảnh, thông thường chỉ 1 vài σ 𝑚 có giá trị cao và các σ 𝑛 còn lại xấp xỉ bằng 0 nên có thể bỏ qua Khi đó ta có xấp xỉ và sai số trong xấp xỉ trên được xác định bởi công thức sau
Và sai số trong công thức trên được xác định bằng công thức
Ví dụ: tìm phân tích SVD của ma trận 𝐴 = (3 2 2
8 17) Giải phương trình đặc trưng 𝑑𝑒𝑡 (𝐴 − 𝐼𝜆)
𝐷 1 là ma trận đường chéo chứa các trị riêng cuả 𝐴𝐴 𝑇 theo chiều giảm dần( theo định nghĩa tích phân SVD) ⇒ 𝐷 1 = (25 0
Suy ra cơ sở trực chuẩn là 1
Suy ra cơ sở trực chuẩn là 1
Vì tập trị riêng của 𝐴𝐴 𝑇 trùng với 𝐴 𝑇 𝐴
) Giải 𝑑𝑒𝑡 (𝐴 − 𝐼𝜆)𝑋 = 0 với 𝜆 = 25, 𝜆 = 9 và áp dụng Gram-
Phân tích SVD của 𝐴 = 𝑄⅀𝑃 𝑇 , Với Q,P đã tìm được ở trên và
Ứng dụng SVD để khử nhiễu hình ảnh
Nguyên lý khử nhiễu ảnh
Một ứng dụng đơn giản của SVD là giảm nhiễu trong hình ảnh Ví dụ ở đây là hình ảnh của một hình chữ nhật màu đen và trắng:
Hình ảnh được coi như một ma trận trong đó 1 là màu trắng và 0 là màu đen Sử dụng SVD dẫn đến các singular values (các mục đường chéo của) là 14,72, 5,13 và 3,314
Có ba singular values vì thứ hạng của ma trận là 3 Bây giờ, hãy thêm một số nhiễu ngẫu nhiên đồng nhất vào hình ảnh:
Xếp hạng của ma trận hình ảnh mới hiện là 15 Sử dụng SVD để tìm các singular values của ma trận hình ảnh mới cho ba singular values đầu tiên là 13,17, 3,85 và 2,52 Phần còn lại của các singular values nhỏ hơn 0,6
Nếu chúng ta đặt tất cả các singular values nhỏ hơn 0,6 thành 0, chúng ta nhận được hình ảnh sau:
Bằng cách đặt tất cả các singular values thành 0 nhỏ hơn 0,6, chúng ta đã giảm nhiễu trong hình ảnh Tiếng ồn vẫn có thể nhìn thấy, nhưng nó ít hơn nhiều
II Tối ưu khử nhiễu
Có nhiều phương pháp giúp ta đưa ra được giá trị ngưỡng nhiễu (tạm đặt là 𝜏 trong threshold), trong số đó thì phương pháp của Matan Gavish và David L.Donoho đưa ra trong bài báo của mình mang lại hiệu quả cao nhất
Nếu như mức cường độ nhiễu 𝛾 đã biết trước, thì công thức của ngưỡng nhiễu 𝜏 được :
Nếu 𝑋 ∈ ℝ 𝑛×𝑛 là một ma trận vuông
Nếu 𝑋 ∈ ℝ 𝑛×𝑚 là một ma trận chử nhật và 𝑚 ≪ 𝑛, hệ số 4/√3 sẽ được thày bởi một hàm số phụ thuộc vào biến 𝛽 𝑚/𝑛:
Nếu như mức cường độ nhiễu chưa được xác định , điều thường thấy trong những ứng dụng thực tế, ta có thể ước tính được mức cường độ nhiễu và và tỉ lệ phân phối singular values dựa trên giá trị singular value trung tâm (không phải giá trị singular value trung bình ) 𝜎 𝑚𝑒𝑑 Trong trường hợp đó, không có một nghiêm hoàn toàn chính xác cho 𝜏 được, chỉ có thể là một xấp xỉ gần đúng số học
Cho 𝛾 chưa xác định và một ma trận chữ nhật 𝑋 ∈ ℝ 𝑛×𝑚 , thì giá trị ngưỡng nhiễu tối ưu được tính bằng công thức sau:
Trong đó, 𝜔(𝛽) = λ(𝛽)/𝜇 𝛽 , với 𝜇 𝛽 là nghiệm của phương trình :
26 Để thuận tiện cho việc tính toán, chúng ta có thể lấy gần đúng:
𝜔(𝛽) = 0,56𝛽 3 − 0,95𝛽 2 2 + 1,82β + 1,4 Đồ thị 𝑙𝑜𝑔(𝜎) theo r với ngưỡng nhiễu 𝜏 = 13,439335 ứng với r = 283
% Noisy image noisex = imread('phantom2_0.2.tif'); noisy = double(noisex);
% Assign a clear output image cleared = zeros(m,n); h_17;
% Replicate boundaries of noisy image noisy2 = padarray(noisy,[f,f],'symmetric');
% Now we'll calculate ouput for each pixel for i=1:m for j=1:n
% to compensate for shift due to padarray function im = i+f; jn= j+f;
W1 = noisy2(im-f:im+f , jn-f:jn+f);
[EVTU EVSU]=eig(W1*(W1')); evalues_U=round(diag(EVSU));
[EVTV EVSV]=eig((W1')*W1); evalues_V=round(diag(EVSV)); evalues_U=evalues_U'; evalues_V=evalues_V'; h=1; s1=size(evalues_U,2); s2=size(evalues_V,2); common=zeros(1,(2*f)+1); for i1=1:s1 for j1=1:s2 if evalues_U(1,i1)==evalues_V(1,j1) common(1,h)=evalues_V(1,j1); h=h+1; break; end
30 end end common=sort(common,'descend'); h=1; svdh=zeros(temp1,temp2); for i1=1:temp1 for j1=1:temp2 if(i1==j1) svdh(i1,j1)=sqrt(common(1,h)); h=h+1; end end end
% BOundaries of search window for that pixel rmin = max(im-t, f+1); rmax = min(im+t, m+f); smin = max(jn-t, f+1); smax = min(jn+t, n+f) ;
% Run loop through all the pixels in search window for r=rmin:rmax for s=smin:smax
% neighborhood of pixel 'j' being compared with % neighbourhood of concerned pixel
[EVTU EVSU]=eig(W2*(W2')); evalues_U=round(diag(EVSU));
[EVTV EVSV]=eig((W2')*W2); evalues_V=round(diag(EVSV)); evalues_U=evalues_U'; evalues_V=evalues_V'; h=1; s1=size(evalues_U,2); s2=size(evalues_V,2); common=zeros(1,(2*f)+1); for i1=1:s1 for j1=1:s2 if evalues_U(1,i1)==evalues_V(1,j1) common(1,h)=evalues_V(1,j1); h=h+1; end end end common=sort(common,'descend'); h=1; svdh=zeros(temp1,temp2); for i1=1:temp1 for j1=1:temp2 if(i1==j1) svdh(i1,j1)=sqrt(common(1,h)); h=h+1; end end end
NL = NL + (wij*noisy2(r,s)); end end
% normalization of NL cleared(i,j) = NL/Z; end end
% convert cleared to uint8 cleared = uint8(cleared);
% show results figure(1); imshow(noisex),title('noisy Image'); figure(2); imshow(uint8(I)),title('Orignal Image'); figure(3); imshow(uint8(cleared)),title('output of NLM-SVD'); end end
Tóm lại, với sự phát triển công nghệ đặc biệt là ở lĩnh vực machine learning như hiện nay, phân tích SVD trở thành 1 thuật toán vô cùng quan trọng đóng vai trò không thể thay thiếu đối với ngành kỹ thuật máy tính nói riêng và toàn bộ ngành kỹ thuật nói chung Nhóm chúng em đã đưa ra những cơ sở lý thuyết cơ bản cho thuật toán cũng như một trong số nhiều ứng dụng của phân tích này chính là khử nhiễu ảnh Ngoài ứng dụng khử nhiễu ảnh được áp dụng cho nhiều ứng dụng như y tế, AI, giám sát giao thông, etc thì phân tích SVD còn có nhiều ứng dụng khác có thể kể đến như:
Bên cạnh đó, ngoài SVD, ta còn một số phương pháp khác được ứng dụng trong khử nhiễu ảnh như:
-Non-negative matrix factorization (NMF hay NNMF)