1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÁO cáo bài tập lớn đại số TUYẾN TÍNH CHỦ đề 10 ỨNG DỤNG PHÂN TÍCH SVD để KHỬ NHIỄU HÌNH ẢNH

14 172 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Ứng dụng Phân tích SVD để khử nhiễu hình ảnh
Tác giả Võ Mạnh Quỳnh, Trần Thiên San, Nguyễn Trường Sơn, Trương Thanh Sơn, Phan Hoàng Tâm, Nguyễn Bùi Quốc Tân, Nguyễn Hoàng Duy Tân
Người hướng dẫn Giảng viên hướng dẫn Nguyễn Xuân Mỹ
Trường học Đại học Quốc gia Thành phố Hồ Chí Minh - Trường Đại học Bách Khoa
Chuyên ngành Đại số tuyến tính
Thể loại Báo cáo bài tập lớn
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 14
Dung lượng 1,02 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Phương pháp SVD đã được phát triển dựa trên những tính chất của ma trận trực giao và ma trận đường chéo để tìm ra một ma trận xấp xỉ với ma trận gốc.. Phương pháp này sau đó đã được ứng

Trang 1

ĐẠI HỌC QUỐC GIA TP 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

GVHD: NGUYỄN XUÂN MỸ

CHỦ ĐỀ 10:

ỨNG DỤNG PHÂN TÍCH SVD ĐỂ

KHỬ NHIỄU HÌNH ẢNH

Nhóm thực hiện: 10

Trang 2

Giới thiệu chung

- Lớp: L16

- Nhóm: 10

- Chủ đề: 10

- Danh sách thành viên

Trang 3

Mục Lục

LỜI CẢM ƠN 4

LỜI MỞ ĐẦU 5

I CƠ SỞ LÍ THUYẾT CỦA PHÂN TÍCH SVD

 Mục tiêu của phân tích SVD 6

 Quá trình phân tích SVD thông qua một ma trận 6

 Một số ví dụ 9

II ỨNG DỤNG CỦA PHÂN TÍCH SVD TRONG KHỬ

NHIỄU HÌNH ẢNH

 Đặt vấn đề - Ý nghĩa của khử nhiễu hình ảnh trong cuộc sống 10

 Khử nhiễu hình ảnh qua thuật toán phân tích SVD 11

 Quá trình thực hiện tổng quan phân tích SVD qua Matlab 12 III CHƯƠNG TRÌNH MATLAB 14

IV TÀI LIỆU THAM KHẢO 14

Trang 4

LỜI CẢM ƠN

Trong suốt quá trình học bộ môn Đại số tuyến tính, nhóm chúng em

đã nhận được rất nhiều sự quan tâm, giúp đỡ và kiến thức từ thầy/cô,

anh/chị khóa trên và các bạn cùng khóa

Ngoài ra nhóm em xin gửi lời cảm ơn chân thành nhất đến cô Nguyễn Xuân Mỹ là giảng viên giảng dạy bộ môn Đại số tuyến tính và cũng là người hướng dẫn nhóm em thực hiện đề tài này Nhờ cô hướng dẫn

và giải đáp những thắc mắc, khó khăn nhóm gặp vướng mắc trong quá trình làm bài vô cùng kịp thời và kết quả là nhóm đã làm thành bài đúng tiến độ Sự hướng dẫn của cô là kim chỉ nam giúp nhóm chúng em làm việc hiệu quả hơn dù thành viên ít do quá trình liên lạc khó khăn, gắn kết mối quan hệ tốt giữa các thành viên trong nhóm và

giữa sinh viên với giảng viên

Lời cuối, xin một lần nữa gửi lời biết ơn sâu sắc đến các cá nhân, các thầy/cô đã dành thời gian chỉ dẫn cho nhóm Đây chính là niềm tin, nguồn động lực to lớn để nhóm có thể đạt được kết quả này Nhóm

chúng em xin chân thành cảm ơn ạ!

Trang 5

