1. Trang chủ
  2. » Tất cả

Luận văn thạc sĩ: Một số kĩ thuật nén ảnh và ứng dụng

67 2 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

Nội dung

Luận văn thạc sĩ: Một số kĩ thuật nén ảnh và ứng dụngLuận văn thạc sĩ: Một số kĩ thuật nén ảnh và ứng dụngLuận văn thạc sĩ: Một số kĩ thuật nén ảnh và ứng dụngLuận văn thạc sĩ: Một số kĩ thuật nén ảnh và ứng dụngLuận văn thạc sĩ: Một số kĩ thuật nén ảnh và ứng dụngLuận văn thạc sĩ: Một số kĩ thuật nén ảnh và ứng dụngLuận văn thạc sĩ: Một số kĩ thuật nén ảnh và ứng dụngLuận văn thạc sĩ: Một số kĩ thuật nén ảnh và ứng dụngLuận văn thạc sĩ: Một số kĩ thuật nén ảnh và ứng dụngLuận văn thạc sĩ: Một số kĩ thuật nén ảnh và ứng dụngLuận văn thạc sĩ: Một số kĩ thuật nén ảnh và ứng dụngLuận văn thạc sĩ: Một số kĩ thuật nén ảnh và ứng dụngLuận văn thạc sĩ: Một số kĩ thuật nén ảnh và ứng dụngLuận văn thạc sĩ: Một số kĩ thuật nén ảnh và ứng dụngLuận văn thạc sĩ: Một số kĩ thuật nén ảnh và ứng dụngLuận văn thạc sĩ: Một số kĩ thuật nén ảnh và ứng dụngLuận văn thạc sĩ: Một số kĩ thuật nén ảnh và ứng dụngLuận văn thạc sĩ: Một số kĩ thuật nén ảnh và ứng dụngLuận văn thạc sĩ: Một số kĩ thuật nén ảnh và ứng dụngLuận văn thạc sĩ: Một số kĩ thuật nén ảnh và ứng dụngLuận văn thạc sĩ: Một số kĩ thuật nén ảnh và ứng dụng

