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

Báo cáobài tập lớnđại số tuyến tính đề tài nén ảnh bằng phép biến đổi haar

21 10 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 đề Nén Ảnh Bằng Phép Biến Đổi Haar
Tác giả Trương Đại Phong, Đặng Quan Phú, Lê Vĩnh Phúc, Nguyễn Bùi Hồng Phước, Nguyễn Trần Mai Phương, Trần Minh Quân, Nguyễn Hải Quang
Người hướng dẫn Nguyễn Hữu Hiệp
Trường học Đại Học Bách Khoa
Chuyên ngành Đại Số Tuyến Tính
Thể loại Báo Cáo
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 21
Dung lượng 2,01 MB

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO TR ƯỜNG ĐẠI HỌC BÁCH KHOA ĐẠI HỌC QUỐC GIA – HỒ CHÍ MINH -o0o - BÁO CÁO BÀI TẬP LỚN ĐẠI SỐ TUYẾN TÍNH ĐỀ TÀI NÉN ẢNH BẰNG PHÉP BIẾN ĐỔI HAAR Giảng viên hướng dẫn: Nguyễn Hữu Hiệp Lớp: L12 Nhóm số: 14 ĐẠI HỌC BÁCH KHOA – 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 ĐỀ TÀI NÉN ẢNH BẰNG PHÉP BIẾN ĐỔI HAAR  Giảng viên hướng dẫn: Nguyễn Hữu Hiệp Lớp: L12 Nhóm:14 Danh sách thành viên MSSV Trương Đại Phong 2312635 Đặng Quan Phú 2312643 Lê Vĩnh Phúc 2312685  Nguyễn Bùi Hồng Phước 2312771  Nguyễn Trần Mai Phương 2312757 Trần Minh Quân 2312855  Nguyễn Hải Quang 2312797 MỤC LỤC TÓM TẮT BÁO CÁO LỜI NÓI ĐẦU DANH MỤC HÌNH ẢNH CHƯƠNG 1: KHÁI NIỆM MATLAB   1.1 Matlab gì?   1.2 Ứng dụng Matlab   1.3 Tổng quan Matlab CHƯƠNG 2: KHÁI NIỆM VỀ ẢNH CHƯƠNG 3: NỘI DUNG   PHẦN 1: PHÉP BIẾN ĐỔI HAAR    3.1.1: Biến đổi Haar 3.1.2: Giới thiệu   3.1.3: Tác dụng   PHẦN 2: SỬ DỤNG PHÉP BIẾN ĐỔI HAAR ĐỂ NÉN ẢNH CHƯƠNG 4: CODE MATLAB CHƯƠNG 5: KẾT LUẬN DANH MỤC TÀI LIỆU THAM KHẢO TÓM TẮT BÁO CÁO  Ngày sống người ngày phát triển, thứ dần trở nên đại Do nhu cầu người ngày cao, từ dẫn đến phát triển mạnh mẽ công nghệ khoa học phục vụ đời sống công việc người Một phát triển quan trọng người nén liệu nói chung nén ảnh nói riêng Đại số tuyến tính có nhiều ứng dụng nhiều lĩnh vực Nó tảng cho phát triển nhiều khoa học tạo thuật toán xếp hạng, sử dụng cho nghiên cứu khơng gian, lập trình tuyến tính, đồ họa máy tính, xử lý liệu nhiều ứng dụng khác Một ứng dụng quan trọng xử lý hình ảnh, nén ảnh Với đầu óc phát triển khơng ngừng người nhiều phương  pháp xử lý liệu đời, vd biến đổi Fourier, biến đổi KL,  biến đổi Wavelet nhiều phương pháp biến đổi khác Trong biến đổi Haar biến đổi đơn giản biến đổi Wavelet Biến đổi Haar biến đổi có nhiều tiềm  phát triển tương lai, ứng dụng nhiều lĩnh vực có nén ảnh LỜI NĨI ĐẦU Lời đầu tiên, nhóm chúng em xin chân thành cảm ơn Trường Đại học Bách Khoa Thành phố Hồ Chí Minh đưa mơn Đại số tuyến tính vào chương trình giảng dạy Trong suốt trình học tập, chúng em học hỏi, tích lũy kiến thức bổ ích kỹ cần thiết cho  bản thân tương lai Tiếp đến, chúng em xin gửi lời cảm ơn chân thành đến thầy Nguyễn Hữu Hiệp – Giảng viên môn Đại số tuyến tính ln quan tâm giúp đỡ, định hướng tận tình giảng dạy để chúng em hồn thành báo cáo ngày hơm Trong suốt trình học tập, chúng em cố gắng vận dụng kiến thức, kỹ để nghiên cứu đươc giao, nhưng, tránh khỏi sai sót Kính mong nhận nhận xét, góp ý Thầy để chúng em hồn thành luận cách hoàn thiện chỉnh chu Chúng em xin chân thành cảm ơn! DANH MỤC HÌNH ẢNH CHƯƠNG 1: KHÁI NIỆM MAT LAB 1.1 Matlab gì? MATLAB mơi trường tính tốn ngơn ngữ lập trình sử dụng để thực phép tính số học, xử lý liệu, vẽ biểu đồ, chủ yếu dựa việc làm việc với ma trận vector  1.2 Ứng dụng Matlab Matlab có nhiều ứng dụng nhiều lĩnh vực khác tính linh hoạt đa dạng Dưới số ứng dụng phổ biến Matlab: ← ← ← ← ← ← ← ← ← ← ← ← ← ← *Khoa học Kỹ thuật: Matlab sử dụng rộng rãi nghiên cứu khoa học kỹ thuật, bao gồm lĩnh vực vật lý, hóa học, sinh học, kỹ thuật điện tử, khí, xây dựng mơ hình * Xử lý tín hiệu Hình ảnh:  MATLAB dùng để xử lý tín hiệu âm thanh, video hình ảnh, việc phát triển thử nghiệm thuật tốn xử lý tín hiệu xử lý hình ảnh * Khoa học Dữ liệu Machine Learning: Trong lĩnh vực khoa học liệu học máy, MATLAB cung cấp công cụ để xử lý, phân tích, xây dựng mơ hình liệu phức tạp, triển khai thuật toán học máy * Điều khiển tự động Robotics: MATLAB sử dụng việc phát triển mô hệ thống điều khiển tự động, robot thiết bị điện tử * Tài Kinh doanh: Trong ngành tài chính, MATLAB sử dụng để phân tích liệu tài chính, xây dựng mơ hình tài chính, quản lý rủi ro,  phát triển cơng cụ tài ← ← * Giáo dục: MATLAB cung cấp môi trường thích hợp để giảng dạy khái niệm tốn học, kỹ thuật số, lập trình ← Với tính linh hoạt khả mở rộng, MATLAB áp dụng nhiều lĩnh vực khác nhau, từ nghiên cứu đến ứng dụng thực tế công nghiệp 1.3 Tổng quan Matlab: MATLAB môi trường tính tốn ngơn ngữ lập trình sử dụng chủ yếu nghiên cứu, phân tích liệu, mơ hình hóa Nó chủ yếu làm việc với ma trận vector, cung cấp công cụ mạnh mẽ cho tính tốn số học, vẽ biểu đồ, phát triển thuật toán MATLAB ứng dụng rộng rãi nhiều lĩnh vực khoa học, kỹ thuật, tài giáo dục CHƯƠNG 2: KHÁI NIỆM VỀ ẢNH Ảnh hình ảnh biểu diễn khơng gian hai chiều, thường lưu trữ dạng điểm ảnh pixels Mỗi pixel điểm nhỏ hình ảnh mang thơng tin màu sắc, độ sáng chi tiết Ảnh số thường biểu diễn dạng ma trận hai chiều, phần tử ma trận tương ứng với pixel chứa thơng tin màu sắc (nếu ảnh màu) độ xám (nếu ảnh đen trắng)   Hình 2.1: Hình ảnh minh họa Pixel Các loại ảnh phổ biến bao gồm: * Ảnh màu: Có thơng tin màu sắc, thường biểu diễn ba kênh màu: đỏ, xanh xanh lam Hình 2.2: Hình ảnh minh họ ả ảnh mảu   * Ảnh đen trắng (Ảnh xám): Chỉ có thông tin độ sáng pixel mà thơng tin màu sắc Hình 2.3: Hình ảnh minh họ ả ảnh đen trảng Ảnh tạo từ nhiều nguồn khác máy ảnh số, máy quét, tạo cách sử dụng phần mềm công cụ đồ họa Công nghệ xử lý ảnh cho phép thực nhiều thao tác khác ảnh cắt, xoay, chỉnh sửa màu sắc, phân tích, nhận dạng, nén nhiều công việc khác để đáp ứng nhu cầu ứng dụng khác sống hàng ngày công nghiệp CHƯƠNG 3: NỘI DUNG PHẦN 1: PHÉP BIẾN ĐỔI HAAR  1.1 Biến đổi Haar  - Biến đổi Haar biến đổi đơn giản số biến đổi wavelet Biến đổi nhân chéo chức chống lại sóng Haar với nhiều lần dịch chuyển kéo dài khác nhau, giống biến đổi Fourier nhân chéo chức chống lại sóng hình sin với hai  pha nhiều lần kéo dài - Các hàm sóng khác biến đổi Wavelet (ví dụ: Daubechies, Coiflet, Symlet) dạng hàm sóng phức tạp hơn, có khả mơ tả tần số nhiều mức độ phân giải khác nhau, Haar tập trung vào hai mức độ phân giải 1.2 Giới thiệu - Biến đổi Haar hàm biến đổi lâu đời nhất, đề xuất vào năm 1910 nhà toán học người Hungary Alfréd Haar Nó tìm thấy hiệu ứng dụng nén tín hiệu hình ảnh kỹ thuật điện máy tính cung cấp cách tiếp cận đơn giản hiệu mặt tính tốn để phân tích khía cạnh cục  bộ tín hiệu - Biến đổi Haar có nguồn gốc từ ma trận Haar 1.3 Tác dụng -Nén ảnh có dung lượng lớn Ví dụ ảnh có tỉ lệ xám (512*512) pixel có 262,544 phần tử để lưu trữ, số phần tử lớn nhiều lần ảnh màu Vì kích thước lớn khiến cho việc tải hình ảnh từ internet chậm tốn dung lượng nhớ nhiều -Từ phép biến đổi haar nghĩ để giúp nén hình ảnh giúp thiết bị đỡ tốn nhiều dung lượng tải về, việc truyền tải chia sẻ ảnh nhanh PHẦN 2: SỬ DỤNG PHÉP BIẾN ĐỔI HAAR ĐỂ NÉN ẢNH Cho ảnh có độ xám 512*512 pixel có ma trận 8*8 sau: Chúng ta lấy hàng đầu làm mẫu Chúng ta nhóm cặp [90;90], [91;92], [94;96], [98;99] Thay chỗ nửa tổng cặp chỗ sau nửa hiệu cặp Ta kí hiệu chỗ gọi hệ số sấp sỉ, chỗ sau gọi hệ số chi tiết Tiếp theo ta giữ nguyên chỗ sau(hệ số chi tiết) nhóm chỗ đầu(hệ số xấp xỉ) thành nhóm [90 91,5] [95 98,5] thay chỗ đầu nửa tổng cặp, hai chỗ sau thay nửa hiệu cặp Ta hàng thứ kí hiệu Ta lặp lại quy trình tương tự cho hang cịn lại A Sau lặp lại tương tự cho cột Ma trận kết   Ta thấy số chỗ cịn lại gần xấp xỉ Đây kết khác biệt thực tế pixel liền kề hình ảnh nói chung khơng khác nhiều Tiếp theo, ta giải thích cách thực q trình cách sử dụng phép nhân ma trận biến đổi haar wavelet Nếu ta có   Thì tương đương với bước làm áp dụng cho tất hàng Tương tự ta xác định Sau hàng tương đương với bước làm áp dụng cho tất Cuối ta xác định Sau tương đương với bước Bước ta cho ma trận Để áp dụng quy trình cho cột, cần nhân với bên trái, ta CODE MATLAB input = 'abc.jpg'; output = 'outputhaar.jpg'; if (exist(input)==2) a = imread(input) ; a= imresize(a,[512 512]) ; hold on subplot (2,1,1) ; title ('anh1'); imshow (a); 10 else 11 disp ('k co anh'); 12 return ; 13 end 14 n = length (a); 15 A= zeros (n,n); 16 m= ; 17 Q = eye(1); 18 dem = 0; 19 while (m ~= 1) 20 At = A ; 21 m = m/2; 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 for i = 1: m At(i,2*i-1) = 1/2 ; At(i,2*i) = 1/2; At(i+m,2*i-1) = 1/2; At(i+m,2*i) = -1/2; end for i = m*2 + :n At (i,i) = ; end for i = 1:2 *m At(:, i) = At(:,i)/norm(At(:,i)); end Q = At*Q ; dem = dem +1 ; end im (:,:,1) = Q *double (a(:,:,1)) ; im (:,:,2)= Q *double (a(:,:,2)); im (:,:,3)=Q *double (a(:,:,3)); 40 41 42 43 imwrite (im, output); subplot(2,1,2); title ('anh2'); imshow(im); Kết sau nén:  Giải thích code matlab Giải thích code matlab nén ảnh trên: Dòng 1-2: đặt tên cho file đầu vào file đầu Dòng Kiểm tra xem file đầu vào có tồn khơng (exist(input) trả có) Dòng Nếu file đầu vào tồn tại, đọc ảnh từ file lưu vào biến a Dòng Thay đổi kích thước ảnh a thành 512x512 pixel Dịng Sử dụng để giữ cấu hình đồ thị vẽ subplot Dịng Tạo subplot vị trí lưới 2x1 Dòng Đặt tiêu đề cho subplot 'anh1' Dòng Hiển thị ảnh a subplot vừa tạo Dịng 10 Nếu file đầu vào khơng tồn tại, thực lệnh khối Dòng 11 Hiển thị thơng báo 'k co anh' (khơng có ảnh) Dịng 12-13 Kết thúc chương trình Dịng 14 Tính độ dài biến a (số pixel ảnh) Dòng 15 Khởi tạo ma trận A với kích thước n x n phần tử Dòng 16 Khởi tạo ma trận m bậc Dòng 17 Khởi tạo ma trận đơn vị 1x1 lưu vào biến Q Dòng 18 Khởi tạo biến dem với giá trị Dòng 19 Bắt đầu vòng lặp while, thực bước m trở thành Dòng 20 Sao chép nội dung ma trận A vào ma trận At tạm thời Dòng 21 Chia giá trị m cho Dòng 22 Bắt đầu vòng lặp for để thực biến đổi Haar cho khối Dịng 23 Cập nhật phần tử vị trí 2*i-1 hàng i At thành 1/2 Dòng 24 Cập nhật phần tử vị trí 2*i hàng i At thành 1/2 Dòng 25 Cập nhật phần tử vị trí 2*i-1 hàng i+m At thành 1/2 Dịng 26 Cập nhật phần tử vị trí 2*i hàng i+m At thành -1/2 Dòng 28 Bắt đầu vòng lặp để đặt phần tử đường chéo At thành Dịng 29 Đặt phần tử đường chéo At thành Dịng 31 Bắt đầu vịng lặp để chuẩn hóa cột At Dịng 32 Chuẩn hóa cột thứ i At (chia phần tử cột cho độ lớn Euclidean cột) Dòng 34 Nhân ma trận biến đổi At với ma trận biến đổi tổng cộng Q Dòng 35 Tăng biến đếm dem lên Dòng 37 Áp dụng phép biến đổi Haar cho kênh màu đỏ ảnh Dòng 38 Áp dụng phép biến đổi Haar cho kênh màu xanh ảnh Dòng 39 Áp dụng phép biến đổi Haar cho kênh màu xanh dương ảnh Dòng 40 Lưu ảnh biến đổi vào file đầu Dòng 41 Tạo subplot vị trí lưới 2x1 Dịng 42 Đặt tiêu đề cho subplot 'anh2' Dòng 43 Hiển thị ảnh biến đổi subplot thứ hai

Ngày đăng: 12/12/2023, 15:12

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

TÀI LIỆU LIÊN QUAN

w