Đại số tuyến tính nói chung có rất nhiều ứng dụng trong hầu hết các lĩnh vực trong khoa học: kinh tế, môi trường, công nghệ máy tính, xử lí tín hiệu, đồ họa,… Một phần nhỏ trong số đó phải nhắc đến là phương pháp phân tích SVD trong nhiều bài

toán khác nhau Phương pháp phân tích suy biến (singular value decomposition)

được viết tắt là SVD là một trong những phương pháp thuộc nhóm matrix factorization (Ma trận thừa số hóa) được phát triển lần đầu bởi những nhà hình học

vi phân Ban đầu mục đích của phương pháp này là tìm ra một phép xoay không gian sao cho tích vô hướng của các vector không thay đổi Từ mối liên hệ này khái niệm về ma trận trực giao đã hình thành để tạo ra các phép xoay đặc biệt Phương pháp SVD đã được phát triển dựa trên những tính chất của ma trận trực giao và ma trận đường chéo để tìm ra một ma trận xấp xỉ với ma trận gốc Phương pháp này sau đó đã được ứng dụng rộng rãi trong các lĩnh vực như hình học vi phân, hồi qui tuyến tính, xử lý hình ảnh, cluaxstering, các thuật toán nèn và giảm chiều dữ liệu, khử nhiễu âm thanh, khử nhiễu hình ảnh…

LỜI MỞ ĐẦU

Trang 6

I CƠ SỞ LÍ THUYẾT CỦA PHÂN TÍCH SVD:

1.1 Mục tiêu của phân tích suy biến SVD

Phương pháp SVD sẽ tìm ra một lớp các ma trận xấp xỉ tốt nhất với một ma trận cho trước dựa trên khoảng cách norm Frobenios giữa 2 ma trận Người ta đã chứng minh được rằng ma trận xấp xỉ tốt nhất được biểu diễn dưới dạng tích của 3 ma trận rất đặc biệt bao gồm 2 ma trận trực giao (orthogonal matrix) và 1 ma trận đường chéo (diagonal matrix) Quá trình nhân ma trận thực chất là quá trình biến đổi các điểm dữ liệu của ma trận gốc thông qua những phép xoay trục (rotation) và phép thay đổi độ lớn (scaling) và từ đó tạo ra những điểm dữ liệu mới trong không

gian mới Điều đặc biệt của ma trận đường chéo đó là các phần tử của nó chính là những giá trị riêng của ma trận gốc Những điểm dữ liệu trong không gian mới có thể giữ được 100% thông tin ban đầu hoặc chỉ giữ một phần lớn thông tin của dữ liệu ban đầu thông qua các phép truncate SVD Bằng cách sắp xếp các trị riêng theo thứ tự giảm dần trên đường chéo chính thuật toán SVD có thể thu được ma trận xấp xỉ tốt nhất mà vẫn đảm bảo giảm được hạng của ma trận sau biến đổi và kích thước các ma trận nhân tử nằm trong giới hạn cho phép Do đó nó tiết kiệm được thời gian và chi phí tính toán và đồng thời cũng tìm ra được một giá trị dự báo cho ma trận gốc với mức độ chính xác cao

Do đó, để tiếp cận được thuật toán phân tích SVD, chúng ta cần phải nắm những kiến thức cơ bản về cơ sở tạo nên nó Gọi tắt là Cơ sở lí thuyết của việc phân tích SVD Chúng ta có thể tham khảo thêm những khái niệm, tính chất định lí liên quan đến những vấn đề dưới đây qua quyển: “Đặng Văn Vinh, Giáo trình Đại số tuyến tính, NXB ĐHQG 2020)

- Ma trận, Định thức

- Trị riêng và vecto riêng

- Khái niệm về Họ trực giao và trực chuẩn Trực giao hóa

Gram-Schmidt

- Chéo hóa ma trận, chéo hóa trực giao và những tính chất của chúng

1.2 Quá trình phân tích SVD của một ma trận dựa trên cơ sở lí

thuyết đã nêu trên:

Trang 7

Singular Value Decomposition là ứng dụng nổi bật trong Đại số tuyến tính Bất kỳ một ma trận A nào với cấp mxn (không nhất thiết phải là ma trận vuông), ta đều có thể phân tích thành dạng:

