DCT trong nén ảnh sử dụng phần mềm MATLAB

78 584 7
DCT trong nén ảnh sử dụng phần mềm MATLAB

Đ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

DCT trong nén ảnh sử dụng phần mềm MATLAB có đầy đủ code nén ảnh và giải nén ảnh, giải thích rõ ràng từng hàng code. Giao diện nén ảnh DCT có đầy đủ kích thước gốc, kích thước sau khi giải nén, tỷ lệ nén, thời gian nén, MSE, PSNR, hệ số DCT muốn chọn.

BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP HỒ CHÍ MINH KHOA CƠNG NGHỆ ĐIỆN TỬ  KHĨA LUẬN TỐT NGHIỆP Đề tài : DCT TRONG NÉN ẢNH SỬ DỤNG PHẦN MỀM MATLAB GVHD : SVTH : Chuyên ngành : Điện Tử Viễn Thơng Hệ đào tạo : Chính Quy Khóa đào tạo : 2015 - 2019 TP Hồ Chí Minh, tháng 06 năm 2019 BỘ CƠNG THƯƠNG TRƯỜNG ĐH CƠNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc Báo Cáo Tốt Nghiệp KHOA CÔNG NGHỆ ĐIỆN TỬ NHIỆM VỤ BÁO CÁO TỐT NGHIỆP Họ tên sinh viên : Chuyên ngành: Điện Tử Viễn Thơng Hệ đào tạo: Chính Quy Niên Khóa: 2015 - 2019 Tên đề tài: DCT TRONG NÉN ẢNH SỬ DỤNG PHẦN MỀM MATLAB I Giáo viên hướng dẫn : II Ngày giao nhiệm vụ : III Ngày hoàn thành nhiệm vụ : TP.HCM, Ngày … tháng … năm 2018 GIÁO VIÊN HƯỚNG DẪN BM.ĐIỆN TỬ VIỄN THÔNG LỜI CẢM ƠN  Đề hồn thành khóa luận với đề tài “DCT nén ảnh sử dụng phần mềm MATLAB”, bên cạnh nỗ lực thân vận dụng kiến thức tiếp thu được, tìm tòi học hỏi thu thập tài liệu có liên quan đến đề tài, chúng em nhận giúp đỡ tận tình thầy cơ, bạn bè Báo Cáo Tốt Nghiệp Chúng em xin gửi lời cảm ơn đến thầy cô Khoa Công nghệ Điện tử Bộ môn Điện tử Viễn thông giúp đỡ cung cấp kiến thức sâu rộng để chúng em có tảng kiến thức để nghiên cứu đề tài Đặc biệt chúng em xin chân thành cảm ơn thầy Th.s Mạc Đức Dũng, người tận tình hướng dẫn nghiên cứu đề tài Các bạn sinh viên tập thể lớp có giúp đỡ thiết thực, cung cấp tài liệu liên quan động viên trình thực đề tài Và xin chân thành gửi lời cảm ơn sâu sắc đến gia đình người thân hỗ trợ tất điều kiện để đề tài hoàn thành tốt đẹp Trong trình thực đề tài trình làm báo cáo thực tập chúng em khơng thể khơng tránh khỏi thiếu sót Kính mong thầy thơng cảm chân thành góp ý kiến giúp chúng em có kiến thức vững vàng để làm hành trang thật tốt sau trường Chúng em xin chân thành cảm ơn ! TP Hồ Chí Minh, Ngày… tháng …năm … MỤC LỤC Báo Cáo Tốt Nghiệp DANH MỤC HÌNH ẢNH DANH MỤC BẢNG VÀ BIỂU MẪU Báo Cáo Tốt Nghiệp MỘT SỐ KÝ HIỆU VÀ CHỮ VIẾT TẮT DCT JPEG Matlab GUI RLE DWT PKZIP LHA ARJ RAM RGB YUV NTSC PNG MSE PSNR GIF Discrete Cosine Transform Joint Photographic Experts Group Matrix Laboratory Graphic User Interface Run-length encoding Discrete Wavelet Transform Phil Katz ZIP A compression program developed by Haruyasu Yoshizaki Archived by Robert Jung Random Access Memory Red Green Blue A color model: Y is the luminance (brightness) U and V are the chrominance (color) components National Television System Committee Portable Network Graphic Mean Squared Error Peak Signal-To-Noise Ratio Graphics Interchange Format Báo Cáo Tốt Nghiệp LỜI NÓI ĐẦU Thời đại công nghệ 4.0 mang đến thay đổi mặt kinh tế, kỹ thuật, … Nghành điện tử có bước phát triển vượt bậc Các sản phẩm công nghệ phát triển nhanh với tốc độ chóng mặt cơng nghệ truyền thông không ngoại lệ Nhu cầu chụp ảnh, quay video, để lưu lại khoảnh khắc đặc biệt điều thiết yếu sống Những hình, đoạn băng số hóa để lưu nhiều chia sẻ nhanh Qua thúc đẩy phát triển phần mềm liên quan đến vấn đề xử lí hình ảnh video Nén ảnh kỹ thuật mã hóa ảnh số nhằm giảm số lượng bit liệu cách loại bỏ thông tin dư thừa ảnh dư thừa thông tin, không gian, cấp xám hay thời gian Mục đích giảm chi phí việc lưu trữ ảnh chi phí thời gian để truyền ảnh xa truyền thông đảm bảo chất lượng u cầu Theo đó, Matlab ngơn ngữ lập trình bậc cao sử dụng để giải tốn kỹ thuật Matlab tích hợp sẵn toolbox thư viện để thực tính tốn, thể kết quả, cho phép lập trình, giao diện làm việc dễ dàng cho người sử dụng.Với phần mềm đồ họa cực mạnh cho phép mô mơ hình thực tế lập trình ứng dụng Xuất phát từ nhu cầu thực tế xu hướng nghiên cứu giới, thực đề tài “DCT nén ảnh sử dụng phần mềm Matlab” Báo Cáo Tốt Nghiệp TÓM TẮT Nén ảnh đề tài nghiên cứu thông dụng nay, dùng nhiều ứng dụng trở thành phần thiếu sống đại, từ ứng dụng điện thoại, đến chương trình chuyên mơn Việc chuyển định dạng thơng tin sử dụng bit cách thể liệu gốc, xác định thông tin không cần thiết loại bỏ chúng, cần thiết giảm nguồn tài nguyên dung lượng lưu trữ hay băng thông đường truyền Vậy nên đề tài chia làm chương: Chương 1: Tổng quan đề tài Nêu lên mục tiêu, nhiệm vụ nghiên cứu phương pháp nghiên cứu đề tài Chương 2: Cơ sở lý thuyết Sơ lược xử lý ảnh, nén ảnh jpeg, lý thuyết mã DCT nén ảnh, ứng dụng Matlab hướng dẫn sử dụng Guide Matlab Chương 3: Thiết kế lập trình Trình bày giao diện code nén ảnh DCT giải thích code Chương 4: Kết thực nghiệm Trình bày kết đạt được, hình ảnh gốc hình ảnh nén dùng phương pháp DCT bảng so sánh hệ số DCT Chương 5: Kết luận Kết luận hướng phát triển đề tài Báo Cáo Tốt Nghiệp CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 1.1 Lý chọn đề tài Nén ảnh đề tài nghiên cứu thông dụng nay, dùng nhiều ứng dụng trở thành phần thiếu sống đại, từ ứng dụng điện thoại, đến chương trình chuyên mơn Việc chuyển định dạng thơng tin sử dụng bit cách thể liệu gốc, xác định thông tin không cần thiết loại bỏ chúng, cần thiết giảm nguồn tài nguyên dung lượng lưu trữ hay băng thông đường truyền Trong thời đại, người có nhu cầu lưu trữ hình ảnh nhiều hơn, nên phương pháp nén ảnh DCT giúp người dùng lưu trữ nhiều hình ảnh mà khơng cần phải tốn q nhiều dung lượng nhớ thiết bị, lưu lại chất lượng hình ảnh tốt 1.2 Mục tiêu nhiệm vụ nghiên cứu 1.2.1 Nhiệm vụ - Đưa sở lý thuyết Tiến hành nghiên cứu thuật toán loại mã DCT Đưa nguyên tắc mã hóa tốn mã hóa Thiết kế giao diện chạy thử Đánh giá ưu điểm nhược điểm phương pháp Nghiên cứu phát triển thuật toán tối ưu Nắm kiến thức phương pháp nén ảnh từ thiết kế lập trình giao diện nén ảnh mã DCT giao diện GUI Matlab 1.2.2 Mục tiêu - Vận dụng kiến thức học để lập trình code nén ảnh mã DCT Thiết kế giao diện nén ảnh yêu cầu đề tài Thiết kế giao diện Matlab đẹp dễ sử dụng 1.3 Phương pháp nghiên cứu Các phương pháp nghiên cứu chính: - Phương pháp phân tích tổng hợp lý thuyết Phương pháp phân tích loại hệ thống hóa lý thuyết Phương pháp thực nghiệm: từ sở lý thuyết, xây dựng chương trình kiểm nghiệm cách thực tế Báo Cáo Tốt Nghiệp 1.4 Kế hoạch nghiên cứu ST T Nội dung cơng việc Tìm hiểu thu thập tài liệu theo phần phần thiết kế lý thuyết liên quan đến đề tài: Lý thuyết ảnh JPEG, nén liệu, lý thuyết mã hóa DCT nén ảnh Tìm hiểu tài liệu giao diện GUIDE Matlab Xử lý tài liệu thu thập Thực thiết kế phần code giao diện giới thiệu, giao diện nén ảnh DCT Nhập code nén ảnh DCT phân tích hàm Cân chỉnh giao diện code Viết báo cáo Làm PowerPoint Thực kiểm tra hoàn chỉnh giao diện, code, báo cáo PowerPoint Thời gian thực Mục đích Tham khảo tài liệu để hiểu rõ đề tài đưa phương hướng nghiên cứu hợp lý Có nguồn tài liệu tham khảo đển viết báo cáo Hiểu thành thạo Matlab Phân tích, tổng hợp phân loại khái quát tài liệu thu thập Thực nghiên cứu sơ đồ giải thuật mã DCT nghiên cứu tạo giao diện Guide sử dụng phần mềm Matlab Hoàn thành giao diện giới thiệu giao diện nén Thực nén ảnh hiểu hàm sử dụng code Tạo giao diện đẹp, gọn gàng dễ sử dụng Bảng 1.1 Kế hoạch nghiên cứu Ghi Các nguồn thu thập: -Sách -Các diễn đàn điện tử, code,… -Website Báo Cáo Tốt Nghiệp CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Sơ lược nén ảnh 2.1.1 Tổng quan nén ảnh jpeg JPEG ( Joint Photographic Experts Group) phương pháp nén ảnh hiệu quả, cho phép làm việc với ảnh có nhiều màu kích cỡ lớn, tỷ lệ nén ảnh đạt mức so sánh tới vài chục lần Phương pháp nén ảnh theo chuẩn JPEG cho hệ số nén tới 80:1 hay lớn hơn, phải chịu thông tin (ảnh sau giải nén khác với ảnh ban đầu), lượng thông tin mát tăng dần theo hệ số nén JPEG tiến hành sửa đổi thông tin ảnh nén cho ảnh gần giống ảnh cũ Có nhiều cách để nén ảnh, dựa vào yếu tố bảo tồn thơng tin chia thành phương pháp nén ảnh tĩnh: 10 Báo Cáo Tốt Nghiệp [outfilename,pathname]=uiputfile({'*.jpg'},'Chon luu file JPG'); imwrite(N,[pathname,outfilename]); info = imfinfo(fullfile(pathname,outfilename)); AN = (info.FileSize)/1024; set(handles.KTGN,'String',AN); TyLeNen = AG/AN; set(handles.TL,'String',TyLeNen); I3 = imread(outfilename); n = size(I1); C=n(1); D=n(2); MSE = sum(sum((I1-I3).^2))/(C*D); set(handles.tMSE,'String',MSE); %Mean squared error - Sai so tồn phuong trung bình set(handles.tMSE, 'Min', 0, 'Max', 2); PSNR = 10*log10(255*255/MSE); %peak signal-to-noise ratio - Ti so tín hieu cuc dai nhieu set(handles.tPSNR,'String',PSNR); set(handles.tPSNR, 'Min', 0, 'Max', 2); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% case I2 = imread(nenfilename); axes(handles.AnhNen2); imshow(I2); N(:,:,:)= cat(3,R,G,B); %Noi kenh RGB lai voi axes(handles.AnhGiaiNen); imshow(N); [outfilename,pathname]=uiputfile({'*.jpg'},'Chon luu file JPG'); imwrite(N,[pathname,outfilename]); 64 Báo Cáo Tốt Nghiệp info = imfinfo(fullfile(pathname,outfilename)); AN = (info.FileSize)/1024; set(handles.KTGN,'String',AN); TyLeNen = AG/AN; set(handles.TL,'String',TyLeNen); I3 = imread(outfilename); n = size(I1); C=n(1); D=n(2); MSE = sum(sum((I1-I3).^2))/(C*D); set(handles.tMSE,'String',MSE); %Mean squared error - Sai so tồn phuong trung bình set(handles.tMSE, 'Min', 0, 'Max', 2); PSNR = 10*log10(255*255/MSE); %peak signal-to-noise ratio - Ti so tín hieu cuc dai nhieu set(handles.tPSNR,'String',PSNR); set(handles.tPSNR, 'Min', 0, 'Max', 2); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % case I2 = imread(nenfilename); axes(handles.AnhNen2); imshow(I2); N(:,:,:)= cat(3,R,G,B); %Noi kenh RGB lai voi axes(handles.AnhGiaiNen); imshow(N); [outfilename,pathname]=uiputfile({'*.jpg'},'Chon luu file JPG'); imwrite(N,[pathname,outfilename]); info = imfinfo(fullfile(pathname,outfilename)); AN = (info.FileSize)/1024; 65 Báo Cáo Tốt Nghiệp set(handles.KTGN,'String',AN); TyLeNen = AG/AN; set(handles.TL,'String',TyLeNen); I3 = imread(outfilename); n = size(I1); C=n(1); D=n(2); MSE = sum(sum((I1-I3).^2))/(C*D); set(handles.tMSE,'String',MSE); %Mean squared error - Sai so tồn phuong trung bình set(handles.tMSE, 'Min', 0, 'Max', 2); PSNR = 10*log10(255*255/MSE); %peak signal-to-noise ratio - Ti so tín hieu cuc dai nhieu set(handles.tPSNR,'String',PSNR); set(handles.tPSNR, 'Min', 0, 'Max', 2); end - Giải thích:  Câu lệnh 1: set(handles.GNA,'visible','on'); set(handles.NA,'visible','off'); • Cơng dụng: Đặt panel Giải Nén Ảnh chế độ mở, khung panel Nén Ảnh chế độ tắt • Trong đó: o set hàm cài đặt giá trị thuộc tính o GNA, NA tag panel Giải Nén Ảnh, Nén Ảnh  Câu lệnh 2: global nenfilename; global outfilename; global I1; global N; global AN; global AG; global TyLeNen; global R; 66 Báo Cáo Tốt Nghiệp • •  • • global G; global B; global I2; global I3; global MSE; global PSNR; global HeSoDCT; Cơng dụng: Tạo biến tồn cục cho phép sử dụng biến cho hàm hàm chương trình Trong đó: o nenfilename outfilename biến ảnh nén vào ảnh xuất o I1 biến gán để đọc file ảnh đầu vào o N biến gán cho nối chuỗi R, G, B lại o AN, AG biến gán viết tắt ảnh nén ảnh gốc o TyLeNen biến gán dùng tính tỷ lệ nén ảnh o R, G, B biến gán ba hệ màu Red, Green, Blue o I2 biến gán để đọc file ảnh nén o I3 biến gán để đọc file ảnh o MSE biến gán cho tính sai số tồn phương trung bình o PSNR biến gán cho tính tỉ số tín hiệu cực đại nhiễu o HeSoDCT biến gán cho hệ số Câu lệnh 3: HeSoDCT=get(handles.HeSoDCT,'value'); switch HeSoDCT case case case case case case Công dụng: Dùng để đặt hệ số DCT menu pop-up, gán với giá trị tương ứng Value công cụ Inspector Trong đó: o HeSoDCT biến gán o get hàm lấy giá trị thuộc tính Pop-up menu HeSoDCT theo trường Value o switch hàm dùng để lựa chọn theo trường hợp case bên o case 1,2,3,4,5,6 giá trị trường Value tương ứng với vị trí trường String thah pop-up menu HeSoDCT 67 Báo Cáo Tốt Nghiệp  Câu lệnh 4: I2 = imread(nenfilename); axes(handles.AnhNen2); imshow(I2); • Cơng dụng: Dùng để đọc file ảnh nén hiển thị lên axes có tag AnhNen2 • Trong đó: o imread hàm đọc file ảnh o imshow hàm hiển thị file ảnh lên khung axes  Câu lệnh 5: •   • •  N(:,:,:)= cat(3,R,G,B); %Noi kenh RGB lai voi axes(handles.AnhGiaiNen); imshow(N); Công dụng: Dùng để nối ba ma trận RGB thành hiển thị axes AnhGiaiNen Câu lệnh 6: [outfilename,pathname]=uiputfile({'*.jpg'},'Chon luu file JPG'); imwrite(N,[pathname,outfilename]); • Cơng dụng: Lưu file ảnh giải nén vào máy tính • Trong đó: o uiputfile dùng để hiển thị cửa sổ lưu file có hiển thị dòng thơng tin 'Chon luu file JPG' o imwrite dùng để lưu file ảnh giải nén Câu lệnh 7: info = imfinfo(fullfile(pathname,outfilename)); AN = (info.FileSize)/1024; set(handles.KTN,'String',AN); Công dụng: Dùng để đọc thơng tin có ảnh Trong đó: o imfinfo hàm dùng để gọi thông tin ảnh Trong có thuộc tính như: tên, ngày ảnh sửa đổi lần cuối, kích thước ảnh, định dạng ảnh, độ rộng pixel, chiều cao pixel, số bit pixel, loại hình ảnh o info.FileSize gọi thơng tin kích thước ảnh theo đơn vị byte Vì muốn kích thước hiển thị KiloByte nên ta chia cho 1024 o set hàm cài đặt giá trị thuộc tính hiển thị kích thước ảnh lên tag KTN Câu lệnh 8: TyLeNen = AG/AN; [10] set(handles.TL,'String',TyLeNen); 68 Báo Cáo Tốt Nghiệp • Cơng dụng: Dùng để hiển thị thông số tỷ lệ nén ảnh • Trong đó: o TyLeNen biến gán cho đối tượng o AG/AN lấy kích thước ảnh gốc chia cho kích thước ảnh nén o set hàm cài đặt thuộc tính để hiển thị TyLeNen lên tag TL  Câu lệnh 9: I3 = imread(outfilename); • Cơng dụng: Gán biến I3 để đọc giá trị ảnh xuất • Trong đó: o imread hàm dùng đọc file ảnh  Câu lệnh 10: n = size(I1); C=n(1); D=n(2); • Cơng dụng: Dùng để đọc kích thước file ảnh đầu vào • Trong đó: o C chiều rộng kích thước pixel o D chiều cao kích thước pixel  Câu lệnh 11: MSE = sum(sum((I1-I3).^2))/(C*D); set(handles.tMSE,'String',MSE); set(handles.tMSE, 'Min', 0, 'Max', 2); • Cơng dụng: cơng thức tính số sai số tồn phương trung bình • Trong đó: o [10] o sum hàm tổng o set hàm đặt giá trị tính MSE vào tag tMSE o ‘Min’, 0, ‘Max’, giá trị ảnh màu nên ba giá trị RGB nên ta phải viết thêm hàng để hiển thị EditText  Câu lệnh 12: PSNR = 10*log10(255*255/MSE); set(handles.tPSNR,'String',PSNR); set(handles.tPSNR, 'Min', 0, 'Max', 2); • Cơng dụng: cơng thức tính tỷ số tín hiệu cực đại nhiễu • Trong đó: o [10] o set hàm đặt giá trị tính PSNR vào tag tPSNR o ‘Min’, 0, ‘Max’, giá trị ảnh màu nên ba giá trị RGB nên ta phải viết thêm hàng để hiển thị EditText  Câu lệnh 13: end 69 Báo Cáo Tốt Nghiệp • Cơng dụng kết thúc chương trình -  Nút BUTTON “Xóa”: Thực thao tác gọi hàm callback Lần lượt viết hàm vào functions sau: function Xoa_Callback(hObject, eventdata, handles) set(handles.GNA,'visible','off'); set(handles.NA,'visible','on'); set(handles.KTG,'String',''); set(handles.KTGN,'String',''); set(handles.TGN,'String',''); set(handles.TL,'String',''); set(handles.tMSE,'String',''); set(handles.tPSNR,'String',''); cla(handles.AnhGoc,'reset'); cla(handles.AnhNen1,'reset'); cla(handles.AnhNen2,'reset'); cla(handles.AnhGiaiNen,'reset'); set(handles.AnhGoc,'visible','off'); set(handles.AnhNen1,'visible','off'); set(handles.AnhNen2,'visible','off'); set(handles.AnhGiaiNen,'visible','off'); clear all; - Giải thích:  Câu lệnh 1: set(handles.GNA,'visible','off'); set(handles.NA,'visible','on'); • Cơng dụng: Đặt panel Giải Nén Ảnh chế độ tắt, khung panel Nén Ảnh chế độ hiển thị • Trong đó: o set hàm cài đặt giá trị thuộc tính o GNA, NA tag panel Giải Nén Ảnh, Nén Ảnh  Câu lệnh 2: set(handles.KTG,'String',''); set(handles.KTGN,'String',''); set(handles.TGN,'String',''); set(handles.TL,'String',''); set(handles.tMSE,'String',''); 70 Báo Cáo Tốt Nghiệp set(handles.tPSNR,'String',''); • Công dụng: Đặt giá trị EditText tag giá trị rỗng • Trong đó: o set hàm cài đặt giá trị thuộc tính o KTG, KTN, TGN, TL, tMSE, tPSNR tag thuộc tính chọn o ‘’ nội dung hiển thị khơng có nên đặt giá trị rỗng  Câu lệnh 3: • •  • •  • - - cla(handles.AnhGoc,'reset'); cla(handles.AnhNen1,'reset'); cla(handles.AnhNen2,'reset'); cla(handles.AnhGiaiNen,'reset'); Cơng dụng: Xóa file ảnh có hiển thị khung đồ thị Ảnh Gốc Ảnh Nén Trong đó: o cla viết tắt clear axes hàm xóa đối tượng có đồ thị o AnhGoc, AnhNen1, AnhNen2, AnhGiaiNen tag hai khung đồ thị o ‘reset’ đặt giá trị lại ban đầu Câu lệnh 4: set(handles.AnhGoc,'visible','off'); set(handles.AnhNen1,'visible','off'); set(handles.AnhNen2,'visible','off'); set(handles.AnhGiaiNen,'visible','off'); Công dụng: Tắt chế độ hiển thị khung đồ thị Trong đó: o set hàm cài đặt giá trị thuộc tính o AnhGoc, AnhNen1, AnhNen2, AnhGiaiNen tag hai khung đồ thị o ‘visible’, ‘off’ lệnh tắt hiển thi khung đồ thị Câu lệnh 5: clear all; Cơng dụng: Xóa hết giá trị hiển thị  Nút BUTTON”Chuyển giao diện” Thực bước ta bắt đầu viết code cho giao diện giới thiệu Ta click chuột phải vào đối tượng “Chuyển Giao Diện” chọn “View Callbacks” sau chọn “ Callback” Matlab chuyển qua giao diện file m để viết code cho nút tượng “Chuyển Giao Diện” Lần lượt viết code vào phần function bên function ChuyenGiaoDien_Callback(hObject, eventdata, handles) close 71 Báo Cáo Tốt Nghiệp  •  • - -  • •  • • giaodien Giải thích: Câu lệnh 1: close Cơng dụng: Đóng giao diện nén ảnh DCT Câu lệnh 2: giaodien Công dụng: Chuyển giao diện giới thiệu  Nút BUTTON ”Thoát”: Thực bước ta bắt đầu viết code cho giao diện giới thiệu Ta click chuột phải vào đối tượng “Đóng Giao Diện” chọn “View Callbacks” sau chọn “ Callback” Matlab chuyển qua giao diện file m để viết code cho nút tượng “Thoát” Lần lượt viết code vào phần function bên function Thoat_Callback(hObject, eventdata, handles) choice = questdlg('Ban co muon dong chuong trinh?', %Bat dialog hoi co muon tat giao dien khong 'Close', 'Có', 'Khơng', 'Có'); switch choice case 'Có' % Luachon Co close case 'Khơng' % Lua chon Khong end Giải thích: Câu lệnh 1: choice = questdlg('Ban co muon dong chuong trinh?', 'Close', 'Có', 'Khơng', 'Có'); Cơng dụng: Hiển thị khung cửa sổ lựa chọn, hiển thị dòng 'Ban co muon dong chuong trinh?' Trong đó: o 'Close'Đây tên cửa sổ muốn đặt tên Hiển thị phía bên góc trái cửa sổ o 'Có', 'Khơng', 'Có' Hai chữ 'Có', 'Khơng' hai nút lên khung cửa sổ chữ 'Có' phần hiển thị bật khung cửa sổ lên Câu lệnh 2: switch choice case 'Có' close case 'Không' end Công dụng: Gán cho biến choice câu lệnh bên Trong đó: 72 Báo Cáo Tốt Nghiệp o Khi ta nhấn nút 'Có' phần code chạy tới lệnh close giao diện giới thiệu đóng nhấn nút 'Khơng'thì code chạy tới lệnh end đóng lại khung cửa sổ tắt giao diện CHƯƠNG 4: KẾT QUẢ THỰC NGHIỆM Với hích thước ảnh gốc: 8741.68KB 73 Báo Cáo Tốt Nghiệp Hình 4.1 Hình gốc Hình 4.2 Giao diện nén ảnh DCT 74 Báo Cáo Tốt Nghiệp Hình 4.3 Giao diện giải nén ảnh DCT 75 Báo Cáo Tốt Nghiệp Sau thử nghiệm hệ số DCT, ta có bảng so sánh sau: Hệ số DCT 10 Kích thước nén Tỷ lệ nén 509.045 17.1727 21.4747 24.6154 24.4479 34.8455 34.2527 34.2824 822.376 10.6298 13.2468 15.0209 14.8765 36.9437 36.3978 36.4398 991.332 8.81812 10.5933 11.0407 11.6929 37.9145 37.7349 37.4856 1123.15 7.78318 9.11871 9.18571 10.097 38.5655 38.5337 38.1229 1243.99 816.6836 7.84672 7.05194 8.47707 39.2179 39.6817 38.8823 1301.23 6.71802 7.27511 5.9566 7.75109 39.5464 40.4148 39.2712 MSE PSNR Bảng 4.1 Bảng so sánh thông số hệ số DCT CHƯƠNG 5: PHẦN KẾT LUẬN 5.1 Nhận xét • Hiện nay, trình phát triển cơng nghệ số, vấn đề lưu trữ thơng tin quan trọng, có hình ảnh Chúng ta dùng thuật tốn DCT để nén ảnh dùng phần mềm MATLAB Vì phương pháp nén ảnh nén có tổn hao, nên ảnh nén có hiệu việc dung lượng nhỏ ảnh gốc chất lượng ảnh bị thấp 76 Báo Cáo Tốt Nghiệp • Sau thử nghiệm hệ số DCT giữ lại 10 hệ số DCT mặt nạ đạt hiệu tối ưu nhất, vừa giảm dung lượng, độ phân giải ổn, mắt thường khơng phân biệt • Qua q trình thực đề tài, chúng em nhận thấy biến đổi DCT không làm thơng tin ảnh DCT biến đổi tuyến tính chuyên giá trị điểm ảnh từ miền không gian thành hệ số miền tần số Nén ảnh tổn hao dựa mã hóa DCT với tính tốn đơn giản, chất lượng đầu tốt dễ dàng thực • Với hệ số DCT mà kết nén độ phân giải ảnh khác Ứng với tỷ lệ nén cao độ hiển thị hình ảnh thấp ngược lại • Việc phân chia khối làm giảm thời gian tính tốn hệ số, biến đổi DCT với khối nhỏ làm tăng độ xác tính tốn làm giảm thiểu sai số làm tròn số sinh 5.2 Hạn chế đề tài • Thời gian nén chậm ảnh dung lượng lớn • Ảnh với dung lượng thấp bị mờ 5.3 Hướng phát triển đề tài • Thời gian nén nhanh • Nâng cao chất lượng ảnh cách sử dụng phương pháp làm trơn ảnh • Làm tảng để phát triển đề tài khác “Thủy vân ảnh số dùng thuật toán biến đổi DCT”, “Phát ảnh bị chỉnh sửa dựa thuật toán DCT”, … TÀI LIỆU THAM KHẢO [1] 136926683-Cong-Nghe-Nen-Anh-JPEG.docx [2] 52683135-Phương-phap-nen-ảnh-theo-chuẩn-JPEG.pdf 77 Báo Cáo Tốt Nghiệp [3] TS Phạm Việt Hà: Xử lý tín hiệu mã hóa, Viên Khoa học Kỹ thuật Bưu điện [4] Phan Thanh Tao: Giáo trình MATLAB, Trường Đại học Bách khoa Đà Nẵng [5] Nguyễn Phùng Quang: Giáo trình Matlab & Simulink, Kỹ Thuật – Cơng Nghệ [6] Nguyễn Quốc Trung: Xử lý tín hiệu lọc số, Khoa học Kỹ thuật, 2004 [7] Võ Đức Khánh, Hồng Văn Kiếm, Giáo trình xử lý ảnh số, Đại học Quốc gia Thành phố Hồ Chí Minh [8] Nguyễn Kim Sách Xử lý ảnh Video số, Khoa học Kỹ thuật, 1997 [9] TS Phạm Hồng Liên, Đặng Ngọc Khoa, Trần Thanh Phương: Matlab ứng dụng viễn thông [10] Surbhi Singh, Vipin kumar Gupta: JPEG Image Compression and Decompression by Huffman Coding [11] Diễn đàn Matlab: https://www.mathworks.com/ [12] Matlab thầy Tạ Hải: http://www.matlabthayhai.info [13] Diễn đàn: https://vutienblog.com/xu-ly-anh-matlab-tong-quan-ve-anh-so/ 78