ĐẠI HỌC THÁI NGUYÊN TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYÊN THÔNG NGUYỄN HÀ AN MỘT SỐ KĨ THUẬT NÉN ẢNH VÀ ỨNG DỤNG LUẬN VĂN THẠC SĨ: CƠNG NGHỆ THƠNG TIN Thái Ngun, năm 2014 Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ ii LỜI CẢM ƠN Trên thực tế khơng có thành cơng mà khơng gắn liền với hỗ trợ, giúp đỡ dù hay nhiều, dù trực tiếp hay gián tiếp người khác Trong suốt thời gian học tập trường Đại học Công nghệ thông tin Truyền thông – Đại học Thái Nguyên nhận nhiều giúp đỡ thầy cô, bố mẹ, bạn bè người thân Với lòng biết ơn sâu sắc xin chân thành cảm ơn đến quý thầy cô trường Đại Học Công nghệ thông tin Truyền thông – Đại học Thái Nguyên, đặc biệt thày PGS.TS Phạm Việt Bình, với q thầy Viện Công nghệ thông tin, đặc biệt thày PGS.TS Đỗ Năng Toàn, PGS.TS Đặng Văn Đức, PGS.TSKH Nguyễn Xuân Huy, truyền đạt vốn kiến thức quý báu cho Và đặc biệt thầy cô tạo điều kiện cho làm luận văn tốt nghiệp với đề tài: “Một số kỹ thuật nén ảnh ứng dụng” Xin chân thành cám ơn thầy cô công tác Phịng Đào tạo, trường Đại học cơng nghệ thơng tin truyền thông, Đại học Thái Nguyên, đặc biệt thầy Lê Hùng Linh cô Vân tạo điều kiện để học viên Hải Phịng hồn thành khóa đào tạo sau đại học công nghệ thông tin Tôi xin chân thành cảm ơn thầy Đỗ Trung Tuấn tận tình giúp đỡ hướng dẫn tơi qua buổi học lớp buổi nói chuyện thảo luận nghiên cứu đề tài Nếu khơng có hướng dẫn, bảo tận tình thầy thiết nghĩ báo cáo khó hồn thành Với đề tài mẻ vốn kiến thức hạn chế nên tiểu luận có nhiều sai sót q trình tiếp cận đề tài Tơi mong góp ý q thầy cô bạn để tiểu luận hồn thiện Một lần tơi xin chân thành cảm ơn thầy cô bạn Học viên gửi lời biết ơn đến gia đình người thân, chia sẻ khó khăn việc hồn thành khóa học viết luận văn Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ iii MỤC LỤC LỜI CẢM ƠN ii DANH MỤC TỪ VIẾT TẮT VÀ NGHĨA CỦA TỪ VIẾT TẮT v DANH MỤC CÁC BẢNG, HÌNH VẼ vi PHẦN MỞ ĐẦU CHƢƠNG KHÁI QUÁT VỀ XỬ LÝ ẢNH VÀ BÀI TOÁN NÉN ẢNH 1.1 Khái quát xử lý ảnh 1.1.1 Giới thiệu 1.1.2 Một số vấn đề xử lý ảnh 1.1.2.1 Một số khái niệm 1.1.2.2 Nắn chỉnh biến dạng 1.1.2.3 Khử nhiễu 1.1.2.6 Nhận dạng 1.1.2.7 Nén ảnh 1.2 Bài toán nén ảnh 1.2.1 Giới thiệu 1.2.2 Các cách tiếp cận toán nén ảnh 10 1.3 Kết luận chương 10 CHƢƠNG 11 MỘT SỐ KĨ THUẬT NÉN ẢNH 11 2.1 Nén bảo toàn 11 (Run-Length Encoding) 12 2.1.1.1 Ý tưởng thuật toán 12 2.1.1.2 Thuật toán 14 Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ iv 14 2.1.3 Đánh giá thuật toán 20 2.2 Nén khơng bảo tồn 21 2.2.1 Nén JPEG 22 2.2.1.1 Ý tưởng thuật toán 22 2.2.1.2 Thuật toán nén ảnh JPEG 22 2.2.2 Kỹ thuật nén AIC (Advanced Image Coding) 28 2.2.2.1 Giới thiệu 29 2.2.2.2 Nén chất lượng ảnh AIC so sánh với JPEG JPEG-2000 30 2.2.2.3 Thuật toán AIC 30 2.2.2.4 Các kết - AIC 42 1.3 Kết luận chương 42 CHƢƠNG 43 CHƢƠNG TRÌNH ỨNG DỤNG TRUYỀN ẢNH QUA MẠNG 43 3.1 Bài toán truyền ảnh qua mạng 43 3.2 Lựa chọn chương trình nén ảnh JPEG 43 3.3 Thử nghiệm nén ảnh JPEG 44 3.3.1 Sơ đồ thực toán ứng dụng 44 3.3.2 Các tham số thử nghiệm 45 3.3.3 Một số kết thử nghiệm 46 3.3.4 Đánh giá chương trình thử nghiệm 51 3.4 Kết luận chương 51 KẾT LUẬN 52 52 Một số hạn chế 52 53 Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ v TÀI LIỆU THAM KHẢO 54 PHỤ LỤC 55 DANH MỤC TỪ VIẾT TẮT VÀ NGHĨA CỦA TỪ VIẾT TẮT 3D Ba chiều DIB Device Independent Bitmap DTC Disrete Cosine Transformation FDCT Forward Disrete Cosine Transformation IDCT Inverse Disrete Cosine Transformation MPEG JPEG Joint Photographic Expert Group ES Bar Vạch camera Máy chụp ảnh, dùng máy quay video VHS FORTRAN Ngơn ngữ lập trình FORTRAN Fourier Tên nhà tốn học, đề xuất phép biến đổi tín hiệu AIC Advanced Image Coding IPTV Truyền hình số IP IT Công nghệ thông tin PSNR Peak Signal to Noise Ratio pixel Điểm ảnh RGB Ba màu đỏ, lục, xanh lam toolbox Hộp công cụ PEL Picture Element AVC Advanced Video Coding CABAC Context adaptive binary arithmetic coding ITU-T Liên hiệp viễn thông quốc tế ISO/IEC Tổ chức tiêu chuẩn hóa quốc tế Ủy ban kỹ thuật điện tử quốc tế PSNR tỉ số tín hiệu đỉnh nhiễu LZW Jacob Abraham Ziv Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ vi DANH MỤC CÁC BẢNG, HÌNH VẼ Hình 1 Quá trình xử lý ảnh Hình Các bước hệ thống xử lý ảnh Hình Ảnh thu nhận ảnh mong muốn Hình Quá trình hiển thị chỉnh sửa, lưu trữ ảnh thông qua DIB Hình 1.5 Sự chuyển đổi mơ hình biểu diễn ảnh Bảng 2.1 Cấu trúc từ điển phần tử mã 15 Bảng 2.2 Ví dụ chế nén LZW 16 Hình 2.3 Sơ đồ thuật toán nén LZW 18 Hình 2.5: Quá trình nén ảnh theo chuẩn JPEG 22 Hình 2.6 Quá trình giải nén ảnh theo chuẩn JPEG 23 Hình 2.7: Hình minh họa khối Zig-Zag 28 Hình 2.8 So sánh ảnh gốc ảnh nén 30 Hình 2.9 Sơ đồ khối nén AIC giải nén AIC 31 Hình 2.10 Ảnh chuyển đổi sang kênh RGB 31 Hình 2.11 Ảnh chuyển đổi sang kênh YCbCr 32 Hình 2.12 Hình ảnh chia thành khối 33 Hình 2.13 Khối 8x8 với 25 điểm ảnh 34 Hình 2.14 Các chế độ dự đoán khối 36 Hình 2.15 Q trình dự đốn 37 Hình 2.16 Ảnh độ chói dư thừa 38 Hình 2.17 Hình so sánh kỹ thuật nén ảnh khác 42 Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ vii Hình 3.1 Sơ đồ nén ảnh JPEG 44 Hình 3.2 Sơ đồ thực toán ứng dụng 45 Hình 3.3 Giao diện chương trình ứng dụng 46 Hình 3.4 Giao diện chương trình chạy thử 47 Hình 3.5 Cửa sổ thơng báo hồn tất quy trình nén ảnh 47 Hình 3.6 Kết sau thử nghiệm với ảnh *.gif 48 Hình 3.7 Thử nghiệm với ảnh JPEG 50 Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ PHẦN MỞ ĐẦU Cuộc cách mạng thông tin kỹ thuật số đem lại thay đổi sâu sắc xã hội sống Bên cạnh thuận lợi mà thông tin kỹ thuật số mang lại nảy sinh thách thức cho trình đổi Sự đời phần mềm có tính mạnh, thiết bị máy ảnh kỹ thuật số, máy quét chất lượng cao, máy in, máy ghi âm kỹ thuật số…đã giúp người sáng tạo, xử lý thưởng thức liệu đa phương tiện (multimedia data) Mạng Internet toàn cầu biến thành xã hội ảo, nơi diễn trình trao đổi thơng tin lĩnh vực trị, qn sự, quốc phòng, kinh tế, thương mại vv Trao đổi thông tin qua kênh truyền thông công khai đã, sử dụng phổ biến kỷ ngun cơng nghệ số đại Và môi trường mở tiện nghi xuất khó khăn việc truyền tải lượng lớn file ảnh, file text, file liệu đa phương tiện… lúc Do có nhiều phần mềm nén giải nén liệu đời Hiện nay, phổ biến sử dụng nhiều phần mềm nén giải nén „WinRAR ZIP archive‟ Phần mềm bổ trợ hữu ích tiện lợi cho người sử dụng Dù dung lượng file có lớn đến đâu cần nhấp chuột trở nên nhỏ gọn dễ dàng gửi cách nhanh chóng Phần mềm dễ cài đặt dễ sử dụng Bên cạch phần mềm Matlab phổ biến tiện ích tốn số học, logic … ngồi phần mềm Matlab ứng dụng rộng dãi xử lý ảnh số (Indexed Images), ảnh cường độ (Intensity Images), ảnh nhị phân (Binary Images), ảnh RGB (RGB Images)… Nén ảnh phận chiếm tỉ lệ lớn chương trình ứng dụng, phần mềm nén liệu sử dụng nhiều liệu đa phương tiện lượng thơng tin trao đổi hình ảnh video lớn nén ảnh đóng vai trị quan trọng hầu hết ứng dụng thông tin mạng internet trang web quản cáo Chính mà vấn đề nhận quan tâm lớn cá nhân, tổ chức, trường đại học, viện nghiên cứu giới vv Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ Tơi tin lĩnh vực nghiên cứu có nhiều hứa hẹn tương lai gần dần trở thành hướng lĩnh vực nén ảnh ngôn ngữ lập trình C Sharp 2010 Trong luận văn sâu vào nghiên cứu kĩ thuật nén ảnh sử dụng ngơn ngữ lập trình C Sharp 2010 để giải toán ứng dụng nén ảnh Cấu trúc luận văn Luận văn gồm có chương: Chương 1: Khái quát xử lý ảnh toán nén ảnh Chương 2: Một số kĩ thuật nén ảnh Chương 3: Chương trình ứng dụng truyền ảnh qua mạng Cuối khóa luận phần kết luận danh sách tài liệu tham khảo, phụ lục chương trình Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ CHƢƠNG KHÁI QUÁT VỀ XỬ LÝ ẢNH VÀ BÀI TOÁN NÉN ẢNH 1.1 Khái quát xử lý ảnh 1.1.1 Giới thiệu Con người thu nhận thông tin qua giác quan, thị giác đóng vai trò quan trọng Những năm trở lại với phát triển phần cứng máy tính, xử lý ảnh đồ họa phát triển cách mạnh mẽ có nhiều ứng dụng sống Xử lý ảnh đồ họa đóng vai trị quan trọng tương tác người máy Quá trình xử lý ảnh xem trình thao tác ảnh đầu vào nhằm cho kết mong muốn Kết đầu q trình xử lý ảnh ảnh „tốt hơn‟ kết luận Hình 1 Q trình xử lý ảnh Ảnh xem tập hợp điểm ảnh điểm ảnh xem đặc trưng cường độ sáng hay dấu hiệu vị trí đối tượng khơng gian xem hàm n biến P(c1, c2, c3, … , cn) Do đó, ảnh xử lý ảnh xem ảnh n chiều Sơ đồ tổng quát hệ thống xử lý ảnh: Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 46 F (u, v) C (u, v) 7 2x 2y f ( x, y ) cos( u ) cos( v ; u, v x 0y 16 16 C (u, v) , : u v , : u 0, v , : v 0, u 1, khac 0,1, 0 3.3.3 Một số kết thử nghiệm Hình 3.3 Giao diện chƣơng trình ứng dụng Bước 1: Mở giao diện chương trình Bước 2: Kích vào chọn ảnh, sau chọn chất lượng ảnh Trong chương trình ta nén ảnh gốc ta nén ảnh ba kênh màu Red, Blue Green Bước 3: Nếu ta chọn „nén ảnh gốc‟, chọn chất lượng ảnh ta chọn 100 Bước 4: Chọn nén ảnh gốc, chương trình sổ để ghi tên file sau nén sau nén xong chương trình sổ thơng báo quy trình nén hồn tất Ta ấn OK vào sổ thư mục để lấy ảnh nén Tương tự ảnh kênh Red, kênh Blue, kênh Green Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 47 Hình 3.4 Giao diện chƣơng trình chạy thử Hình 3.5 Cửa sổ thơng báo hồn tất quy trình nén ảnh Thử nghiệm nén ảnh *.GIF ta kết sau: Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 48 Hình 3.6 Kết sau thử nghiệm với ảnh *.gif Ta chọn chất lượng ảnh 100 Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 49 Sau nén ảnh gốc „ảnh nghệ thuật.gif‟ kích thước 1024x682 size 202 KB ta ảnh nén ‟44.jpeg‟ kích thước 1024x682 size 162 KB, ảnh nén kênh Red kích thước 1024x682 size 69,1 KB, ảnh nén kênh Green kích thước 1024x682 size 132 KB, ảnh nén kênh Blue kích thước là1024x682 size 66,1 KB Thử nghiệm với ảnh *.JPEG ta kết sau: Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 50 Hình 3.7 Thử nghiệm với ảnh JPEG File ảnh vào DSC04371.jpeg với kích thước 480x640 size 160 KB, ta ảnh nén „huy1.jpeg‟ kích thước 480x640 size 29 KB, ảnh nén kênh Red kích thước 480x640 size 19,1 KB, ảnh nén kênh Green kích thước 480x640 Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 51 size 25,6 KB, ảnh nén kênh Blue kích thước 480x640 size 18,3 KB 3.3.4 Đánh giá chƣơng trình thử nghiệm Sau : Ưu điểm: Chương trình cài đặt JPEG nén file ảnh dạng *.gif, *.png, *.bmp (ảnh 16 màu, 256 màu, 24 bit màu) cho kết nén tốt, tỉ lệ nén cao, chất lượng tốt Nhược điểm: Đối với ảnh đa mức xám chương trình nén cho kích cỡ lớn nhiều so với ảnh gốc, cho kích thước ảnh nén nhỏ so với kích thước ảnh gốc khơng đáng kể Đối với ảnh có đơi *.jpeg kết nén giảm khoảng 30% đến 40% so với kích thước ảnh ban đầu hiệu nén tỷ lệ nghịch với nhau, chất lượng ảnh nén tốt kích thước file giảm ngược lại Ảnh sau nén khơng phục hồi lại trạng thái ban đầu, luận văn chie xây dựng chương trình nén ảnh, chưa xây dựng chương trình gải nén 3.4 Kết luận chƣơng Chương thử nghiệm nguồn, cho phép thực nhiệm vụ nén ảnh JPEG đạt Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 52 KẾT LUẬN Trong thời gian làm đề tài với hạn chế thời gian, tài liệu, sở vật chất hạn chế kiến thức đòi hỏi thân tơi phải cố gắng tìm tịi nhiệt tình công việc nghiên cứu đề tài cuối đề tài hồn thành trọn vẹn Đó kết thời gian dài nỗ lực nghiên cứu tơi hướng dẫn tận tình, chu đáo giáo viên hướng dẫn nên đề tài hoàn thành thời hạn , luận : Tìm hiểu tổng quan xử lý ảnh nén ảnh nhiệm vụ xử lý ảnh Hiểu thêm số thuật tốn mã hóa nén liệu bảo tồn trình bày khái niệm, định lý cần thiết kỹ thuật mã hóa, nén liệu ảnh nguyên tắc, sở lý thuyết, so sánh thuật toán số phương pháp nén ảnh phổ biến như: mã loạt dài RLE, LZW Một số kĩ thuật nén khơng bảo tồn nén ảnh JPEG, H.264, AIC so sánh chuẩn nén ảnh Luận văn trình bày thuật tốn nén ảnh AIC thuật toán nén ảnh kết hợp khối dự đoán từ kĩ H.264 DCT thuật toán nén ảnh JPEG, thuật toán nén ảnh nâng cao AIC quan tâm phát triển tính bật so với phương pháp khác Từ thuật tốn luận văn cịn tìm hiểu chạy thử nghiệm, cài đặt ứng dụng để minh họa vấn đề trình bày đề tài So sánh kết đạt với phần mềm có Em lựa chọn chuẩn nén JPEG để giải toán ứng dụng JPEG cho hiệu suất nén cao loại ảnh *.bmp; *.jpeg; *.gif; *.png chất lượng ảnh bảo đảm Một số hạn chế Các thuật toán nén liệu RLE, LZW chuẩn nén JPEG trình bày luận văn đời từ nhiều năm trước cần nghiên cứu Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 53 cải tiến, kết hợp thuật toán cho kết nén ảnh tốt tốc độ nén nâng cao Chương trình nén ảnh JPEG chưa xây dựng chương trình giải nén, ảnh sau nén truyền qua mạng khôi phục lại trạng thái ban đầu Thuật toán AIC luận văn cịn giai đoạn tìm hiểu phát triển, việc thuật toán AIC kết hợp thuật toán H.264 (chuẩn nén video) thuật toán nén ảnh JPEG đem lại phương pháp nén ảnh mới, tốc độ nén nhanh, chất lượng ảnh dung lượng file nén tốt Tiếp tục xây dựng chương trình giải nén JPEG đề cập luận văn Mã hóa hình ảnh nâng cao AIC giai đoạn thử nghiệm phát triển tương lai, để trở thành sản phẩm hoàn thiện cần cải tiến AIC thực tốt hơn, giảm chi phí cho AIC nhiều Tìm hiểu thêm thuật toán nén ảnh như: JPEG-XR, JPEG-LS, để so sánh với AIC Tiếp tục tìm hiểu thuật tốn nén ảnh độ nét cao, có tốc độ nén nhanh kết tốt mà chất lượng ảnh giữ nguyên Đặc biệt sâu vào tìm hiểu chuẩn nén âm thanh, chuẩn nén hình ảnh với độ nét cao Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 54 TÀI LIỆU THAM KHẢO Tiếng Việt [1] Đỗ Hoàng Tiến Vũ Đức Lý Truyền hình số NXB Khoa học kỹ thuật – Hà Nội, 2000 [2] Đỗ Năng Tồn, Phạm Việt Bình Giáo trình xử lý ảnh, Đại học Thái Nguyên, 2007 [3] Hồ văn Sung Xử lý ảnh số lý thuyết thực hành, NXB Khoa học kỹ thuật – Hà Nội, 2009 [4] Nguyễn Đăng Bình Giáo trình xử lý ảnh số, Trường Đại Học Khoa Học Huế, 2011 – [5] , 2002 Tiếng Anh [6] David Salomon - “Data Compression - The Complete Reference” (2001) [7] Jin Li - “Image Compression - the Mechanics of the JPEG2000”(2001) [8] Satish Kumar - “An Introduction to Image Compression” (10/2001) [9] Iain E.G Richardson (2010), H.264 and MPEG-4 video compression: Video coding for Next-generation MultiMedia Explains the details of the H.264 and MPEG-4 standards [10] R.C.Gonzalez, R.E.Woods, Steven L.Eddins, Digital Image Processing Using Matlab, Prentice Hall, 2003 Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 55 PHỤ LỤC Chương trình nén ảnh JPEG using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO; using JpegEncoder; namespace EncoderUI { public partial class frmJPGEncoder : Form { public frmJPGEncoder() { InitializeComponent(); } byte[, ,] image_array; Bitmap mainLoadedImage; String InputFileName = ""; String OutputFileName = ""; Int64 outputFileLength = 0; Point originalDimension = new Point(0, 0); Point actualDimension = new Point(0, 0); Utils.ProgressUpdater progressObj = new Utils.ProgressUpdater(); Utils.CurrentOperationUpdater currentOperationObj = new Utils.CurrentOperationUpdater(); private void Write_Channel_Images(bool WriteYCbCrChannel, Bitmap bmpImage, bool DrawInBW, Utils.IProgress progress, Utils.ICurrentOperation operation) { byte[, ,] y_channel = Imaging.Get_Channel_Data(image_array, DrawInBW, bmpImage.Width, bmpImage.Height, WriteYCbCrChannel ? Imaging.ChannelType.Y : Imaging.ChannelType.R);//, progress, operation); YChPictureBox.Image = Utils.Write_Bmp_From_Data(y_channel, new Point(bmpImage.Width, bmpImage.Height), progress, operation); byte[, ,] cb_channel = Imaging.Get_Channel_Data(image_array, DrawInBW, bmpImage.Width, bmpImage.Height, WriteYCbCrChannel ? Imaging.ChannelType.Cb : Imaging.ChannelType.G);//, progress, operation); Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 56 CbChPictureBox.Image = Utils.Write_Bmp_From_Data(cb_channel, new Point(bmpImage.Width, bmpImage.Height), progress, operation); byte[, ,] cr_channel = Imaging.Get_Channel_Data(image_array, DrawInBW, bmpImage.Width, bmpImage.Height, WriteYCbCrChannel ? Imaging.ChannelType.Cr : Imaging.ChannelType.B); ;//, progress, operation); CrChPictureBox.Image = Utils.Write_Bmp_From_Data(cr_channel, new Point(bmpImage.Width, bmpImage.Height), progress, operation); } private void open_Click(object sender, EventArgs e) { OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = "Image Files|*.bmp;*.jpg;*.jpeg;*.png;*.gif;*.tiff|BMP Files|*.bmp|JPEG Files|*.jpeg;*.jpg|PNG Files|*.png|GIF Files|*.GIF|All Files|*.*"; if (DialogResult.OK == ofd.ShowDialog()) { mainPictureBox.Image = null; YChPictureBox.Image = null; CbChPictureBox.Image = null; CrChPictureBox.Image = null; InputFileName = ofd.FileName; Bitmap bmp = new Bitmap(InputFileName); mainLoadedImage = bmp; mainPictureBox.Image = bmp; originalDimension = new Point(bmp.Width, bmp.Height); actualDimension = Utils.GetActualDimension(originalDimension); Bitmap bmp1 = new Bitmap(InputFileName); image_array = Utils.Fill_Image_Buffer(bmp1); Write_Channel_Images(false, mainLoadedImage, false, progressObj, currentOperationObj); } } private void Form1_Load(object sender, EventArgs e) { quantizerQualityComboBox.SelectedIndex = 5; Tables.Precalculate_YCbCr_Tables(); // For getting tables to convert RGB to YCbCr } private void WriteJpgButton_Click(object sender, EventArgs e) { Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 57 SaveFileDialog sfd = new SaveFileDialog(); sfd.RestoreDirectory = true; sfd.Filter = "Jpeg (*.jpg)|*.jpg|All files (*.*)|*.*"; if (DialogResult.OK == sfd.ShowDialog()) { OutputFileName = sfd.FileName; FileStream fs = new FileStream(OutputFileName, FileMode.Create, FileAccess.Write, FileShare.None); BinaryWriter bw = new BinaryWriter(fs); JpegEncoder.BaseJPEGEncoder encoder = new BaseJPEGEncoder(); encoder.EncodeImageBufferToJpg(image_array, originalDimension, actualDimension, bw, float.Parse(quantizerQualityComboBox.Text)); fs.Flush(); outputFileLength = fs.Length; fs.Close(); MessageBox.Show("Quá trình chuyển đổi đị nh dạng ảnh xong", "Nén liệu", MessageBoxButtons.OK, MessageBoxIcon.Information); } } private void YChPictureBox_Click(object sender, EventArgs e) { if (mainPictureBox.Image != null) { if (YChPictureBox.Image != null) mainPictureBox.Image = YChPictureBox.Image; } } private void mainPictureBox_Click(object sender, EventArgs e) { if (mainLoadedImage != null) mainPictureBox.Image = mainLoadedImage; } private void CbChPictureBox_Click(object sender, EventArgs e) { if (mainPictureBox.Image != null) { if (CbChPictureBox.Image != null) mainPictureBox.Image = CbChPictureBox.Image; } } private void CrChPictureBox_Click(object sender, EventArgs e) { if (mainPictureBox.Image != null) { Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 58 if (CrChPictureBox.Image != null) mainPictureBox.Image = CrChPictureBox.Image; } } private void YCbCrDisplayTypeRadioButton_CheckedChanged(object sender, EventArgs e) { LoadChannelImages(); } private void DrawInBWCheckBox_CheckedChanged(object sender, EventArgs e) { if (RGBDisplayTypeRadioButton.Checked == true) { LoadChannelImages(); } } private void LoadChannelImages() { // if (YCbCrDisplayTypeRadioButton.Checked) // { // Y_Label.Text = "Y Channel"; // Cb_Label.Text = "Cb Channel"; // Cr_Label.Text = "Cr Channel"; // } //else { Y_Label.Text = "Red Channel"; Cb_Label.Text = "Green Channel"; Cr_Label.Text = "Blue Channel"; } } private void writeCurrentImageButton_Click(object sender, EventArgs e) { SaveFileDialog sfd = new SaveFileDialog(); sfd.RestoreDirectory = true; sfd.Filter = "Jpeg (*.jpg)|*.jpg|All files (*.*)|*.*"; if (DialogResult.OK == sfd.ShowDialog()) { OutputFileName = sfd.FileName; FileStream fs = new FileStream(OutputFileName, FileMode.Create, FileAccess.Write, FileShare.None); BinaryWriter bw = new BinaryWriter(fs); JpegEncoder.BaseJPEGEncoder encoder = new BaseJPEGEncoder(); Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 59 encoder.EncodeImageToJpg(mainPictureBox.Image, bw, float.Parse(quantizerQualityComboBox.Text));//, fs.Flush(); outputFileLength = fs.Length; fs.Close(); MessageBox.Show("Quá trình chuyển đổi đị nh dạng ảnh xong", "Nén liệu", MessageBoxButtons.OK, MessageBoxIcon.Information); } } private void btnChonAnh_Click(object sender, EventArgs e) { OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = "Image Files|*.bmp;*.jpg;*.jpeg;*.png;*.gif;*.tiff|BMP Files|*.bmp|JPEG Files|*.jpeg;*.jpg|PNG Files|*.png|GIF Files|*.GIF|All Files|*.*"; if (DialogResult.OK == ofd.ShowDialog()) { mainPictureBox.Image = null; YChPictureBox.Image = null; CbChPictureBox.Image = null; CrChPictureBox.Image = null; InputFileName = ofd.FileName; Bitmap bmp = new Bitmap(InputFileName); mainLoadedImage = bmp; mainPictureBox.Image = bmp; originalDimension = new Point(bmp.Width, bmp.Height); actualDimension = Utils.GetActualDimension(originalDimension); Bitmap bmp1 = new Bitmap(InputFileName); image_array = Utils.Fill_Image_Buffer(bmp1); Write_Channel_Images(false, mainLoadedImage, false, progressObj, currentOperationObj); } } private void mainPictureBox_DoubleClick(object sender, EventArgs e) { btnChonAnh_Click(sender, e); } private void button1_Click(object sender, EventArgs e) { DisplayGroupBox.Enabled = true; } Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 60 } } Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ ... vực nén ảnh ngơn ngữ lập trình C Sharp 2010 Trong luận văn sâu vào nghiên cứu kĩ thuật nén ảnh sử dụng ngôn ngữ lập trình C Sharp 2010 để giải tốn ứng dụng nén ảnh Cấu trúc luận văn Luận văn. .. LZW nén ảnh màu Các kĩ thuật nén ảnh tổn thất JPEG, AIC kĩ thuật nén ảnh cho ảnh có độ nét cao mà mắt người khơng phân biệt ảnh trước sau nén Kĩ thuật AIC phát triển cho ảnh có dộ nét cao Thuật. .. bày kĩ thuật nén ảnh khơng tổn thất RLE LZW kĩ thuật Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 43 chủ yếu dùng nén ảnh đen trắng ảnh đa mức xám Kĩ thuật nén LZW vượt trội hẳn kĩ thuật

Ngày đăng: 06/02/2023, 20:07

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w