𝐴𝑚× 𝑛 = 𝑄𝑚×𝑚 𝛴𝑚×𝑛(𝑃𝑛×𝑛) 𝑇(!)

Trong đó Q và P là các ma trận trực giao; và Σ là ma trận chéo không vuông (cấp

mxn) với các phần tử trên đường chéo 𝜎1 ≥ 𝜎2 ≥ ⋯ ≥ 𝜎𝑟 ≥ 0 = 0 = ⋯ = 0 , mặc

dù Σ không phải ma trận vuông nhưng, ta vẫn có thể coi nó là ma trận chéo miễn là các phần tử khác 0 của nó chỉ nằm trên đường chéo (tức là tại các vị trí có chỉ số hàng và chỉ số cột như nhau); r là Rank(A) bằng số lượng phần tử khác 0 trong ma trận đường chéo Σ

*Chú ý rằng cách biểu diễn (!) không là duy nhất, vì ta chỉ cần đổi dấu Q và P thì

vẫn thỏa mãn

Biểu diễn SVD qua các trường hợp của ma trận A:

+TH1: 𝑚 < 𝑛

+TH2: 𝑚 > 𝑛

(H1: SVD cho ma trận A khi: 𝑚 < 𝑛 (hình trên), và 𝑚 > 𝑛 (hình dưới) Σ là một ma trận

đường chéo với các phần tử trên đó giảm dần và không âm Màu đỏ càng đậm thể hiện giá trị càng cao Các ô màu trắng trên ma trận này thể hiện giá trị 0.)

Cho A là một ma trận thực mxn Ta chứng minh rằng tập hợp các trị riêng khác không của 𝐴𝐴𝑇 và 𝐴𝑇𝐴 là trùng nhau Thật vậy, giả sử 𝜆𝑜 là một trị riêng

Trang 8

(eigenvalue) khác 0 của 𝐴𝐴𝑇 và 𝑋𝑜 là vector riêng (eigenvector) của 𝐴𝐴𝑇 tương ứng Khi đó :

𝐴𝐴𝑇𝑋𝑜 = 𝜆𝑜𝑋𝑜 ➪ Suy ra: 𝐴𝑇𝐴𝐴𝑇𝑋𝑜 = 𝐴𝑇𝜆𝑜𝑋𝑜 Điều này tương đương với 𝐴𝑇𝐴(𝐴𝑇𝑋𝑜) = 𝐴𝑇(𝜆𝑜𝑋𝑜) = 𝜆𝑜(𝐴𝑇𝑋𝑜).Vì 𝜆𝑜 khác 0 nên 𝐴𝑇𝑋𝑜 khác 0 Suy ra 𝜆𝑜 là trị riêng của 𝐴𝑇𝐴 và (𝐴𝑇𝑋𝑜) là vector riêng của

𝐴𝑇𝐴

Vì ma trận 𝐴𝐴𝑇 và 𝐴𝑇𝐴 là 2 ma trận đối xứng, nên chúng chéo hóa trực giao được Khi đó:

 𝐴𝐴𝑇 = (𝑄𝛴𝑃𝑇)(𝑄𝛴𝑃𝑇)𝑇

= 𝑄𝛴𝑃𝑇𝑃𝛴𝑇𝑄𝑇

= 𝑄𝛴𝛴𝑇𝑄𝑇(vì 𝑃𝑇𝑃 = 𝐼, 𝐼 là ma trận đơn vị)

= 𝑄𝐷1𝑄𝑇

 𝐴𝑇𝐴 = (𝑄𝛴𝑃𝑇)𝑇(𝑄𝛴𝑃𝑇)

= 𝑃𝛴𝑇𝑄𝑇𝑄𝛴𝑃𝑇

= 𝑃𝛴𝑇𝛴𝑃𝑇(vì 𝑄𝑇𝑄 = 𝐼, 𝐼 là ma trận đơn vị)

= 𝑃𝐷2𝑃𝑇

Suy ra