Ngày đăng: 15/07/2019, 22:26

Từ khóa liên quan

Mục lục

  • NHIỆM VỤ BÁO CÁO TỐT NGHIỆP

  • LỜI CẢM ƠN

  • DANH MỤC HÌNH ẢNH

  • DANH MỤC BẢNG VÀ BIỂU MẪU

  • MỘT SỐ KÝ HIỆU VÀ CHỮ VIẾT TẮT

  • LỜI NÓI ĐẦU

  • TÓM TẮT

  • CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI

    • 1.1 Lý do chọn đề tài

    • 1.2 Mục tiêu nhiệm vụ nghiên cứu

      • 1.2.1 Nhiệm vụ

      • 1.2.2 Mục tiêu

      • 1.3 Phương pháp nghiên cứu

      • 1.4 Kế hoạch nghiên cứu

      • CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

        • 2.1 Sơ lược về nén ảnh

          • 2.1.1 Tổng quan về nén ảnh jpeg

            • 2.1.1.1 Mục đích của việc nén tín hiệu

            • 2.1.1.2 Bản chất của việc nén tín hiệu

            • 2.1.2 Các kỹ thuật nén ảnh

              • 2.1.2.1 Các nguyên tắc của nén ảnh

              • 2.1.2.2 Tốc độ và tỉ lệ nén

              • 2.1.2.3 Ưu nhược điểm của phương pháp nén ảnh JPEG

              • 2.1.2.4 Độ dư thừa (redundancy)

              • 2.2 Mã DCT

                • 2.2.1 Giới thiệu thuật toán DCT

                • 2.2.2 Giải thuật DCT

Tài liệu cùng người dùng

Tài liệu liên quan