Tài liệu Nâng cao chất lượng ảnh và nén ảnh + Matlab code Chương 1 giới thiệu tổng quan về ảnh số và các kĩ thuật nâng cao chất lượng ảnh như biến đổi ảnh xám, biến đổi âm bản, các phương pháp lọc ảnh nhiễu... Chương 2 giới thiệu về kĩ thuật nén ảnh và đi sâu vào 2 chuẩn nén ảnh JPEG và JPEG2000. Chương 3 giới thiệu tổng quan về ngôn ngữ lập trình Matlab và chương trình mô phỏng kĩ thuật nâng cao chất lượng và nén ảnh bằng Matlab.
Đồ án tốt nghiệp đại học Mục lục MỤC LỤC MỤC LỤC I DANH MỤC HÌNH VE IV DANH MỤC BẢNG BIỂU .VI THUẬT NGỮ VIẾT TĂT .VII LỜI NÓI ĐẦU A CHƯƠNG TỔNG QUAN ẢNH SỐ VÀ CÁC KĨ THUẬT NÂNG CAO CHẤT LƯỢNG ẢNH 1.1 TỔNG QUAN VỀ ẢNH SÔ.́ .1 1.2 CÁC KĨ THUẬT NÂNG CAO CHẤT LƯỢNG ẢNH 1.2.1 Biến đổi mức xám 1.2.1.1 Biến đổi âm 1.2.1.2 Biến đổi log 1.2.1.3 Biến đổi hàm mu 1.2.1.4 Giãn độ tương phản 1.2.1.5 Kĩ thuật cắt theo mức 1.2.2 Cân bằng mức xám 1.2.3 So sánh mức xám 1.2.4 Chèn nhiễu 1.2.5 Lọc ảnh 1.2.5.1 Lọc làm mịn ảnh a Lọc không gian tuyến tính b Lọc không gian phi tuyến c Lọc trung bình d Lọc thông thấp miền tần sô .9 1.2.5.2 Lọc sắc nét ảnh a Lọc thông cao b Lọc tần sô từ không gian 10 1.2.5 Các kĩ thuật làm nổi đường biên ảnh 10 1.3 KẾT LUẬN CHƯƠNG 11 CHƯƠNG CÁC KĨ THUẬT NÉN ẢNH .12 Nguyễn Phương Hiền – D04VT2 i Đồ án tốt nghiệp đại học Mục lục 2.1 TỔNG QUAN VỀ NÉN ẢNH 12 2.1.1 Giới thiệu chung về nén ảnh sô 12 2.1.2 Sơ đồ khôi hệ thông nén ảnh điển hình 13 2.1.3 Phân loại các kỹ thuật nén 13 2.1.4 Các nguyên tắc nén ảnh .14 2.1.5 Dư thừa sô liệu 14 2.1.5.1 Dư thừa mã (Coding Redundancy) 15 2.1.5.2 Dư thừa pixel ( Interpixel Redudancy) .16 2.1.5.3 Dư thừa tâm sinh lý (Psychovisual Redudancy) 16 2.1.6 Giới thiệu một sô kỹ thuật sử dụng nén ảnh .17 2.1.6.1 Mã hoá dựa phép biến đổi DCT 17 a Biến đổi DCT thuận và nghịch 17 b Lượng tử và giải lượng tử 19 c Mã hóa và giải mã 19 2.1.6.2 Kỹ thuật mã hoá băng 20 a Ý tưởng mã hoá băng 20 b Mã hoá băng 20 2.1.6.3 Biến đổi Wavelet nén ảnh 22 a Biến đổi Wavelet 1-D 23 b Biến đổi Wavelet rời rạc 2-D 24 2.1.7 Các tiêu chuẩn nén ảnh .26 2.2 GIỚI THIỆU JPEG VÀ JPEG2000 .26 2.2.1 JPEG 26 2.2.1.1 Giới thiệu sơ lược .26 2.2.1.2 Sơ đồ khôi 27 2.2.2 JPEG2000 28 2.2.2.1 Giới thiệu sơ lược .28 2.2.2.2 Sơ đồ khôi bộ mã hóa và bợ giải mã JPEG 2000 28 2.2.3 So sánh JPEG và JPEG2000 .29 2.3 KẾT LUẬN CHƯƠNG 31 CHƯƠNG CHƯƠNG TRÌNH MÔ PHỎNG 32 3.1 NGÔN NGỮ MATLAB 32 Nguyễn Phương Hiền – D04VT2 ii Đồ án tốt nghiệp đại học Mục lục 3.1.1 Sơ lược lịch sử Matlab .32 3.1.2 Đặc điểm của Matlab và các ứng dụng .34 3.2 CHƯƠNG TRÌNH MÔ PHỎNG SỬ DỤNG MATLAB 35 3.2.1 Giao diện chương trình mô .35 3.2.2 Nâng cao chất lượng ảnh 36 3.2.2.1 Biến đổi mức xám 36 a Biến đổi mức xám sử dụng hàm imadjust 37 b Biến đổi âm 38 c Biến đổi log .39 d Biến đổi hàm mu .39 e Biến đổi giãn độ tương phản 40 f Kĩ thuật cắt theo mức .41 3.2.2.2 Cân bằng mức xám .41 3.2.2.3 So sánh mức xám 42 3.2.2.4 Chèn nhiễu 43 3.2.2.5 Lọc ảnh .44 a Lọc làm mịn ảnh 45 b Lọc sắc nét ảnh 51 3.2.2.6 Các kĩ thuật làm nổi đường biên ảnh 53 3.2.3 Nén ảnh .54 3.2.3.1 Nén ảnh dùng mã hóa Huffman 54 3.2.3.2 Nén ảnh dùng mã dự đoán không tổn thất 54 3.2.3.3 Nén ảnh JPEG dùng biến đổi DCT .54 3.2.3.4 Nén ảnh JPEG2000 .55 3.3 KẾT LUẬN CHƯƠNG 56 KẾT LUẬN 57 TÀI LIỆU THAM KHẢO 58 Nguyễn Phương Hiền – D04VT2 iii Đồ án tốt nghiệp đại học Danh mục hình vẽ DANH MỤC HÌNH VE Hình 1.1 Biến đởi âm .2 Hình 1.2 Đồ thị hàm log Hình 1.3 Đồ thị hàm mu Hình 1.4 Biến đổi giãn độ tương phản Hình 1.5 Đồ thị kĩ thuật cắt theo mức Hình 1.6 Biểu đồ hàm s = T(r) .5 Hình 1.7 Cơ chế lọc khơng gian Hình 1.8 Đường biên của ảnh 10 Hình 2.1 Sơ đồ khơi mợt hệ thơng nén ảnh điển hình 13 Hình 2.2 Mơ hình mã hóa dự đốn khơng tởn thất bao gồm bợ mã hóa và bợ giải mã 16 Hình 2.3 Sơ đồ mã hóa và giải mã dùng biến đổi DCT 17 Hình 2.4 Các bước của q trình mã hóa biến đởi DCT đơi với khơi .18 Hình 2.5 a) Băng lọc phân tích; b) Hai bộ lọc thông thấp và thông cao c) Phần vùng miền tần sô; d) Băng lọc tổng hợp 21 Hình 2.6 Sơ đồ khơi phân tích tín hiệu mức j 23 Hình 2.7 Sơ đồ biến đởi ngược Wavelet mức j 24 Hình 2.8 Sơ đồ phân tích Wavelet rời rạc 2-D 25 Hình 2.9 Sơ đồ biến đổi ngược Wavelet rời rạc 2-D 25 Hình 2.10 Sơ đồ khôi bộ mã hóa và giải mã JPEG dựa biến đởi DCT 27 Hình 2.11 Sơ đồ khôi bộ mã hóa và bộ giải mã JPEG 2000 .28 Hình 2.12 So sánh JPEG, JPEG2000 29 Hình 2.13 Tỉ lệ nén của JPEG2000 và JPEG .30 Hình 2.14 Minh hoạ tính ROI 31 Hình 3.1 Giao diện chương trình nâng cao chất lượng và nén ảnh 36 Hình 3.2 Giao diện chương trình biến đởi ảnh xám 37 Hình 3.3 Đồ thị của giá trị hàm imadjust 38 Hình 3.4 Ảnh âm 39 Hình 3.5 Ảnh biến đởi hàm log 39 Hình 3.6 Ảnh biến đởi hàm mu 40 Nguyễn Phương Hiền – D04VT2 iv Đồ án tốt nghiệp đại học Danh mục hình vẽ Hình 3.7 Ảnh giãn độ tương phản 40 Hình 3.8 Ảnh cắt theo mức không nền và có nền 41 Hình 3.9 Ảnh cân bằng và biểu đồ .42 Hình 3.10 Hai ảnh xám gần giơng .42 Hình 3.11 Ảnh xám thu trước và sau cân bằng 43 Hình 3.12 Ảnh chèn nhiễu salf & pepper 43 Hình 3.13 Giao diện chương trình mơ phỏng phương pháp chèn và lọc nhiễu 44 Hình 3.14 Ảnh lọc sử dụng bợ lọc trung bình 47 Hình 3.15 Ảnh thu nhờ bộ lọc Laplace có giá trị -4 và -8 chính 48 Hình 3.16 Ảnh lọc không gian phi tuyến 49 Hình 3.17 Ảnh lọc trung vị 3x3 50 Hình 3.18 Ảnh lọc trung bình 50 Hình 3.19 Ảnh lọc thông thấp 51 Hình 3.20 Ảnh lọc thơng cao 51 Hình 3.21 Ảnh lọc emphasis cao tần 52 Hình 3.22 Ảnh lọc tần sơ từ khơng gian 53 Hình 3.23 Giao diện nén ảnh JPEG và JPEG2000 .55 Nguyễn Phương Hiền – D04VT2 v Đồ án tốt nghiệp đại học Danh mục bảng biểu DANH MỤC BẢNG BIỂU Bảng 2.1 Sô bit pixel 30 Bảng 3.1 Các bộ lọc đặc biệt .45 Nguyễn Phương Hiền – D04VT2 vi Đồ án tốt nghiệp đại học Thuật ngữ viết tắt THUẬT NGỮ VIẾT TĂT Thuật ngữ Tên tiếng Anh Tiếng Việt D DCT Discrete Cosin Transform Biến đổi cosin rời rạc DFT Discrete Fourier Transform Biến đổi Fourier rời rạc DWT Discrete Wavelet Transform Biến đổi Wavelet rời rạc F FFT Fast Fourier Transform Biến đổi Fourier nhanh I IEEE Institute of Electrical and Electronic Enginee Học viện kĩ nghệ điện và điện tử IPT Image Processing Toolbox Hộp công cụ xử lí ảnh ISO International Organization for Tổ chức chuẩn hóa quôc tế Standardization J JPEG Joint Photo Graphic Experts Group Liên hiệp nhóm chuyên gia về hình ảnh M MIT Massachusetts Institute of Technology Học viện Công nghệ Massachusetts MPEG Motion Picture Experts Group Nhóm chun gia về hình ảnh đợng MSE Mean Square Error Lỗi trung bình quân phương P PSNR Peak Signal-to-Noise Ratio Tỷ sô tín hiệu đỉnh nhiễu Q QMF Quadrature Mirror Filter Nguyễn Phương Hiền – D04VT2 Bộ lọc gương cầu phương vii Đồ án tốt nghiệp đại học Thuật ngữ viết tắt S SBC Subband Coding Mã hóa băng SNR Signal-to-Noise Ratio Tỷ sô tín hiệu nhiễu R RLC Run Length Coding Mã hoá loạt dài RMSE Root Mean Square Error Lỗi trung bình quân phương chuẩn ROI Region of Interest Mã hoá ảnh theo vùng V VLC Variable Length Coding Mã hóa với độ dài mã thay đổi W WIC Wavelet Image Compession Nguyễn Phương Hiền – D04VT2 Nén ảnh sử dụng Wavelet viii Đồ án tốt nghiệp đại học đầu Lời nói LỜI NÓI ĐẦU Trong nhiều thập kỷ gần đây, với tiến bộ của khoa học kỹ thuật, phát triển mạnh mẽ của máy tính và đời của Internet nhu cầu dịch vụ liệu truyền mạng là lớn, là liệu đa phương tiện Ảnh sô đời khiến cho nhu cầu của người về chất lượng ảnh cung ngày càng tăng cao Con người sử dụng ảnh sô cho nhiều mục đích, nhiều lĩnh vực khác nhau, từ nghệ thuật, y học thiên văn học, địa lý,…Vì vậy ảnh sô phải xử lí cho phù hợp với từng mục đích cụ thể Xuất phát từ nhu cầu đó của người, nhiều kỹ thuật xử lí ảnh sô đời Xử lí ảnh sô mặc dù là mợt khoa học tương đơi mẻ so với nhiều ngành khoa học khác là quy mô công nghiệp, song nó đã đem lại nhiều lợi ích Xử lí ảnh sơ bao gồm việc tìm tòi nghiên cứu về kĩ thuật nén ảnh để đảm bảo tiết kiệm băng thông truyền dẫn, giảm bớt không gian lưu trữ để truyền thông tin mạng một cách dễ dàng và nhanh chóng Ngoài ra, thuật toán nhằm nâng cao chất lượng ảnh cung là mợt vấn đề đòi hỏi đầu tư nghiên cứu Các tḥt tốn, phép biến đởi nâng cao chất lượng ảnh mà đã biết tạo ảnh âm bản, chèn nhiễu, tăng, giãn độ tương phản, biến đổi logic sô học, phép lọc… Các kỹ thuật nén sử dụng phép biến đổi Fourier (FT), biến đổi cosine rời rạc (DCT), biến đổi Wavelet (DWT) có nhiều ưu điểm khơng xử lí ảnh mà nhiều ứng dụng khác Bằng chứng là đời của chuẩn nén JPEG (DCT) và JPEG2000 (dựa DWT) sử dụng rộng rãi Với mục tiêu xây dựng chương trình mơ phỏng, minh họa cho kĩ thuật nâng cao chất lượng và nén ảnh, em quyết định chọn đề tài này để làm đồ án tôt nghiệp Đồ án của em chia làm chương: - Chương giới thiệu tổng quan về ảnh sô và kĩ thuật nâng cao chất lượng ảnh biến đổi ảnh xám, biến đổi âm bản, phương pháp lọc ảnh nhiễu - Chương giới thiệu về kĩ thuật nén ảnh và sâu vào chuẩn nén ảnh JPEG và JPEG2000 - Chương giới thiệu tởng quan về ngơn ngữ lập trình Matlab và chương trình mơ phỏng kĩ tḥt nâng cao chất lượng và nén ảnh bằng Matlab Nguyễn Phương Hiền – D04VT2 a Đồ án tốt nghiệp đại học đầu Lời nói Em xin chân thành cảm ơn thầy giáo, ThS Nguyễn Xuân Hoàng đã nhiệt tình hướng dẫn, tạo điều kiện giúp đỡ em hoàn thành đồ án này Hà nội, tháng 11 năm 2008 Sinh viên Nguyễn Phương Hiền Nguyễn Phương Hiền – D04VT2 b Đồ án tốt nghiệp đại học Chương 3: Chương trình mơ Ngoài nhiễu salf & pepper, ta có thể chèn thêm vào ảnh nhiễu Gaussian, localvar, poisson, speckle Các loại nhiễu - 'gaussian': Nhiễu Gauss trắng - 'localvar': Nhiễu Gauss trắng trung bình (Zero-mean Gaussian white noise with an intensity-dependent variance) - 'poisson': Nhiễu Poisson - 'salt & pepper': Mở hoặc tắt pixel Salt là mở pixel (trắng), pepper là tắt pixel (đen) - 'speckle': Nhiễu nhân 3.2.2.5 Lọc ảnh Ta có thể kết hợp phương pháp chèn nhiễu và lọc nhiễu một giao diện sau: Nguyễn Phương Hiền – D04VT2 44 Đồ án tốt nghiệp đại học Chương 3: Chương trình mơ Hình 3.13 Giao diện chương trình mô các phương pháp chèn nhiễu và lọc nhiễu a Lọc làm mịn ảnh Ý tưởng của phương pháp lọc làm mịn là thay giá trị của một pixel bằng giá trị mức xám trung bình của pixel mặt nạ Phương pháp này giúp loại bỏ chi tiết không liên quan trước thực tách đôi tượng ảnh Chi tiết là nhóm pixel có kích thước nhỏ so với mặt nạ Tuy nhiên phương pháp này tạo tác dụng không mong muôn là làm giảm độ nét của ảnh Lọc không gian tuyến tính Lọc không gian tuyến tính sử dụng hàm lọc: g = imfilter(f, bộ lọc, ‘đường biên’); đó ta xác định loại đường biên: P: Các đường biên của ảnh vào mở rộng nhờ chèn thêm vào một giá trị P Mặc định là - ‘replicate’: Kích thước của ảnh mở rộng nhờ tạo giá trị đường biên bên ngoài của nó - ‘symmetric’: Kích thước của ảnh mở rộng nhờ việc phản - xạ ảnh qua biên ‘circular’: Kích thước của ảnh mở rợng nhờ xử lí ảnh theo chu kì của hàm tuần hoàn - Toolbox Matlab hỗ trợ nhiếu bộ lọc không gian tuyến tính 2-D nhờ sử dụng hàm fspecial, hàm này tạo mặt nạ w của bộ lọc nhờ sử dụng cấu trúc lệnh: w = fspecial(‘type’, parameters) Trong đó ‘type’ là loại bộ lọc, và parameters xác định thêm bộ lọc đặc biệt Các bộ lọc đặc biệt này thông kê bảng 3.1 Bảng 3.1 Các bộ lọc đặc biệt Loại Cấu trúc và tham sô ‘average’ fspecial(‘average’, [r c]) Một bộ lọc trung bình chữ nhật Nguyễn Phương Hiền – D04VT2 45 Đồ án tốt nghiệp đại học Chương 3: Chương trình mơ kích thước r x c, mặc định là 3x3 Có thể thay [r c] bằng một giá trị đơn, đó bộ lọc là vuông ‘disk’ fspecial (‘disk’, r) Bợ lọc trung bình tròn (nằm hình vuông có kích thước 2r+1) với đường kính r Đường kính mặc định là ‘gaussian’ fspecial (‘gaussian’, [r c], sig) Bộ lọc thông thấp Gauss kích thước r x c và độ lệch chuẩn sig (sig mang giá trị dương) Kích thước và độ lệch chuẩn mặc định là 3x3 và 0.5 Có thể thay [r c] bằng một giá trị đơn, đó bộ lọc là vuông ‘laplacian’ fspecial (‘laplacian’, alpha) Bộ lọc Laplace kích thước 3x3 có hình dạng xác định alpha (nằm khoảng [0, 1]) Giá trị mặc định của alpha là 0.5 ‘log’ fspecial (‘log’, [r c], sig) Bộ lọc LoG (Laplacian of Gaussian) kích thước r x c và độ lệch chuẩn sig (sig mang giá trị dương) Giá trị mặc định của kích thước bộ lọc và độ lệch chuẩn là 5x5 và 0.5 Có thể thay [r c] bằng một giá trị đơn, đó bộ lọc là vuông ‘motion’ fspecial (‘motion’, len, theta) Cho bộ lọc mà nhân với ảnh tính tốn xấp xỉ chuyển đợng tuyến tính (của một camera đôi với ảnh) của len pixel Góc chuyển động là theta, tính bằng độ, ngược chiều kim đồng hồ so với trục ngang Giá trị mặc định của len và theta là và ‘prewitt’ fspecial (‘prewitt’) Cho mặt nạ Prewitt wv tính toán gradient theo chiều dọc Mặt nạ cho gradient theo chiều ngang thu nhờ phép biến đổi: wh = wv’ ‘sobel’ fspecial (‘sobel’) Cho mặt nạ Sobel sv tính toán gradient theo chiều dọc Mặt nạ cho gradient theo chiều ngang thu nhờ phép biến đổi: sh = sv’ Nguyễn Phương Hiền – D04VT2 46 Đồ án tốt nghiệp đại học ‘unsharp’ Chương 3: Chương trình mơ fspecial (‘unsharp’, alpha) Cho bộ lọc unsharp kích thước 3x3 Tham sô alpha điều chỉnh độ sắc nét, nằm khoảng (0 1], giá trị mặc định là 0.2 Ngoài bộ lọc đặc biệt ta cung có thể tự nhập mặt nạ lọc (ma trận) Trong đó ta thấy ảnh lọc sử dụng ma trận H có độ lọc mịn cao: H = [1/9 1/9 1/9; 1/9 1/9 1/9; 1/9 1/9 1/9]; Kết mơ phỏng biểu diễn hình 3.14 Hình 3.14 (a) Ảnh gôc – (b) Ảnh chèn nhiễu salt & pepper – (c) Ảnh lọc sử dụng ma trận H – (d) Ảnh lọc sử dụng bộ lọc trung bình Nguyễn Phương Hiền – D04VT2 47 Đồ án tốt nghiệp đại học Chương 3: Chương trình mơ Thực ra, với bộ lọc trên, ảnh lọc thu có mịn lại không rõ nét Để khắc phục tình trạng này, ta có thể sử dụng linh hoạt bộ lọc Ví dụ, ta sử dụng đoạn mã sau đây: f = imread (‘moon.tif’); w4 = fspecial (‘laplacian’, 0) % hoặc w4 = [0 0; -4 1; 0]]; w8 = [1 1; -8 1; 1 1]; f = im2double (f); g4 = f – imfilter (f, w4, ‘replicate’); g8 = f – imfilter (f, w8, ‘replicate’); >> imshow (f); >> figure, imshow (g4); >> figure, imshow (g8); Hình 3.15 (a) Ảnh gôc – (b) Ảnh thu được nhờ bộ lọc Laplace có giá trị -4 – (c) Ảnh thu được nhờ bợ lọc Laplace có giá trị -8 Ảnh thu hình cuôi mịn nhiều so với ảnh gôc, nữa, nó nét Lọc khơng gian phi tuyến Một công cụ thông dụng để tạo bộ lọc không gian phi tuyến IPT (hộp công cụ xử lí ảnh) là hàm ordfilt2, tạo bộ lọc thứ tự cô định (cung gọi là bộ lọc thứ tự) Những bộ lọc không gian phi tuyến này dựa vào thứ tự pixel Nguyễn Phương Hiền – D04VT2 48 Đồ án tốt nghiệp đại học Chương 3: Chương trình mơ chứa vùng lân cận và thay thế giá trị pixel trung tâm của vùng lân cận giá trị xác định bằng kết xếp thứ tự Cấu trúc của lệnh ordfilt2 sau: g = ordfilt2 (f, order, domain) Hàm này tạo ảnh đầu g bằng cách thay thế phần tử f bằng phần tử thứ order tập hợp vùng lân cận mô tả thành phần khác domain Ở đây, domain là ma trận m x n gồm hai sô và 1, mô tả vị trí pixel vùng lân cận sử dụng việc tính toán Có thể hiểu domain có chức một mặt nạ Các pixel vùng lân cận tương ứng với ma trận domain không sử dụng việc tính tốn Hình 3.16 (a) Ảnh gơc – (b) Ảnh chèn nhiễu salt & pepper – (c) Ảnh lọc không gian phi tuyến Bộ lọc cho trạng thái tôt xử lí ảnh là bộ lọc trung vị Ta có thể sử dụng chức median hàm ordfilt2 để tạo bộ lọc trung vị: g = ordfilt2 (f, median (1: m*n), ones (m, n)); Trong đó median (1: m*n) tính toán trung vị của chuỗi 1, 2, …, mn Nhận thấy tầm quan trọng của nó, toolbox cung cấp hàm lọc trung vị 2-D: g = medfilt2 (f, [m, n], padopt); đó [m n] xác định vùng lân cận kích thước m x n mà đó phép tính trung vị thực hiện, và padopt xác định một ba lựa chọn có thể: ‘zeros’ (mặc định), ‘symmetric’ đó f mở rộng một cách đôi xứng bằng cách phản xạ nó qua biên, và ‘indexed’ đó f bù nếu nó có dạng double và nếu ngược lại Dạng mặc định của hàm: g = medfilt2 (f); Nguyễn Phương Hiền – D04VT2 49 Đồ án tốt nghiệp đại học Chương 3: Chương trình mơ sử dụng ma trận 3x3 để tính toán trung vị, và bù vào biên của ảnh đầu vào Kỹ thuật này đòi hỏi giá trị điểm ảnh cửa sở phải xếp theo thứ tự tăng hay giảm dần so với giá trị trung vị Kích thước cửa sô thường chọn cho sô điểm ảnh cửa sô là lẻ Các cửa sổ hay dùng là cửa sổ có kích thước 3x3, hay 5x5 hay 7x7 Thí dụ: Hình 3.17 (a) Ảnh gôc – (b) Ảnh chèn nhiễu salt & pepper – (c) Ảnh lọc trung vị 3x3 Lọc trung bình Ta có ảnh lọc trung bình thu nhờ mô phỏng Matlab: Hình 3.18 (a) Ảnh gôc – (b) Ảnh chèn nhiễu – (c) Ảnh lọc trung bình Lọc thông thấp miền tần sô Lọc thông thấp sử dụng hàm dftfilt Kết của lọc thông thấp là làm mịn ảnh, nhiên, nó lại làm cho ảnh bị mờ Nguyễn Phương Hiền – D04VT2 50 Đồ án tốt nghiệp đại học Chương 3: Chương trình mô Hình 3.19 (a) Ảnh gôc – (b) Ảnh chèn nhiễu salt & pepper– (c) Ảnh lọc thông thấp b Lọc sắc nét ảnh Mục đích của lọc làm sắc nét ảnh là làm nổi bật chi tiết nhỏ hoặc chi tiết bị mờ, có thể nhiễu hoặc trình thu nhận ảnh Các kĩ thuật lọc làm sắc nét đều là lọc miền tần sô Lọc thông cao - Lọc thông cao Hàm lpfilter có thể sử dụng sở cho bộ lọc thông cao Hình 3.20 (a) Ảnh gôc – (b) Ảnh chèn nhiễu poisson – (c) Ảnh lọc thông cao - Lọc emphasis cao tần Các bộ lọc thông cao làm giảm giá trị trung bình của ảnh tới Như ta đã thấy trên, ảnh lọc nét lại nhiều so với ảnh gôc Một phương pháp giải quyết vấn đề này là chèn thêm vào một offset để lọc thông cao Khi offset Nguyễn Phương Hiền – D04VT2 51 Đồ án tốt nghiệp đại học Chương 3: Chương trình mơ kết hợp với việc nhân bợ lọc với mợt sơ lớn phương pháp này gọi là lọc emphasis cao tần phép nhân làm nổi rõ tần sô cao Emphasis cao tần có hàm truyền đạt: Hhfe(u,v) = a + bHhp(u,v) đó a là offset, b là sô nhân và Hhp(u, v) là hàm truyền đạt của bộ lọc thông cao Để có kết lọc cao hơn, sau lọc emphasis cao tần ta nên sử dụng phương pháp cân bằng biểu đồ Hình 3.21 (a) Ảnh gôc – (b) Ảnh chèn nhiễu salt & pepper – (c) Ảnh lọc emphasis cao tần – (d) Ảnh lọc sau cân bằng mức xám Lọc tần sô từ không gian Một phương pháp để tạo một bộ lọc miền tần sô H tương ứng với một bộ lọc không gian đã cho h là cho H = fft2(h, PQ(1), PQ(2)), đó giá trị của vector Nguyễn Phương Hiền – D04VT2 52 Đồ án tốt nghiệp đại học Chương 3: Chương trình mơ PQ phụ tḥc vào kích thước ảnh muôn lọc Toolbox cung cấp hàm freqz2 thực kĩ thuật lọc này Hàm freqz2 tính tốn đáp ứng tần sơ của bợ lọc FIR, là bộ lọc tuyến tính Kết là bộ lọc mong muôn miền tần sô Cú pháp là: H = freqz2(h, R, C) đó h là bộ lọc không gian 2D và H là bộ lọc miền tần sô 2D tương ứng Ở đây, R là sô hàng và C là sô cột mà ta mong muôn bộ lọc H có Thông thường, ta cho R = PQ(1) và C = PQ(2) Hình 3.22 (a) Ảnh gôc – (b) Ảnh chèn nhiễu poisson – (c) Ảnh lọc tần sô từ không gian 3.2.2.6 Các kĩ thuật làm nổi đường biên ảnh Ta sử dụng hàm edge để dò tìm biên ảnh Cú pháp của hàm: g = edge(f, phương pháp dò tìm biên, tham sơ); đó: - Phương pháp Sobel tìm cạnh nhờ sử dụng phép tính xấp xỉ Sobel - Phương pháp Prewitt tìm cạnh nhờ sử dụng phép tính xấp xỉ Prewitt - Phương pháp Roberts tìm cạnh nhờ sử dụng phép tính xấp xỉ Roberts - Phương pháp log (Laplacian of Gaussian) tìm cạnh nhờ tìm phần tử đường chéo sau lọc ảnh gôc bằng bộ lọc laplace của Gauss - Phương pháp Canny tìm cạnh nhờ tìm quỹ tích lớn của gradient cua ảnh gơc Gradient tính toán nhờ sử dụng đạo hàm của bộ lọc Gauss Nguyễn Phương Hiền – D04VT2 53 Đồ án tốt nghiệp đại học Chương 3: Chương trình mơ 3.2.3 Nén ảnh 3.2.3.1 Nén ảnh dùng mã hóa Huffman Mã thu gọn và việc gán mã mô tả hàm huffman Việc tạo mã Huffman là trình nén ảnh Để thấy nén ảnh xây dựng mã Huffman, kí hiệu mã hóa phải chuyển đổi hoặc mã hóa cho phù hợp với mã tạo Ta sử dụng hàm mat2huff và huff2mat để mô tả việc mã hóa và giải mã Huffman Bằng cách loại bỏ dư thừa mã kết hợp với mã hóa nhị phân bit thông thường, ảnh có thể nén 80% so với ảnh gôc (thậm chí bao gồm thông tin bổ sung) 3.2.3.2 Nén ảnh dùng mã dự đoán không tổn thất Các hàm mat2lpc và lpc2mat thực q trình mã hóa giải mã dự đốn (trừ mã hóa kí hiệu và bước giải mã) Hàm Y = mat2lpc(X, F) mã hóa ma trận X sử dụng mã hóa dự đốn khơng tởn thất chiều Bợ dự đoán tuyến tính của X xây dựng dựa hệ sô F Hàm X = lpc2mat(Y, F) giải mã hóa ma trận đầu vào Y dựa hệ sơ dự đốn tún tính F 3.2.3.3 Nén ảnh JPEG dùng biến đổi DCT Hàm im2jpeg nén ảnh nhờ sử dụng một phép sấp xỉ JPEG Y = im2jpeg(X, QUALITY) nén ảnh X dựa biến đổi DCT 8x8, lượng tử hóa hệ sô và mã hóa kí hiệu Huffman Đầu vào QUALITY xác định sơ lượng thơng tin bị mà q trình nén thu Y là một cấu trúc mã hóa: Y.size: kích thước của X Y.numblocks: sô khôi mã hóa 8x8 Y.quality: hệ sô quality Y.huffman: Cấu trúc mã hóa Huffman Hàm im2jpeg xử lí đoạn 8x8 riêng biệt hoặc khôi của ảnh vào, khôi lần (đúng là toàn bộ ảnh lần) Hàm sử dụng hàm blkproc và im2col để làm đơn giản hóa phép toán Nguyễn Phương Hiền – D04VT2 54 Đồ án tốt nghiệp đại học Chương 3: Chương trình mơ Trong im2jpeg, hàm blkproc sử dụng để thuận tiện cho phép toán DCT và phép lượng tử hóa, và không chuẩn hóa hệ sô, đó im2col sử dụng để xác định hệ sô lượng tử sắp xếp lại Tương tự, ta có hàm jpeg2im thực chuỗi trình ngược cần thiết để giải nén một ảnh nén im2jpeg (bỏ qua lượng tử hóa) Nó sử dụng hàm: A = col2im(B, [M N], [MM NN], ‘distinct’); để tạo lại ảnh 2D từ cột của ma trận z, đó cột 64 phần tử l à khôi 8x8 của ảnh khôi phục lại Các tham sô A, B, [M N], và ‘distinct’ xác định cho hàm im2col, ma trận [MM NN] xác định chiều của ảnh A Hình 3.23 Giao diện nén ảnh JPEG và JPEG2000 3.2.3.4 JPEG2000 Hàm im2jpeg2k nén ảnh nhờ sử dụng phép tính sấp xỉ JPEG 2000 Y = im2jpeg2k(X, N, Q) nén ảnh X sử dụng biến đổi Wavelet JPEG 2000 N mức, lượng tử hóa ẩn hoặc và mã hóa kí hiệu Huffman Nếu lượng tử hóa vector Q chứa hai Nguyễn Phương Hiền – D04VT2 55 Đồ án tốt nghiệp đại học Chương 3: Chương trình mơ phần tử chúng giả thiết là hệ sô lượng tử hóa ẩn Y là cấu trúc mã hóa chứa liệu mã hóa Huffman và hệ sô thêm vào cần thiết cho việc giải mã jpeg2k2im Hàm im2jpeg2k chứa một sô hàm biến đổi Wavalet wavecut, wavepaste, wavefilter mà ta không sâu vào Hàm jpeg2k2im thực trình ngược lại để khôi phục ảnh gôc X = jpeg2k2im(Y) giải mã ảnh nén Y, khôi phục lại phép xấp xỉ của ảnh gôc X Y là một cấu trúc mã hóa 3.3 Kết luận chương Trong chương này, chương trình mơ phỏng cho kĩ tḥt nâng cao chất lượng và nén ảnh đã xây dựng Nhờ vậy, ta không hiểu rõ về kĩ thuật đã nêu mà tìm hiểu thêm về ngơn ngữ lập trình Matlab phở biến Sự khác nén JPEG và JPEG2000 cung ưu điểm của JPEG2000 đã làm rõ nhở xây dựng chương trình mơ phỏng JPEG2000 xem một bước tiến không kĩ thuật nén ảnh mà nén tiếng, nén video với hiệu cao và độ phức tạp vừa phải Hiện có nhiều nghiên cứu để hoàn thiện JPEG2000 ứng dụng xử lý video, một sô nghiên cứu khảo sát thực nghiệm cho thấy tính ưu việt của JPEG2000 về hiệu nén, khả hiệu chỉnh lỗi, và chất lượng hình ảnh Nguyễn Phương Hiền – D04VT2 56 Đồ án tốt nghiệp đại học luận Kết KẾT ḶN Xử lí hình ảnh là mợt vấn đề thực tiễn không phục vụ nhu cầu cá nhân mà hỗ trợ đắc lực cho việc nghiên cứu khoa học kĩ thuật cung vấn đề khác Vì vậy, đồ án của mình, em đã tiến hành nghiên cứu và tìm hiểu kĩ thuật để nâng cao chất lượng ảnh sô như: ảnh âm bản, cân bằng, lọc làm mịn hay lọc sắc nét… và kĩ thuật nén ảnh Bên cạnh đó, đồ án đã tìm hiểu và so sánh chuẩn nén ảnh phổ biến là JPEG và JPEG2000 Ngoài ra, em đã tiến hành thực bằng ngơn ngữ MATLAB để xây dựng chương trình mô phỏng tương đôi đầy đủ về kĩ thuật Do thời gian có hạn, đồ án chưa thể trình bày hết kĩ thuật nâng cao chất lượng và nén ảnh Vì vậy, hướng mở của đồ án là tiếp tục phát triển kĩ thuật sẵn có và tìm hiểu thêm cung mơ phỏng kĩ thuật chưa đề cập đến đồ án như: Nâng cao chất lượng ảnh: lọc đồng hình, tách nhiễu, khử nhiễu, làm trơn biên, … Nén ảnh: Các kĩ thuật nén DFT, SBC, mã hoá RLC,… Do thời gian hạn chế nên khơng tránh khỏi sai sót em viết báo cáo này Em mong nhận đóng góp của thầy cô cung bạn để đồ án của em có thể hoàn thiện Em xin chân thành cảm ơn Nguyễn Phương Hiền – D04VT2 57 Đồ án tốt nghiệp đại học Tài liệu tham khảo TÀI LIỆU THAM KHẢO “Matlab”, Bách khoa toàn thư mở Wikipedia, 10/10/2008 Raphael C.Gonzalez , Richard E.Woods, Steven L.Eddins, “Digital Image Processing Using Matlab”, Prentice Hall, năm 2004 Matlab Help, Matlab version 7.0 (R14) ThS Nguyễn Hoài Nam, “Các phương pháp sử dụng chuẩn nén ảnh JPEG”, Tạp chí Bưu chính viễn thơng kì 1, tháng 3/2004 Nguyễn Việt Cường, “JPEG - JPEG2000: Những bước ngoạn mục của kỹ thuật nén hình ảnh”, báo OSGColtech/12gio/vietbao, 9/9/2004 TS Nguyễn Thanh Bình, THS Võ Nguyễn Qc Bảo, “Xử lí âm thanh, hình ảnh”, dùng cho sinh viên hệ đại học từ xa, Học viện công nghệ Bưu chính Viễn thông, Hà Nội, năm 2007 PGS.TS Nguyễn Quang Hoan, “Xử lý ảnh”, dùng cho sinh viên hệ đại học từ xa, Học viện công nghệ Bưu chính Viễn thông, năm 2006 Nguyễn Phương Hiền – D04VT2 58 ... sử Matlab .32 3.1.2 Đặc điểm của Matlab va các ứng dụng .34 3.2 CHƯƠNG TRÌNH MÔ PHỎNG SỬ DỤNG MATLAB 35 3.2.1 Giao diện chương trình mô .35 3.2.2 Nâng cao. .. ảnh sô va kĩ thuật nâng cao chất lượng ảnh biến đổi ảnh xám, biến đổi âm bản, phương pháp lọc ảnh nhiễu - Chương giới thiệu về kĩ thuật nén ảnh va sâu va o chuẩn nén ảnh JPEG va JPEG2000... - Chương giới thiệu tởng quan về ngơn ngữ lập trình Matlab va chương trình mơ phỏng kĩ tḥt nâng cao chất lượng va nén ảnh bằng Matlab Nguyễn Phương Hiền – D04VT2 a Đồ án tốt nghiệp đại