- Các cột của ma trận 𝑄 là các vector của 𝐴𝐴𝑇 và các 𝜎12, 𝜎22, … 𝜎𝑟2 là các trị riêng khác 0 của 𝐴𝐴𝑇

- Các cột của ma trận 𝑃 là các vector của 𝐴𝑇𝐴 và các 𝜎12, 𝜎22, … 𝜎𝑟2 là các trị riêng khác 0 của 𝐴𝑇𝐴

- 𝐷1, 𝐷2 là ma trận chéo với trị riêng tương ứng của 𝐴𝐴𝑇 và 𝐴𝑇𝐴 là

𝜎12, 𝜎22, … 𝜎𝑟2 Ta sắp xếp các 𝜎12, 𝜎22, … 𝜎𝑟2 sao cho 𝜎12 > 𝜎22 >

⋯ > 𝜎𝑟2 (hình A1)

COMPACT SVD ( SVD gọn nhẹ hơn)

Gọi 𝑄 = (𝑞1|𝑞2| … |𝑞𝑚) 𝑣à 𝑃 = (𝑝1|𝑝2| … |𝑝𝑛)

Viết lại biểu thức (!) dưới dạng tổng với Rank (A) = 1

𝐴 = 𝜎1𝑞1𝑝1𝑇 + 𝜎2𝑞2𝑝2𝑇 + ⋯ + 𝜎𝑟𝑞𝑟𝑝𝑟𝑇

Với mỗi 𝑞𝑖𝑝𝑖𝑇 là một ma trận có hạng bằng 1

Trang 9

Rõ ràng với cách phân tích này, ta nhận thấy rằng ma trận 𝐴 phụ thuộc vào r cột đầu tiên của 𝑄, 𝑃 và r phần tử khác không trên đường chéo 𝛴 Ta có phân tích gọn hơn của 𝐴 gọi là Compact SVD :

𝐴 = 𝑄𝑟𝛴𝑟(𝑃𝑟)𝑇

Với 𝑄𝑟 và 𝑃𝑟 là các ma trận được tạo nên từ các cột của 𝑄 và 𝑃 tương ứng, 𝛴𝑟 là

ma trận con được tạo bởi 𝑟 hàng đầu tiên và 𝑟 cột đầu tiên của 𝛴 Nếu ma trận 𝐴 có rank nhỏ hơn rất nhiều so với số hàng và số cột 𝑟 ≪ 𝑚, 𝑛 , ta sẽ được lợi nhiều về việc lưu trữ

Dưới đây là ví dụ minh hoạ với 𝑚 = 4, 𝑛 = 6, 𝑟 = 2

(H2: Biểu diễn SVD dạng thu gọn và biểu diễn ma trận dưới dạng tổng các ma trận

có rank bằng 1.)

1.3 Sau đây, ta sẽ xét một số ví dụ về phân tích SVD của một ma

trận bất kì:

Bước 1 : Xác định ma trận A(cỡ bao nhiêu) để tiến hành phân tích SVD

Bước 2 : Thực hiện chéo hóa trực giao : 𝐴𝐴𝑇 = 𝑄𝐷1𝑄𝑇

2.1 : Viết phương trình đặc trưng của 𝐴𝐴𝑇 Từ đó chúng ta sẽ tính được các giá trị riêng của 𝐴𝐴𝑇 Viết được ma trận đường chéo 𝐷1 có các phần tử là những giá trị riêng, ta vừa tìm được.(Lưu ý phải sắp xếp nó theo thứ tự giảm dần) 2.2 : Tìm vecto riêng của 𝐴𝐴𝑇 Từ đó ta tính được ma trận 𝑄, các cột của 𝑄 là các vecto riêng của 𝐴𝐴𝑇

Bước 3 : Thực hiện chéo hóa trực giao 𝐴𝑇𝐴 = 𝑃𝐷2𝑃𝑇

 Tương tự các bước 2.1, 2.2 ta tính được 𝑃 và 𝐷2

 Chọn 𝛴𝑚×𝑛 bằng cách chọn ma trận cỡ tương ứng phù hợp với 𝐷1 hay 𝐷2 Sau đó lấy căn bậc 2 của tất cả những phần tử trên đường chéo

