Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 20 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
20
Dung lượng
763,62 KB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA TP HCM ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH 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 Viết chương trình sử dụng phép biến đổi Haar để nén liệu MT1007_L19_N09 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA TP HCM ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH 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 Viết chương trình sử dụng phép biến đổi Haar để nén liệu NHÓM 09 – ĐSTT(MT1007)_L19 STT Thành viên Lê Hoàng Phương Uyên Lê Gia Huy Phạm Hồ Anh Tuấn Trần Hồng Sơn Đỗ Trần Cơng Thành Văn Phú MSSV 2112628 2111298 2112586 2114673 2112290 2114425 MỤC LỤC DANH SÁCH THÀNH VIÊN …………………………… MỤC LỤC …………………………………………………… LỜI MỞ ĐẦU ………………………………………………… CHƯƠNG I: CƠ SỞ LÝ THUYẾT I GIỚI THIỆU CHUNG …………………………… ………… Sơ lược thuật toán haar ……………………………………… Tác dụng ….…………………………………………………… II CÁCH GIẢI THUẬT TỐN ……………………… ……… Cách giải thuật tốn ……… ………………………………… Nén liệu …….………………………………………… Nén không liệu ……….………………………………… 10 4 CHƯƠNG II: MATLAB I GIỚI THIỆU MATLAB ………………………………… … 15 II CÁC LỆNH MATLAB ĐƯỢC SỬ DỤNG …………………… 15 III ĐOẠN CODE MATLAB ……………………………………… 16 CHƯƠNG III: TỔNG KẾT I KIẾN THỨC …………………………………………………… 17 II KĨ NĂNG ……………………………………………………… 17 III TÀI LIỆU THAM KHẢO ……………………………………… 17 LỜI CẢM ƠN …………………………… …………… 18 LỜI MỞ ĐẦU Cuộc sống phát triển nhu cầu thơng tin người phong phú, dẫn đến phát triển mạnh mẽ khoa học kĩ thuật, loại hình thơng tin vơ tuyến, hình thức xử lí tín hiệu, đặc biệt cơng nghệ xử lí ảnh Xử lí ảnh ngành khoa học tương đối mẻ so với nhiều ngành khoa học khác tập trung nghiên cứu phát triển ứng dụng thực tiễn nhiều ngành, lĩnh vực khác Trong “nén ảnh” phần xử lí ảnh có ứng dụng to lớn truyền thơng lưu trữ, có nhiều phương pháp nén ảnh đời không ngừng cải tiến để ngày hoàn thiện đem lại hiệu nén cao cho chất lượng ảnh tốt Nén ảnh kĩ thuật mã hóa ảnh số hóa nhằm giảm số lượng bit liệu cần thiết để biểu diễn ảnh Vấn đề đặt yêu cầu ngày cao việc xử lí tín hiệu để đảm bảo vừa nén liệu, tiết kiệm dung lượng đường truyền tín hiệu, vừa đảm bảo trừ nhiễu tín hiệu có khả khơi phục lại tín hiệu với chất lượng tốt Có nhiều phương pháp xử lí tín hiệu với nhiều thuật toán, biến đổi toán học nghiên cứu Trong số đó, biến đổi Haar xem phép biến đổi mới, có nhiều tiềm năng, phát triển mạnh mẽ với ưu điểm vượt trội so với phép biến đổi truyền thống Haar cho phép phân tích tín hiệu miền thời gian tần số Do đó, biến đổi Haar ứng dụng rộng rãi nhiều lĩnh vực, từ y sinh tới cơng nghệ xử lí ảnh Trong báo cáo này, chúng em xin phép giới thiệu về: “Giới thiệu phép biến đổi Haar viết phương trình sử dụng phép biến đổi Haar để nén liệu” CHƯƠNG I: CƠ SỞ LÝ THUYẾT I GIỚI THIỆU CHUNG Sơ lược thuật toán Haar Biến đổi Haar chức biến đổi lâu đời nhất, đề xuất vào năm 1910 nhà tố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 địa phương tín hiệu Hàm biến đổi nén Haar cách đơn giản để thể hai phương pháp nén liệu nén khơng liệu Nó phụ thuộc vào trung bình giá trị khác ma trận hình ảnh tạo ma trận thưa gần thưa Một ma trận thưa lưu trữ cách hiệu quả, dẫn tới việc làm nhỏ kích cỡ ma trận Tác dụng Việc sử dụng máy tính cho cơng việc khác tăng lên chóng mặt Với đời máy ảnh kĩ thuật số, ứng dụng phổ biến lưu trữ, thao tác truyền hình ảnh kỹ thuật số Tuy nhiên, tệp bao gồm hình ảnh lớn nhanh chóng chiếm dung lượng nhớ ổ cứng máy tính Một hình ảnh tỷ lệ xám 256 x 256 pixel có 65.636 phần tử để lưu trữ hay hình ảnh màu 640 x 480 điển hình có gần triệu Kích thước tệp khiến q trình tải xuống từ Internet trở nên lâu chậm Biến đổi Haar wavelet cung cấp phương tiện mà nén hình ảnh để chiếm khơng gian lưu trữ hơn, truyền điện tử nhanh mức độ chi tiết tăng dần II CÁCH GIẢI THUẬT TỐN Cách giải thuật tốn Ở đây, tập trung vào thước xám (Gray Scale hiểu theo tiếng Việt có nghĩa thước xám hay gọi “xám chuẩn”, “thẻ xám”, dụng cụ giúp kiểm tra, đánh giá độ bền màu sản phẩm vải, sản phẩm nhuộm.); nhiên, ảnh theo dạng rbg kiểm sốt cách nén màu khác theo lớp riêng biệt khác Phương pháp để bắt đầu với ảnh A, ta xem ma trận cỡ m n , với giá trị từ đến 255 Trong matlab, ma trận với 8-bit giá trị nguyên Chúng ta chia nhỏ ảnh thành Ví dụ : Dưới hình ảnh thang độ xám 512 512 pixel trụ bay Nhà thờ Đức Bà Paris: Và ma trận từ ảnh trên: 88 90 92 93 A 92 92 94 95 88 89 90 92 94 96 97 90 91 92 93 95 97 97 92 93 94 95 96 97 97 93 94 95 96 96 96 96 93 95 96 96 96 96 95 94 96 98 99 99 98 97 96 99 101 103 103 102 101 97 101 104 106 106 105 105 Chúng ta tập trung vào hàng đầu: r1 88 88 89 90 92 94 96 97 Quá trình chuyển đổi diễn bước, với bước nhóm theo cặp: [88,88] ; [89,90] ; [92,94] ; [96,97] Tiếp theo, thay cột r1 giá trị nửa tổng cột cuối r1 nửa hiệu cặp Hàng ký hiệu r1h1 : r1h1 88 89.5 93 96.5 0.5 1 0.5 mục gọi hệ số xấp xỉ mục cuối gọi hệ số chi tiết Tiếp theo, nhóm cột hàng [88,89.5] , [93,86.5] thay cột đầu nửa tổng cặp số cột sau nửa hiệu cặp số Chúng ta giữ nguyên cột cuối r1h1 Và biểu thị hàng thứ hai r1h1h2 : r1h1h2 88.75 94.75 0.75 1.75 0.5 1 0.5 Cuối cùng, nhóm mục r1h1h2 lại với [88.75,94.75] thay cột r1h1h2 nửa tổng cột thứ hai r1h1h2 nửa hiệu cặp số Ta giữ nguyên cột cuối r1h1h2 Ta ký hiệu hàng cuối r1h1h2h3 r1h1h2h3 91.75 3 0.75 1.75 0.5 1 0.5 Ta lặp lại quy trình cho hàng cịn lại A Sau đó, lặp lại quy trình tương tự cho cột A, nhóm hàng theo cách với cột Ma trận kết là: 96 2.4375 1.125 2.6875 0.6875 0.1875 0.875 1.25 2.0312 1.5312 0.2188 0.4375 0.75 0.3125 0.125 0.0312 0.7812 0.7812 0.4375 0.25 0.3125 0.25 0.625 0.675 0 0.375 0.125 0.75 0.5625 0.0625 0.125 0.25 0.125 0.3125 0.125 0 0.25 0.3125 0.375 0 0.25 0.375 0.25 0.25 0.25 0.25 0 0.375 0.375 0.125 0.25 0.25 Lưu ý ma trận kết có số mục nhập hầu hết mục nhập lại gần Điều 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 Bây giờ, ta thảo luận cách thực trình cách sử dụng phép nhân ma trận đây, ma trận biến đổi Haar wavelet Nếu ta có: 0 0.5 0 0.5 0 0.5 0 0.5 0 0.5 0 0.5 0.5 0 0.5 0 H1 0 0.5 0 0.5 0 0.5 0 0.5 0 0.5 0 0.5 0 0.5 0 0.5 AH1 tương đương với bước áp dụng cho tất hàng A 89.5 88 91.5 90 93.5 92 93 94.5 AH1 92.5 95.5 92 97 100 95 96 102.5 93 96.5 94 97 95.5 97 96 96 96 95.5 0.5 99 97.5 1 103 101.5 1 106 105 1 0.5 1 0.5 0.5 1 0.5 0.5 0.5 0 0.5 0.5 1 0.5 1 0.5 1.5 0 Tương tự, xác định H bằng: 0.5 0.5 H2 0 0.5 0 0.5 0.5 0.5 0.5 0.5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Sau đó, AH1H tương đương với hai bước áp dụng cho tất hàng A: 88.75 94.75 95.5 90.75 92.75 96.25 93.75 96 AH1 H 94 95.75 95 98.25 97.5 102.25 99.25 105.5 0.75 1.75 0.75 1.5 0.75 0.75 0.75 0 1.5 0.25 0.5 2 0.75 1 2.5 0.75 1 3.25 0.5 1 0.5 1 0.5 0.5 1 0.5 0.5 0.5 0 0.5 0.5 1 0.5 1 0.5 1.5 0 Cuối cùng, ta xác định: 0.5 0.5 H3 0.5 0.5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Sau AH1H H tương đương với ba bước áp dụng cho tất hàng A Cụ thể là: 91.75 93.125 94.5 94.875 AH1 H H 94.875 96.625 99.875 102.375 3 2.375 1.75 1.125 0.875 1.625 2.375 3.125 0.75 1.75 0.75 1.5 0.75 0.75 0.75 0 1.5 0.25 0.5 20 0.75 10 2.5 0.75 10 3.25 0.5 10 0.5 10 0.5 0.5 10 0.5 0.5 0.5 0 0.5 0.5 10 0.5 10 0.5 1.5 0 Nếu ta đặt H tích ma trận này, thì: 0.125 0.125 0.125 0.125 H H1 H H 0.125 0.125 0.125 0.125 0.125 0.25 0.5 0 0.125 0.5 0.5 0 0.125 0.25 0 0.5 0 0.125 0.25 0 0.5 0 0.125 0.25 0 0.5 0.125 0.25 0 0.5 0.125 0.25 0 0.5 0.125 0.25 0 0.5 Để áp dụng quy trình cho cột, cần nhân A bên trái với H T Ma trận kết là: 96 2.4375 1.125 2.6875 T H AH 0.6875 0.1875 0.875 1.25 2.0312 1.5312 0.2188 0.4375 0.75 0.3125 0.125 0.0312 0.7812 0.7812 0.4375 0.25 0.3125 0.25 0.625 0.625 0 0.375 0.125 0.75 0.5625 0.0625 0.125 0.25 0.125 0.3125 0.125 0 0.25 0.3125 0.375 0 0.25 0.375 0.25 0.25 0.25 0.25 0 0.375 0.375 0.125 0.25 0.25 Phần quan trọng trình phép biến đổi nghịch đảo Đặc biệt, H ma trận khả nghịch Nếu B H T AH A H T BH 1 Vậy B kết ảnh 1 nén A Hơn nữa, H khả nghịch nên phép nén không liệu Nén liệu Phép biến đổi Haar biểu diễn ma trận nén liệu để giữ lại chất lượng hình ảnh Đầu tiên, tỷ lệ nén hình ảnh tỷ lệ phần tử khác ảnh gốc với phần tử khác ảnh nén Gọi A ma trận dạng H T AH ảnh nén A qua phép biến đổi Haar wavelet H T AH chứa nhiều hệ số chi tiết gần Chọn số có trị tuyệt đối phạm vi từ đến biến thành số Ma trận có nhiều giá trị thể hình ảnh nén nhiều Khi giải nén hình ảnh cách sử dụng biến đổi Haar wavelet ngược, thu kết với hình ảnh gần với gốc Ví dụ, với ma trận A lấy từ ví dụ, chọn 0.25 , có kết với ma trận: 2.0312 1.5312 0.4375 0.75 0.3125 96 0.7812 0.7812 0.4375 0.3125 2.4375 0.625 0.625 0 0.375 1.125 2.6875 0.75 0.5625 0 0 0.6875 0.3125 0 0 0 0.3125 0.375 0 0 0.375 0 0 0 0.875 0.375 0.375 0 0 1.25 48 1.7 (phần tử số 48 tức số 96 27 chia đôi phần mẫu số 27 số khác ma trận trên) Ma trận đại diện cho tỉ lệ nén Các ảnh ví dụ hình ảnh ban đầu, nén theo tỷ lệ khác nhau: Ảnh gốc Tỷ lệ nén 10:1 Tỷ lệ nén 30:1 Tỷ lệ nén 50:1 Nén không liệu Ví dụ: Xét phép nén liệu dựa biến đổi Haar Giả sử ta có đoạn liệu X 154 150 156 152 160 160 152 156 Ta chia liệu thành cặp T tìm nửa tổng a nửa hiệu d cặp Khi ta dãy X1 152 154 160 154 2 2 với số nửa tổng số tiếp T theo nửa hiệu cặp Có thể dùng ma trận để mơ tả q trình sau: 10 0.5 A 0.5 0.5 0 0 0 0.5 0.5 0 0 0 0.5 0.5 0 0 0 0.5 0.5 0.5 0 0 0 0.5 0.5 0 0 0 0.5 0.5 0 0 0 0.5 0.5 Các cột A tạo nên họ trực giao Nếu ta chia cột cho độ dài họ trực chuẩn ma trận tương ứng ma trận trực giao H sau: 2 2 0 0 2 0 2 2 0 0 0 2 0 0 0 2 2 0 0 0 0 0 0 0 0 0 0 2 2 0 2 2 0 2 2 Khi nghịch đảo H H T Ta dùng ma trận H để nén liệu thay cho A Ta có Y1 HX Giải nén liệu ta được, X H T Y1 Phép biến đổi trực giao H có tính chất quan trọng bảo tồn khoảng cách góc Thực vậy, ta có: HX HX T ( HX ) X T H T HX X T X X Tức độ dài vectơ X độ dài vectơ HX u, v Ngoài góc hai vectơ u v thỏa cos u.v Qua phép biến đổi H, góc hai vectơ H u H v thỏa 11 Hu, Hv Hu Hv uT H T Hv T cos Hu Hv u.v u.v uT v u, v cos u.v u.v Hay góc hai vectơ u v với góc hai ảnh Hu Hv Phép biến đổi trực giao H bảo tồn góc khoảng cách nên khơng làm thay đổi hình dạng ảnh trình nén Tiếp tục trình nén sau Vector Y1 H1 X 152 154 160 154 2 2 T Với H1 ma trận H ví dụ trước, có phần tử sau nhỏ phần tử đầu số lớn Giữ bốn số sau dãy lại Đối với bốn số đầu, ta chia làm hai cặp, tìm nửa tổng nửa T hiệu cặp ta Y2 H 2Y1 306 314 2 2 2 2 , với H2 2 2 0 0 2 2 2 2 0 0 0 0 0 0 2 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 Tiếp tục trình trên, giữ số cuối Y2 lại Hai số đầu thay nửa tổng nửa T hiệu chúng, ta có Y3 H3Y2 310 4 2 2 2 2 , với 12 H3 2 2 0 0 0 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 Tóm lại ta có Y3 H3 H H1 X Y3 QX Véctơ Y3 chứa số sau nhỏ Giải nén dãy liệu Y3 tìm lại dãy X Q1Y3 X QT Y3 , với Q 4 2 4 2 4 1 2 4 1 0 2 2 4 4 0 0 2 1 0 0 0 2 2 0 0 0 2 2 0 0 0 2 2 1 2 Dưới ảnh minh họa cho phép biến đổi nén không liệu: 13 Ảnh gốc Ảnh sau lần biến đổi Ảnh sau lần biến đổi Ảnh sau lần biến đổi 14 CHƯƠNG II: MATLAB I GIỚI THIỆU MATLAB MATLAB môi trường tính tốn số lập trình, thiết kế cơng ty MathWorks MATLAB cho phép tính tốn số với ma trận, vẽ đồ thị hàm số hay biểu đồ thơng tin, thực thuật tốn, tạo giao diện người dùng liên kết với chương trình máy tính viết nhiều ngơn ngữ lập trình khác MATLAB giúp đơn giản hóa việc giải tốn tính tốn kĩ thuật so với ngơn ngữ lập trình truyền thống C, C++, Fortran MATLAB sử dụng nhiều lĩnh vực, bao gồm xử lý tín hiệu ảnh, truyền thơng, thiết kế điều khiển tự động, đo lường kiểm tra, phân tích mơ hình tài chính, tính tốn sinh học, bên cạnh đó, MATLAB cịn sử dụng để phát triển thuật tốn Với hàng triệu kĩ sư nhà khoa học làm việc môi trường công nghiệp môi trường hàn lâm, MATLAB ngơn ngữ tính tốn khoa học Thông qua báo cáo chúng em tìm hiểu ứng dụng MATLAB Đại số tuyến tính, cụ thể tìm hiểu phép biến đổi Haar ứng dụng vào việc nén liệu, đồng thời viết chương trình MATLAB sử dụng phép biến đổi Haar để nén hình ảnh 15 II CÁC LỆNH MATLAB ĐƯỢC SỬ DỤNG Lệnh Tác dụng clc Xóa command window clear all Xóa biến close all Đóng cửa sổ phụ imread('filename') Đọc hình ảnh từ tệp đồ họa Chuyển đổi hình ảnh đồ màu RGB rgb2gray(image) sang thang độ xám imresize(A,[NUMROWS NUMCOLS]) Thay đổi kích thước hình ảnh imagesc( ) Hiển thị hình ảnh với màu sắc chia tỷ lệ Chuyển đổi hình ảnh thành độ xác gấp im2double( ) đơi imwrite(A,'filename') Xuất ảnh A thành tệp đồ họa Đặt đồ màu ảnh thành colormap gray đồ màu xám axis off Không hiển thị đường trục Sử dụng đường trục có độ dài axis square Điều chỉnh gia số đơn vị liệu cho phù hợp title('text') Thêm tiêu đề cho ảnh length(X) Kích thước mảng lớn norm( ) Độ dài vector hàng / cột ma trận zeros(N) Tạo ma trận có kích thước N N Chia figure window thành phần theo chiều subplot(2,1,n) ngang, ảnh hiển thị phần thứ n 16 III ĐOẠN CODE MATLAB clc clear all close all IM = imread('anh.jpg'); coverIM = rgb2gray(IM); s=size(coverIM); coverIM = imresize(im2double(coverIM),[s(1,1)/2 s(1,1)/2]); subplot(2,1,1); figure(1) imagesc(coverIM) colormap gray title('Hinh anh ban dau') axis off axis square dim=length(coverIM); m=dim/2; At=zeros(dim); 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=1:dim H1(:,i)=At(:,i)/(norm(At(:,i))); end Y=H1*coverIM; figure(1) subplot(2,1,2); imagesc(Y) colormap gray title('Hinh anh sau bien doi Haar') axis off axis square imwrite(Y,'anh_sau.jpg') 17 CHƯƠNG III: TỔNG KẾT I KIẾN THỨC - Dựa vào kiến thức lí thuyết học để thực phép biến đổi Haar - Tìm hiểu sử dụng phần mềm Matlab viết chương trình sử dụng phép biển dổi Haar để nén liệu II KĨ NĂNG Sau thời gian làm việc chung, nhóm đạt kết sau: + Nhóm hoạt động ổn định, có tổ chức, tơn trọng lẫn nhau, thường xuyên tương tác, trao đổi qua lại thành viên + Thành viên có trách nhiệm, tham gia tất bàn luận hoàn thành nhiệm vụ phân công + Mọi công việc rõ ràng nên nhóm hoạt động cách tối ưu đạt hiệu công việc cao + Các thành viên nâng cao kĩ làm việc nhóm khả giao tiếp, thảo luận với nhau, đưa quan điểm cá nhân,… + Giữa thành viên có thống nhất, người có tính kỷ luật, tuân theo nội quy nhóm III TÀI LIỆU THAM KHẢO Đặng Văn Vinh, Giáo trình Đại Số Tuyến Tính, NXB Đại học Quốc Gia TP Hồ Chí Minh, 2020 David R Bull and Fan Zhang, Intelligent Image and Video Compression Comunicating Pictures, Second Edition Greg Ames, Image Compression, 07/12/2002 https://web.archive.org/web/20110125080404/http://online.redwoods.cc.ca.us/instruct/dar nold/laproj/Fall2002/ames/paper.pdf Help Center for MATLAB, Simulink and other MathWorks products 18 LỜI CẢM ƠN Trước tiên với tình cảm chân thành nhất, chúng em xin bày tỏ lòng biết ơn đến tất cá nhân tổ chức tạo điều kiện hỗ trợ, giúp đỡ chúng em suốt trình học tập nghiên cứu đề tài Trong thời gian từ bắt đầu học tập trường đến nay, chúng em nhận nhiều quan tâm, giúp đỡ q Thầy Cơ bạn bè Với lịng biết ơn sâu sắc nhất, chúng em xin gửi lời cảm ơn đến thầy Bùi Anh Tuấn truyền đạt vốn kiến thức quý báu cho chúng em thời gian học mơn Đại số tuyến tính Nhờ có lời hướng dẫn, giảng dạy Thầy nên đề tài tập lớn chúng em hồn thành Bản báo cáo thực khoảng thời gian ngắn nên hạn chế chúng em nhiều bỡ ngỡ, khơng tránh khỏi thiếu sót, mong nhận ý kiến đóng góp quý báu quý Thầy Cô bạn để kiến thức chúng em cải thiện đồng thời có điều kiện bổ sung, nâng cao kĩ Chúng em xin chân thành cảm ơn! 19