Trang 10

Bước 4 : Vậy phân tích SVD của ma trận A sẽ là : 𝐴𝑚× 𝑛 = 𝑄𝑚×𝑚 𝛴𝑚×𝑛(𝑃𝑛×𝑛) 𝑇 Nhận xét: Như vậy từ dữ liệu ban đầu, chúng ta có thể viết nó dưới dạng một ma trận Quá trình chéo hóa trực giao ma trận và ma trận chuyển vị của nó, chúng ta được phân tích SVD Trên cơ sở đó, ta có thể dễ dàng ứng dụng chúng vào nhiều lĩnh vực khác nhau trong khoa học

NHIỄU HÌNH ẢNH

1 Đặt vấn đề:

Trong cuộc sống hiện nay, chúng ta bắt gặp được rất nhiều loại hình ảnh khác nhau trong từng hoàn cảnh khác nhau Chẳng hạn như: hinh ảnh được

chụp selfie, ảnh gia đình, những bức ảnh đầy tính nghệ thuật của các nhiếp ảnh gia, ảnh thẻ mà các bạn sinh viên dung làm thẻ sinh viên,….Hình ảnh là một phát kiến tuyệt vời của nhân loại, chúng ghi lại những khoảng khắc bất chợt nào

đó khiến ta dễ dàng hình dung ra những sự vật sự việc trong thời điểm

sự việc đã xảy ra rồi, chúng ta có thể chiêm ngưỡng một khung cảnh đẹp từng một khoảng cách vô cùng xa, bất cứ lúc nào, Để có đươc một bức ảnh

ta có thể sử dụng nhiều phương tiện khác như như điện thoại, máy chụp ảnh Nhưng trong nhiều trường hợp những tập tin hình ảnh đó có thể bị nhèo đi, bị nhiễu, chất lượng hình ảnh bị giảm đó là hiện tượng "Noise" ảnh hay còn gọi là nhiễu ảnh thường dễ dàng bắt gặp bằng mắt thường, nó khá giống với hiện tượng hạt nhiễu (Grain) trong ảnh film Các đốm lấm tấm nhỏ xuất hiện trên những hình ảnh

chụp trong vùng tối hoặc nơi có

điều kiện ánh sáng thấp do trong

quá trình quay, chụp ảnh hoặc do

điều kiện môi trường tác động

khiến cho hình ảnh không còn giữ

được độ chân thực của mình

Như vậy, một vấn đề cần đặt ra

rằng làm sao để khử nhiễu được

một tập tin hình ảnh mà chúng ta

mong muốn?

Trang 11

 Về mặt ý nghĩa: Nếu như, chúng ta có thể xử lí tốt một tập tin hình ảnh theo các tiêu chí (trọng tâm, chính xác , hiệu quả và tiết kiệm thời gian) thì việc

đó sẽ giúp ích cho ta rất nhiều Trong nghiên cứu về hình ảnh, sẽ giúp ta tiết kiệm thời gian hơn Còn trong doanh nghiệp chuyên về lĩnh vực truyền thông đa phương tiện, nếu xử lí tốt file hình ảnh, sẽ tiết kiệm được rất nhiều chi phí trong việc thiết kế một phần mềm nào đó, hay chỉ đơn giản là tăng chất lượng hình ảnh trong quá trình thiết kế poster, trang trí, thiết kế hình ảnh quảng cáo chuyên nghiệp Từ đó nó sẽ hướng đến nhiều đối tượng khách hàng hơn với một trải nghiệm về chất lượng hình ảnh tuyệt vời, chân thật và đặt biệt không còn bị nhiễu, bị nhèo nữa

 Các tập đoàn về công nghệ lớn đang ngày càng đầu tư vào lĩnh vực hình ảnh, có thể thấy rõ nét nhất trong mảng điện thoại thông minh khi các thiết

bị di động của chúng ta sử dụng hằng ngày không còn là chỉ nghe, gọi, nhắn tin mà những camera gắn lên chúng ngày càng được nâng cấp cả về số lượng lẫn chất lượng xử lí để chụp những bức ảnh kỉ niệm, selfie những bức ảnh đẹp, đó là xu thế của tương lai và nắm bắt được xu thế chính là nắm bắt được thành công

2 Khử nhiễu hình ảnh qua thuật toán phân tích SVD

a Về ứng dụng hỗ trợ:

Hiện tại có rất nhiều ứng dụng hỗ trợ xử lí hình ảnh, đặc biệt là khử nhiễu dễ sử dụng và tiếp cận với người dùng một cách nhanh chóng Có thể kể đến như:,

Adobe Photoshop, Adobe Photoshop Lightroom, Affinity Photo, CyberLink PhotoDirector, Corel PaintShop Pro,…

Điểm chung của tất cả các phần mềm này chúng đều được viết dựa trên những đoạn Code xử lí hình ảnh trong C++, C#, Pascal, Python, Matlab….Chúng ta sẽ nghiên cứu cách xử lí hình ảnh từ những ngôn ngữ lập trình này Trên phương diện khảo sát của nhóm, chúng ta sẽ thực hiện khử nhiễu hình ảnh trên Matlab bởi lẽ: nó

là một phần mềm cung cấp một môi trường hoàn hảo về công cụ tính toán cũng như lập trình Người sử dụng có thể thực hiện phép tính toán với ma trận , vẽ đồ

Trang 12

imt = imread( 'pic.tif' );

imt= im2double(imt);

imt=imresize(imt,[256,256]);

figure;

imshow(imt);title( 'Ảnh Gốc' )

[X1, U1] = MSVD(imt);

imf = IMSVD(X1,U1);

thị, hàm số và tạo ra những thuật toán riêng cho mình Đồng thời matlab cũng liên kết với nhiều ngôn ngữ lập trình khác thuận tiện cho người

sử dụng

b Về thuật toán Trong Matlab, có rất nhiều phương pháp khác nhau để khử nhiễu hình ảnh như phép biến đổi Fourier hữu hạn, phân tích SVD, phân tích thành phần chính PCA…

Như đã trình bày ở phần 1.1, việc khử nhiễu bằng phân tích SVD sẽ có nhiều ưu điểm thuận lợi, thông qua

việc biến đổi những điểm dữ liệu mới trong không gian,

mà vẫn đảm bảo được hạng của ma trận và kích thước các nhân tử của ma trận trong một giới hạn cho phép Như vậy, nhờ thuật toán đó chúng ta code thể xóa bỏ những “vết nhiễu” của hình ảnh từ đó giúp đầu ra của hình ảnh được chất lượng hơn

3 Quá trình khử nhiễu hình ảnh bằng SVD thông qua Matlab:

Quá trình phân tích SVD cho một file hình ảnh trên matlab trải qua các bước cơ bản như sau

Bước 1: Giả sử, ta có một file âm thanh trong máy (đuôi có thể ở dạng

jpg,tif,png…) ta chèn nó vào matlab Ta chèn và đọc bức ảnh bằng lệnh “imread”

Bước 2: Chuyển ảnh sang dạng double bằng lên “im2double”

Bước 3: Trả về hình ảnh được chọn có tỷ lệ nhân với kích thước của hình ảnh đầu

vào Hình ảnh đầu vào có thể là hình ảnh thang độ xám, RGB, nhị phân hoặc phân

loại – Sử dụng lệnh “imresize”

Bước 4: Xuất ra màn hình ảnh gốc ban đầu – Sử dụng lệnh “figure; imshow” Bước 5: Chúng ta tiến hành phân tích SVD để khử hình ảnh bị nhiễu đó, trên

nguyên tắc mã hóa thành một ma trận gồm các nhân tử để chương trình matlab có thể nhận dạng được, từ đó bắt đầu phân tích SVD để khử nhiễu nó

Ảnh gốc “pic.tif”

Trang 13

Sử dụng:

a) MSVD bằng lệnh “function

[Y,U] = MSVD(x)”

Phân tích SVD ma trận A bởi lệnh

[U,S]= svd(A) Với ma trận A=Q.∑ 𝑃 Gán Q=U, ∑ 𝑃=S

b) IMSVD bằng lệnh

%%%%%%MSVD %%%%

% multiresolution SVD (MSVD)

% input-> x: image (spatial domain)

% outputs-> Y: one level MSVD decomposition

of x

% U: the unitary matrix (U in SVD)

% x=imresize(x,[256,256]);

[m,n] = size(x);

m = m/2; n = n/2;

A = zeros(4,m*n);

for j = 1:n

for i = 1:m

A(:,i + (j-1)*m) =

reshape(x((i-1)*2+(1:2),(j-1)*2+(1:2)),4,1);

end

end

[U,S] = svd(A);

U

S

T = U'*A;

Y.LL = reshape(T(1,:),m,n);

Y.LH = reshape(T(2,:),m,n);

Y.HL = reshape(T(3,:),m,n);

Y.HH = reshape(T(4,:),m,n);

%%%%IMSVD %%%%%

% inverse MSVD (IMSVD)

% Inputs-> Y: MSVD coefficients & U: unitary

matrix (U in SVD)

% output-> x: image (spaitial domain)

[m,n] = size(Y.LL);

mn = m*n;

T1 = zeros(4,mn);

T1(1,:) = reshape((Y.LL),1,mn);

T1(2,:) = reshape((Y.LH),1,mn);

T1(3,:) = reshape((Y.HL),1,mn);

T1(4,:) = reshape((Y.HH),1,mn);

% figure,imshow(Y.LL,[]);

A1 = U * T1;

x1 = zeros(m*2,n*2);

for j = 1:n

for i = 1:m

x1((i-1)*2+(1:2), (j-1)*2+(1:2)) =

reshape(A1(:,i+(j-1)*m),2,2);

end

end

figure,imshow(x1,[]);title( 'Ảnh đã khử

nhiễu' )

Ngày đăng: 28/11/2022, 13:51

HÌNH ẢNH LIÊN QUAN

(H1: SVD cho ma trậ nA khi:  - BÁO cáo bài tập lớn đại số TUYẾN TÍNH CHỦ đề 10 ỨNG DỤNG PHÂN TÍCH SVD để KHỬ NHIỄU HÌNH ẢNH
1 SVD cho ma trậ nA khi: (Trang 7)
Trong cuộc sống hiện nay, chúng ta bắt gặp được rất nhiều loại hình ảnh khác nhau trong từng hoàn cảnh khác nhau - BÁO cáo bài tập lớn đại số TUYẾN TÍNH CHỦ đề 10 ỨNG DỤNG PHÂN TÍCH SVD để KHỬ NHIỄU HÌNH ẢNH
rong cuộc sống hiện nay, chúng ta bắt gặp được rất nhiều loại hình ảnh khác nhau trong từng hoàn cảnh khác nhau (Trang 10)
 Về mặt ý nghĩa: Nếu như, chúng ta có thể xử lí tốt một tập tin hình ảnh theo các tiêu chí (trọng tâm, chính xác , hiệu quả và tiết kiệm thời gian) thì việc  đó sẽ giúp ích cho ta rất nhiều - BÁO cáo bài tập lớn đại số TUYẾN TÍNH CHỦ đề 10 ỨNG DỤNG PHÂN TÍCH SVD để KHỬ NHIỄU HÌNH ẢNH
m ặt ý nghĩa: Nếu như, chúng ta có thể xử lí tốt một tập tin hình ảnh theo các tiêu chí (trọng tâm, chính xác , hiệu quả và tiết kiệm thời gian) thì việc đó sẽ giúp ích cho ta rất nhiều (Trang 11)
3. Quá trình khử nhiễu hình ảnh bằng SVD thơng qua Matlab:  - BÁO cáo bài tập lớn đại số TUYẾN TÍNH CHỦ đề 10 ỨNG DỤNG PHÂN TÍCH SVD để KHỬ NHIỄU HÌNH ẢNH
3. Quá trình khử nhiễu hình ảnh bằng SVD thơng qua Matlab: (Trang 12)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w