Giao Trinh Xu Ly Anh So [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ KHOA CÔNG NGHỆ THÔNG TIN

# "

GIÁO TRÌNH

Người soạn: TS. NGUYỄN ĐĂNG BÌNH

HUẾ, 9 - 2011

LỜI MỞ ĐẦU Xử lý ảnh số là một trong những lĩnh vực phát triển rất nhanh của ngành Công nghệ thông tin. Trong những năm trở lại đây, phần cứng máy tính và các thiết bị liên quan xử lý ảnh số đã có sự tiến bộ vượt bậc về tốc độ tính toán, khả năng lưu trữ và xử lý đã thúc đầy nghiên cứu xử lý ảnh số ngày một đẩy mạnh trong cả lý thuyết và ứng dụng. Khái niệm ảnh số đã trở nên thông dụng với hầu hết mọi người trong xã hội và việc thu nhận ảnh số bằng các thiết bị cá nhân hay chuyên dụng cùng với việc đưa vào máy tính xử lý đã trở nên đơn giản. Nó được ứng dụng rộng rãi trong nhiều lĩnh vực khoa học và công nghệ. Chẵng hạn như thị giác máy tính, rô bốt, tìm kiếm tài liệu ảnh, hỗ trợ chẩn đoán hình ảnh y học, thiết kế ảnh, giải trí... xử lý ảnh số bằng máy tính đã giúp chúng ta thay đổi cách cảm nhận và sử dụng máy tính, nó đã trở thành những công cụ trực quan quan trọng không thể thiếu trong đời sống hằng ngày. Vì vậy môn “xử lý ảnh số” đã trở thành một trong những môn học chính trong các chuyên ngành Công nghệ thông tin ở các trường đại học trên cả nước. Với mong muốn đóng góp vào sự nghiệp đào tạo và nghiên cứu trong lĩnh vực này, tác giả biên soạn cuốn giáo trình Xử lý ảnh số dựa trên đề cương môn học hệ tín chỉ đã được duyệt. Cuốn sách tập trung vào các vấn đề từ cơ bản đến nâng cao của xử lý ảnh nhằm cung cấp một nền tảng kiến thức đầy đủ và chọn lọc nhằm giúp người đọc có thể tự tìm hiểu và xây dựng các chương trình ứng dụng liên quan trong xử lý ảnh. Cuốn sách “Giáo trình xử lý ảnh số” được biên soạn theo sát nội dung chương trình đào tạo cử nhân Công nghệ thông tin. Nội dung của giáo trình tập trung vào các vấn đề cơ bản của xử lý ảnh nhằm cung cấp một nền tảng kiến thức đầy đủ và chọn lọc nhằm giúp người đọc có thể tự tìm hiểu, tự học và nắm được những kiến thức từ cơ bản đến nâng cao của xử lý ảnh số, trên cơ sở đó có thể tiếp tục tự nghiên cứu sâu hơn cũng như giúp cho sinh viên xây dựng các chương trình liên quan đến xử lý ảnh, những thư viện cho riêng mình và phát triển các phần mềm ứng dụng xử lý ảnh cao hơn. Giáo trình được chia làm 6 chương, sau mỗi chương đều có phần bài tập để kiểm tra kiến thức và rèn luyện khả năng lập trình cho bạn đọc. Chương 1, trình bày tổng quan về xử lý ảnh, các ứng dụng của xử lý ảnh số, các khái niệm cơ bản, sơ đồ tổng quát của một hệ thống xử lý ảnh và các vấn đề cơ bản trong xử lý ảnh. Chương 2 trình bày về quá trình thu nhận, số hóa, biểu diễn và lưu trữ ảnh. Chương 3, trình bày các kỹ thuật nâng cao chất lượng ảnh dựa vào các thao tác với điểm ảnh, nâng cao chất lượng ảnh thông qua việc xử lý các điểm ảnh trong lân cận điểm ảnh đang xét. Chương này cũng trình bày các kỹ thuật nâng cao chất lượng ảnh nhờ vào các phép lọc không gian làm trơn, và lọc làm nét. Chương 4 giáo trình trình bày về các ý tưởng và một số phương pháp cơ bản sử dụng trong khôi phục ảnh như ước lược sự xuống cấp. bộ lọc Wiener, phục hồi ảnh dựa vào thích nghi. Chương 5, trình bày các kỹ thuật cơ bản trong việc trích chọn dấu hiệu đặc trưng của ảnh, kỹ thuật tìm xương theo khuynh hướng tính toán trục trung vị và hướng tiếp cận xấp xỉ nhờ các thuật toán làm mảnh song song và gián tiếp. Phát hiện biên và tách biên ảnh của các đối tượng ảnh theo cả hai khuynh hướng: Phát hiện biên trực tiếp và phát hiện biên gián tiếp và các phương pháp phân vùng ảnh. Cuối cùng là Chương 6 trình bày về nén ảnh, các khái niệm cơ bản của nén ảnh, nét dữ liệu ảnh có mất mát thông tin và

nén không mất mát thông tin, các phương pháp nén cơ bản như nén mã loạt dài thay đổi (RLC), nén Huffman và nén LZW. Tác giả bày tỏ lòng biết ơn chân thành tới các bạn đồng nghiệp trong Bộ môn Khoa học máy tính, Khoa công nghệ thông tin, trường Đại học Khoa học Huế đã động viên, góp ý và giúp đỡ để hoàn chỉnh nội dung cuốn sách này. Xin cám ơn Lãnh đạo Khoa Công nghệ thông tin, Ban giám hiệu Đại học Khoa học, Ban Giám đốc Đại học Huế và Dựa án đào tạo cán bộ tin học và đưa tin học vào nhà trường thuộc CTMTQG GD & ĐT năm 2011 đã hỗ trợ và tạo điều kiện để cho ra đời giáo trình này. Mặc dù rất cố gắng nhưng tài liệu này chắc chắn không tránh khỏi những sai sót. Chúng tôi xin trân trọng tiếp thu tất cả những ý kiến đóng góp của bạn đọc cũng như các bạn đồng nghiệp để có chỉnh lý kịp thời. Thư góp ý xin gửi về:

Nguyễn Đăng Bình Khoa Công nghệ thông tin – ĐH Khoa Học Huế. 77 Nguyễn Huệ, Thành phố Huế.

Điện thoại: 0543.826767

Email: [email protected]

Huế, ngày 27 tháng 9 năm 2011 TÁC GIẢ

MỤC LỤC Chương 1 - TỔNG QUAN VỀ XỬ LÝ ẢNH SỐ 1.1. Giới thiệu về xử lý ảnh ............................................................................................ 2 1.1.1. Xử lý ảnh số là gì................................................................................................. 4 1.1.2. Lịch sử của xử lý ảnh........................................................................................... 6 1.2. Các ứng dụng của xử lý ảnh ................................................................................... 8 1.2.1. Ảnh gamma........................................................................................................ 10 1.2.2. Ảnh X quang...................................................................................................... 11 1.2.3. Ảnh trong dải nhìn thấy được và ảnh hồng ngoại.............................................. 11 1.2.4. Ảnh trong dải sóng radio ................................................................................... 12 1.3. Các bước cơ bản của xử lý ảnh ............................................................................ 13 1.4. Một số khái niệm cơ bản về xử lý ảnh ................................................................. 15 1.4.1. Ảnh số là gì? ...................................................................................................... 15 1.4.2. Phần tử ảnh ........................................................................................................ 15 1.4.3. Mức xám ............................................................................................................ 16 1.4.4. Độ phân giải của ảnh ......................................................................................... 17 1.4.5. Biểu diễn ảnh ..................................................................................................... 17 1.4.6. Tăng cường, nâng cao chất lượng ảnh............................................................... 18 1.4.7. Khôi phục ảnh.................................................................................................... 18 1.4.8. Biến đổi ảnh ....................................................................................................... 19 1.4.9. Phân tích ảnh...................................................................................................... 19 1.4.10. Nhận dạng ảnh ................................................................................................. 20 1.4.11. Tra cứu ảnh ...................................................................................................... 22 1.4.12. Nén ảnh ............................................................................................................ 22 1.5. Một số quan hệ cơ bản giữa các điểm ảnh .......................................................... 23 1.5.1. Lân cận của điểm ảnh ........................................................................................ 23 1.5.2. Tính liền kề, tính liên thông, vùng và biên........................................................ 24 1.5.3. Thuật toán tìm các thành phần liên thông.......................................................... 26 1.5.4. Độ đo khoản cách giữa các điểm ....................................................................... 28 Câu hỏi ôn tập ............................................................................................................... 30 Chương 2- THU NHẬN, SỐ HÓA, BIỂU DIỄN, LỮU TRỮ ẢNH 2.1. Cấu trúc mắt người ............................................................................................... 31 2.2. Sự hình thành ảnh trong mắt người ................................................................... 34 2.3. Ánh sáng và phổ điện từ của ảnh sáng ............................................................... 35 2.4. Cảm biến và thu nhận ảnh ................................................................................... 36 2.4.1. Thu nhận ảnh sử dụng thiết bị cảm biến............................................................ 37 2.4.2. Mô hình tạo ảnh đơn giản .................................................................................. 38 2.5. Lấy mẫu và lượng hóa .......................................................................................... 40

2.5.1. Các khái niệm cơ bản trong lấy mẫu và lượng hóa ........................................... 40 2.5.2. Biểu diễn ảnh số................................................................................................. 43 2.5.3. Độ phân giải không gian và độ phân giải cấp xám............................................ 44 2.6. Các không gian màu thông dụng ........................................................................ 46 2.6.1. Màu sắc .............................................................................................................. 46 2.6.2. Tổng hợp màu .................................................................................................... 47 2.6.3. Không gian biểu diễn màu và hệ tọa độ màu .................................................... 47 2.6.4. Một số kỹ thuật hiển thị màu ............................................................................. 55 2.7. Một số mô hình và phương pháp biểu diễn ảnh ................................................ 56 2.7.1. Mô hình Raster................................................................................................... 56 2.7.2. Mô hình Vector.................................................................................................. 57 2.7.3. Một số phương pháp biểu diễn ảnh ................................................................... 57 2.8. Các loại định dạng tập tin cơ bản ....................................................................... 59 2.8.1. Khái niệm chung................................................................................................ 59 2.8.2. Quá trình đọc một tệp ảnh ................................................................................. 59 Câu hỏi ôn tập ............................................................................................................... 60 Chương 3 - NÂNG CAO CHẤT LƯỢNG ẢNH 3.1. Kiến thức cơ sở ...................................................................................................... 62 3.2. Các toán tử xử lý điểm ảnh................................................................................... 65 3.2.1. Phép biến đổi âm bản......................................................................................... 68 3.2.2. Phép biến đổi Log .............................................................................................. 69 3.2.3. Phép biến đổi lũy thừa ....................................................................................... 69 3.2.4. Các hàm biến đổi tuyến tính từng phần ............................................................. 73 3.3. Xử lý lược đồ mức xám ......................................................................................... 37 3.3.1. Cân bằng lược đồ mức xám ............................................................................... 77 3.3.2. Biến đổi độ tương phản dựa trên biến đổi lược đồ mức xám ............................ 81 3.4. Lọc tuyến tính ........................................................................................................ 81 3.5. Các bộ lọc không gian làm trơn ........................................................................... 87 3.5.1. Lọc tuyến tính làm trơn ..................................................................................... 87 3.5.2. Lọc thống kê thứ tự............................................................................................ 91 3.6. Các bộ lọc không gian tăng cường độ nét............................................................ 92 3.6.1. Khái niệm bộ lọc dựa trên đạo hàm................................................................... 92 3.6.2. Toán tử đạo hàm bậc nhất.................................................................................. 95 3.6.3. Toán tử đạo hàm bậc hai.................................................................................... 98 3.7. Cải thiện nâng cao chất lượng ảnh .................................................................... 102 3.6.1. Tăng cường ảnh sử dụng toán tử số học và logic ............................................ 102 3.6.1.1. Phép trừ ảnh .................................................................................................. 104 3.6.1.2. Phép trung bình ảnh ...................................................................................... 105 3.6.2. Tăng cường biên ảnh ....................................................................................... 107 Bài tập.......................................................................................................................... 107

Chương 4 - KHÔI PHỤC ẢNH 4.1. Giới thiệu .............................................................................................................. 112 4.2. Một số phương pháp khôi phục ảnh .................................................................. 113 4.2.1. Ước lượng sự xuống cấp.................................................................................. 113 4.2.2. Làm giảm nhiễu cộng ngẫu nhiên.................................................................... 115 4.2.2.1. Bộ lọc Wiener ............................................................................................ 115 4.2.2.2. Các biến thể của bộ lọc Wiener ................................................................. 120 4.2.2.3. Xử lý ảnh thích nghi .................................................................................. 122 4.2.2.4. Bộ lọc Wiener thích nghi........................................................................... 126 4.2.2.5. Phục hồi ảnh thích nghi dựa vào hàm rõ nhiễu ......................................... 131 4.2.2.6. Phục hồi ảnh thích nghi nhậy biên............................................................. 136 4.2.3. Giảm nhòe ảnh ................................................................................................. 140 Chương 5 - PHÂN TÍCH ẢNH 5.1. Trích chọn dấu hiệu đặc trưng của ảnh ............................................................ 145 5.1.1. Đặc trưng Topo................................................................................................ 145 5.1.1.1. Lược đồ phân bố mức xám ........................................................................ 145 5.1.1.2. Các vùng thuần nhất .................................................................................. 146 5.1.2. Đặc trưng về hình dạng.................................................................................... 145 5.1.2.1. Đặc trưng hình học .................................................................................... 145 5.1.2.2. Đặc trưng độ lệch cơ sở ............................................................................. 146 5.2. Xương và các kỹ thuật tìm xương...................................................................... 154 5.2.1. Giới thiệu ......................................................................................................... 154 5.2.2. Tìm xương dựa trên làm mảnh ........................................................................ 155 5.2.2.1. Sơ lược về thuật toán làm mảnh ................................................................ 155 5.2.2.2. Một số thuật toán làm mảnh ...................................................................... 156 5.2.3. Tìm xương không dựa trên làm mảnh ............................................................. 157 5.2.3.1. Khái quát về lược đồ Voronoi ................................................................... 157 5.2.3.2. Trục trung vị Voronoi rời rạc .................................................................... 158 5.2.3.3. Xương Voronoi rời rạc .............................................................................. 157 5.2.3.4. Thuật toán tìm xương................................................................................. 157 5.3. Phát hiện và trích chọn biên ảnh........................................................................ 163 5.3.1. Giới thiệu ......................................................................................................... 163 5.3.2. Các phương pháp phát hiện biên trực tiếp....................................................... 164 5.3.2.1. Kỹ thuật phát hiện biên Gradient............................................................... 164 5.3.2.1.1. Kỹ thuật Prewitt................................................................................... 166 5.3.2.1.2. Kỹ thuật Sobel ..................................................................................... 167 5.3.2.1.3. Kỹ thuật la bàn..................................................................................... 166 5.3.2.2. Kỹ thuật phát hiện biên Laplace ............................................................... 167 5.3.2.3. Kỹ thuật Canny ......................................................................................... 167 5.3.3. Các phương pháp phát hiện biên gián tiếp ...................................................... 164 5.3.3.1. Một số khái niệm cơ bản........................................................................... 170 5.3.3.2. Chu tuyến của một đối tượng ................................................................... 171

5.3.3.3. Thuật toán dò biên tổng quát .................................................................... 173 5.3.4. Phương pháp phát hiện biên dựa vào trung bình cục bộ ................................. 176 5.3.4.1. Biên và độ biến đổi về mức xám .............................................................. 176 5.3.4.2. Phát hiện biên dựa vào trung bình cục bộ................................................. 177 5.3.5. Phát hiện biên dựa vào các phép toán hình thái............................................... 176 5.3.5.1. Xấp xỉ trên và xấp xỉ dưới đối tượng ảnh ................................................. 180 5.4. Phân vùng ảnh ..................................................................................................... 183 5.4.1. Khái quát chung ............................................................................................... 183 5.4.2. Thuộc tính điểm ảnh, vùng ảnh ....................................................................... 186 5.4.3. Phân vùng ảnh theo ngưỡng biên độ ............................................................... 187 5.4.4. Phân vùng ảnh theo miền đồng nhất................................................................ 189 5.4.5. Phân vùng ảnh dựa vào phát triển vùng cục bộ ............................................... 189 5.4.6. Phân vùng ảnh dựa trên hợp và tách vùng....................................................... 191 5.4.7. Phân vùng ảnh dựa trên phân tích kết cấu ....................................................... 192 5.4.8. Phân vùng ảnh dựa trên sự phân lớp điểm ảnh................................................ 196 5.4.9. Phân vùng ảnh dựa vào lý thuyết đồ thị .......................................................... 198 5.4.10. Phân vùng ảnh dựa trên xử lý đa phân giải ................................................... 208 Câu hỏi ôn tập ............................................................................................................. 210 Chương 6 - NÉN ẢNH 6.1. Tổng quan về nén dữ liệu.................................................................................... 212 6.1.1. Khái niệm về nén ảnh ...................................................................................... 212 6.1.2. Phân loại dư thừa dữ liệu ................................................................................. 215 6.1.3. Phân loại phương pháp nén.............................................................................. 216 6.1.4. Sơ đồ của quá trình nén ảnh dựa trên phép biến đổi ảnh................................. 219 6.1.5. Ví dụ về phương pháp nén ảnh theo chuẩn JPEG ........................................... 219 6.2. Phương pháp nén ảnh mã độ dài thay đổi ........................................................ 222 6.3. Phương pháp nén ảnh Huffman......................................................................... 222 6.3.1. Ý tưởng ............................................................................................................ 222 6.3.2. Xây dựng cây mã Huffman.............................................................................. 230 6.3.3. Sử dụng cây mã Huffman ................................................................................ 234 6.3. Phương pháp nén ảnh LZW ............................................................................... 222 6.3.1. Giới thiệu ......................................................................................................... 222 6.3.2. Phương pháp .................................................................................................... 230 Câu hỏi ôn tập ............................................................................................................. 240 Tài liệu tham khảo...................................................................................................... 241

CHƯƠNG 1

TỔNG QUAN VỀ XỬ LÝ ẢNH SỐ

Chương này trình bày những vấn đề chính sau đây: 1.1 Giới thiệu về xử lý ảnh. 1.2 Các ứng dụng của xử lý ảnh 1.3 Các bước cơ bản trong xử lý ảnh 1.4 Một số khái niệm cơ bản về xử lý ảnh 1.5 Một số quan hệ cơ bản giữa các điểm ảnh

Mô hình quang trắc hình thành ảnh

Biểu đồ phân bố mức xám

Phân vùng ảnh

Cấu trúc ảnh từ chuyển động

Ảnh thu nhận (quả táo)

Trích lọc đặc tính (PCA, key point,…)

Phát hiện biên

Đối sánh, nhận dạng đối tượng

Hình minh họa một số ứng dụng cơ bản trong xử lý ảnh

Giáo trình xử lý ảnh số

1.1 Giới thiệu về xử lý ảnh Xử lý ảnh là một lĩnh vực mang tính khoa học và công nghệ. Nó là một ngành khoa học mới mẻ so với nhiều ngành khoa học khác nhưng tốc độ phát triển của nó rất nhanh, kích thích các trung tâm nghiên cứu, ứng dụng, đặc biệt là máy tính chuyên dụng riêng cho nó. Xử lý ảnh được đưa vào giảng dạy ở bậc đại học ở nước ta khoảng chục năm nay. Nó là môn học liên quan đến nhiều lĩnh vực và cần nhiều kiến thức cơ sở khác. Đầu tiên phải kể đến Xử lý tín hiệu số là một môn học hết sức cơ bản cho xử lý tín hiệu chung, các khái niệm về tích chập, các biến đổi Fourier, biến đổi Laplace, các bộ lọc hữu hạn… Thứ hai, các công cụ toán như Đại số tuyến tính, Sác xuất, thống kê. Một số kiến thứ cần thiết như Trí tuệ nhân tao, Mạng nơ ron nhân tạo cũng được đề cập trong quá trình phân tích và nhận dạng ảnh. Cùng với ngôn ngữ tự nhiên, hình ảnh đã đóng một vai trò hết sức quan trọng trong việc trao đổi thông tin. Tính trực quan của hình ảnh đã giúp cho con người hiểu rõ và sâu sắc hơn các thông tin cần thu thập. Người ta đã chứng minh được rằng, trong tất cả các kênh thu nhận thông tin của con người thì lượng thông tin thu nhận qua kênh thị giác chiếm khoảng 70%. Hình ảnh là kết quả của việc thu nhận và biểu diễn của năng lượng ánh sáng trải dài từ tia gamma (có bước sóng nhỏ) đến sóng radio (có bước sóng lớn). Tuy nhiên, mắt người chỉ cảm nhận được một vùng giới hạn rất nhỏ trong phổ điện từ. Ngược lại, máy tính có thể đọc được một vùng rất rộng trong phổ điện từ, từ tia gamma đến sóng radio. Nó có thể biểu diễn và xử lý những bức ảnh được sinh ra bởi những nguồn mà con người không thể nhận biết được, như ảnh siêu âm, ảnh hồng ngoại, ảnh trong vùng tia X, …. Do đó xử lý ảnh có một phạm vi ứng dụng tương đối rộng. Xử lý ảnh là một trong những cách tiếp cận phân tích, tổng hợp hình ảnh theo ý tưởng và mục đích của người sử dụng. Tuy xử lý ảnh là một trong những khoa học còn tương đối mới so với nhiều ngành khoa học khác, song những năm gần đây, xử lý ảnh và đồ hoạ đã phát triển một cách mạnh mẽ và đã gặt hái được khá nhiều thành công góp phần vào sự phát triển chung của ngành công nghệ thông tin.

Chương 1 – Tổng quan về xử lý ảnh số

Trang 2

Giáo trình xử lý ảnh số

Các phương pháp xử lý ảnh bắt nguồn từ hai ứng dụng: nâng cao chất lượng thông tin hình ảnh đối với mắt người và xử lý số liệu cho máy tự động. Một trong những ứng dụng đầu tiên xử lý ảnh là nâng cao chất lượng ảnh báo truyền qua cáp giữa London và NewYork vào những năm 1920. Thiết bị đặc biệt mã hóa hình ảnh (báo), truyền qua cáp và khôi phục lại ở phía thu. Vấn đề nâng cao chất lượng hình ảnh lúc đầu có liên quan đến việc lựa chọn quá trình in và phân bố các mức sáng (tông và độ phân giải của ảnh). Hệ thống đầu tiên (Bartlane) có khả năng mã hóa hình ảnh với 5 mức sáng. Khả năng này tăng lên 15 mức vào 1929. Việc nâng cao chất lượng ảnh bằng các phương pháp xử lý để truyền ảnh được nghiên cứu 35 năm sau đó. Do kỹ thuật máy tính phát triển, nên xử lý hình ảnh ngày càng phát triển. Năm 1964, các bức ảnh chụp mặt trăng được vệ tinh Ranger 7 (Mỹ) truyền về trái đất, được xử lý bằng máy tính để sửa méo (gây ra do camera truyền hình đặt trên vệ tinh ở các góc độ khác nhau). Các kỹ thuật cơ bản cho phép nâng cao chất lượng hình ảnh như làm nổi đường biên và lưu hình ảnh. Từ năm 1964 đến nay, phạm vi xử lý ảnh lớn mạnh không ngừng. Các kỹ thuật xử lý ảnh hiện nay được sử dụng để giải quyết hàng loạt các vấn đề, nhằm nâng cao chất lượng thông tin hình ảnh. Trong y học, các thuật toán máy tính nâng cao độ tương phản, hoặc mã hóa các mức sáng thành các màu để nội suy ảnh X-Quang và các hình ảnh y sinh học dễ dàng. Các nhà địa vật lý sử dụng kỹ thuật tương tự để nghiên cứu các mẫu vật chất từ vệ tinh. Các thuật toán nâng cao chất lượng ảnh và khôi phục hình ảnh được sử dụng để xử lý hình ảnh giảm chất lượng. Trong thiên văn học, các phương pháp xử lý ảnh nhằm khôi phục hình ảnh bị nhiễu hoặc bị mất do bóng (artifacts) sau khi chụp. Trong vật lý và các lĩnh vực có liên quan, kỹ thuật máy tính nâng cao được chất lượng ảnh trong các lĩnh vực như Plamas (có năng lượng cao) và microscopy điện tử. Tương tự, người ta đã ứng dụng xử lý ảnh có kết quả tốt trong viễn thám, sinh học, y tế hạt nhân, quân sự, công nghiệp... Nâng cao chất lượng và khôi phục ảnh bị nhiễu là quá trình xử lý ảnh dùng cho mục đích nội suy của mắt người. Lĩnh Chương 1 – Tổng quan về xử lý ảnh số

Trang 3

Giáo trình xử lý ảnh số

vực ứng dụng quan trọng thứ hai là xử lý ảnh số gắn liền với việc cảm nhận của máy. Trong lĩnh vực thứ hai, các cố gắng đều tập trung vào các quá trình trích thông tin ảnh và chuyển thành dạng thích hợp cho xử lý máy tính. Ví dụ như thông tin dùng cho máy tính là các moments thống kê, các hệ số biến đổi Fourier và đo khoảng cách nhiều chiều. Những vấn đề tiêu biểu của kỹ thuật xử lý ảnh được ứng dụng nhiều trong thực tế, có thể kể như: tự động nhận dạng đặc trưng, máy nhìn công nghiệp để điều khiển và kiểm tra sản phẩm, nhận dạng mục tiêu quân sự, tự động xử lý vân tay, hiển thị lên màn hình ảnh X-Quang và các mẫu máu, xử lý bằng máy các hình ảnh chụp từ vệ tinh để dự báo thời tiết, nén ảnh để lưu và truyền được nhiều hơn tín hiệu ảnh trong thông tin, máy tính, truyền hình thông thường và truyền hình có độ phân giải cao. 1.1.1 Xử lý ảnh số là gì Xử lý ảnh số là một ngành khoa học nhằm trang bị phương pháp luận, kỹ thuật để trang bị cho máy tính xử lý ảnh đầu vào trên máy tính với mục tiêu nhận được ảnh kết quả ở đầu ra theo mong muốn của con người…. Như vậy xử lý ảnh là một quá trình từ ảnh thu nhận đầu vào xử lý tăng cường và nâng cao chất lượng ảnh, phân tích ảnh, hiểu ảnh, mã hóa, nén ảnh… cho đến khi thu nhận được ảnh kết quả tốt hơn theo mong muốn của con người. Từ đó giúp cho con người có được cách nhìn trực quan hơn và sinh động hơn về hình ảnh. Xử lý ảnh số còn là việc sử dụng các thuật toán máy tính để xử lý các ảnh số dưới sự trợ giúp của máy tính. Xử lý ảnh số có thể chia làm bốn lĩnh vực, tùy thuộc vào loại công việc. Đó là cải thiện và nâng cao chất lượng ảnh, phục hồi ảnh, mã hóa ảnh, và hiểu ảnh. Trong cải thiện và nâng cao chất lượng ảnh, ảnh được xử lý để xem, như trong truyền hình, hoặc là được xử lý trước để trợ giúp hoạt động của máy móc, như trong nhận dạng đối tượng. Trong phục hồi ảnh, ảnh bị xuống cấp một số trường hợp, chẳng hạn bị nhòe, và mục đích là để giảm bớt hoặc loại bỏ hẳn ảnh hưởng sự xuống cấp. Phục hồi ảnh có liên quan mật thiết đến cải thiện ảnh. Khi ảnh xuống cấp, việc cải thiện ảnh thường đem lại kết quả làm giảm sự xuống cấp. Tuy nhiên có một số sự khác nhau giữa phục hồi ảnh và cải thiện ảnh. Trong phục hồi ảnh, một số ảnh lý tưởng Chương 1 – Tổng quan về xử lý ảnh số

Trang 4

Giáo trình xử lý ảnh số

thường bị xuống cấp và mục đích phục hồi là tạo ra ảnh sau xử lý giống như ảnh ban đầu. Trong việc cải thiện ảnh, mục đích cải thiện ảnh là làm cho ảnh sau khi xử lý trong đẹp hơn ảnh chưa xử lý. Để minh họa sự khác nhau này, hãy lưu ý rằng một ảnh gốc chưa xuống cấp không thể phục chế hơn nữa nhưng vẫn có thể được cải thiện bằng cách tăng độ nét. Trong mã hóa ảnh, mục đích là biểu diễn với một số ít bít nhất trong điều kiện chất lượng ảnh và độ rõ chấp nhận được cho từng ứng dụng cụ thể, chẳng hạn như hội nghị video. Mã hóa ảnh liên quan đến cải thiện ảnh và phục hồi ảnh. Nếu có thể cải tiến dáng vẻ bên ngoài của ảnh được phục hồi, hoawjcl àm giảm sự xuống cấp do các nguồn nhiễu, như nhiễu lượng tử mà thuật toán mã hóa ảnh gây ra, thì ta có thể làm giảm số lượng bít cần thiết để đại diện ảnh ở một mức chất lượng và độ rõ chấp nhận được. Trong việc hiểu (understanding) ảnh, đầu vào là ảnh, mục đích là diễn đạt nội dung ảnh bằng một hệ ký hiệu nào đó. Những ứng dụng của “hiểu ảnh” bao gồm thị giác máy tính, kỹ thuật rô bốt và nhận dạng mục tiêu. “Hiểu ảnh” khác với ba lĩnh vực khác của xử lý ảnh ở một khía cạnh chính. Trong cải tiến, phục hồi và mã hóa ảnh cả đầu vào và đầu ra đều là ảnh và khâu xử lý tiến hiệu là phần then chốt của các hệ thông đã thành công trên các lĩnh vực đó. Trong “hiểu ảnh”, đầu vào là ảnh, nhưng đầu ra thường là một biểu diễn bằng ký hiệu nội dung của ảnh đầu vào. Sự phát triển thành công của các hệ thống trong lĩnh vực này cần đến cả xử lý tín hiệu và những khái niệm trí tuệ nhân tạo. Trong hệ “hiểu ảnh” điển hình, xử lý tín hiệu được dùng cho công việc xử lý mức thấp như làm giảm sự xuống cấp và trích chọn các đường biên ảnh hoặc các đặc tính khác của ảnh, còn trí tuệ nhân tạo được dùng cho những công việc xử lý mức cao như thao tấc kí hiệu và quản lý cơ sở tri thức. Chúng ta chỉ nghiên cứu một số kỹ thuật xử lý ở mức thấp dùng trong “hiểu ảnh”, coi như một bộ phận của cải thiện, phục hồi và mã hóa ảnh. Nghiên cứu kỹ hơn về “hiểu ảnh” sẽ vượt qua phạm vi của giáo trình này và sẽ được đề cập trong các giáo trình về thị giác máy tính và nhận dạng tiếp theo. Trong chương này, chúng tôi trình bày cơ sở của xử lý ảnh. Những cơ sở đó sẽ đặt nền móng cho phần thảo luận về thu nhận, số hóa, biểu diễn, lưu trữ ảnh; cải

Chương 1 – Tổng quan về xử lý ảnh số

Trang 5

Giáo trình xử lý ảnh số

thiện và nâng cao chất lượng ảnh; khôi phục ảnh; phân tích ảnh và mã hóa, nén ảnh trong các chương sau. 1.1.2 Lịch sử của xử lý ảnh Ngành công nghiệp báo chí có thể được xem là ngành có ứng dụng đầu tiên của xử lý ảnh khi những bức ảnh lần đầu tiên được gửi đi giữa hai thành phố London và New York thông qua cáp Bartlane vào đầu những năm 1920. Trước đó, việc truyền dữ liệu ảnh giữa hai thành phố này mất khoảng một tuần bằng đường biển. Từ khi có cáp Bartlane, thời gian truyền dữ liệu ảnh xuyên qua Đại Tây Dương được giảm đi rất nhiều - xuống chỉ còn chưa đầy 3 tiếng. Một thiết bị chuyên dụng đã mã hóa dữ liệu ảnh trước khi truyền qua cáp, và sau đó, khi dữ liệu đến nơi sẽ được giải mã để tái tạo lại bức ảnh ban đầu.

Hình 1.1. Ảnh số được tạo ra vào năm Hình 1.2. Ảnh số được tạo năm 1922 từ 1921 từ băng mã hóa của một máy in card đục lỗ sau 2 lần truyền qua điện tín. (Nguồn: McFarlane) Đại Tây Dương. (Nguồn: McFarlane) Ảnh trong hình 1.1 và hình 1.2 được tạo ra từ các băng được đục lỗ bởi máy điện tín (ở nơi nhận). Vấn đề đầu tiên trong việc cải thiện chất lượng hiển thị ảnh trong những bức ảnh đầu tiên này là phương thức in ảnh và số cấp độ xám hiển thị.

Chương 1 – Tổng quan về xử lý ảnh số

Trang 6

Giáo trình xử lý ảnh số

Các hệ thống cáp Bartlane đầu tiên chỉ có khả năng mã hóa ảnh với 5 cấp độ xám, khả năng này tăng lên 15 cấp độ xám vào năm 1929.

Hình 1.3. Ảnh 15 cấp độ xám được truyền từ Luân Đôn đến New York năm 1929. (Nguồn: McFarlane) Trong khoảng thời gian này, người ta chỉ nói đến ảnh số, chứ chưa đề cập đến xử lý ảnh số, vì một lý do đơn giản là chưa có máy tính để xử lý nó. Do đó, có thể nói rằng lịch sử của xử lý ảnh gắn liền với lịch sử phát triển của máy tính điện tử. Khả năng lưu trữ, năng lực xử lý và hiển thị của máy tính là những nhân tố quan trọng trong quá trình xử lý ảnh. Việc nâng cao chất lượng ảnh bằng các phương pháp xử lý để truyền ảnh được liên tục nghiên cứu trong suốt 35 năm sau đó. Với sự phát triển của kỹ thuật máy tính, việc xử lý hình ảnh ngày càng hoàn thiện hơn. Máy tính đầu tiên đủ mạnh cho việc xử lý ảnh xuất hiện vào đầu những năm 1960. Năm 1964, tàu thăm dò vũ trụ Ranger 7 của Jet Propulsion Laboratory (Pasadena, California, USA) đã chụp được một bức ảnh của bề mặt mặt trăng. Từ năm 1964 đến nay, phạm vi xử lý ảnh số lớn mạnh không ngừng. Trong y học, các thuật toán nâng cao chất lượng hình ảnh, độ tương phản, hoặc mã hóa các mức xám đã được áp dụng để nội suy ảnh X-quang và các hình ảnh y học giúp cho việc chuẩn đoán và điều trị của các bác sĩ được thực hiện một cách dễ dàng và hiệu quả hơn. Việc phát minh ra kỹ thuật CAT (Computerized Axial Tomography: chụp cắt lớp điện toán theo trục) hay chụp CT (Computerized Tomography: chụp cắt lớp điện toán) là một trong những sự kiện quan trọng trong ứng dụng của xử lý ảnh trong việc chẩn đoán y học. Song song đó, các nhà địa vật lý, thiên văn học cũng sử Chương 1 – Tổng quan về xử lý ảnh số

Trang 7

Giáo trình xử lý ảnh số

dụng kỹ thuật tương tự để nghiên cứu các mẫu vật chất từ ảnh vệ tinh, theo dõi tài nguyên trái đất và thiên văn học.

Hình 1.4. Ảnh đầu tiên của mặt trăng được chụp bởi tàu vũ trụ Ranger 7 của Mỹ, vào 9 giờ 09 phút sáng ngày 31/7/1964 (Nguồn: NASA).

1.2 Các ứng dụng của xử lý ảnh Xử lý ảnh có nhiều ứng dụng trong thực tế. Một trong những ứng dụng sớm nhất là xử lý ảnh từ nhiêm vụ Ranger 7 tại phòng thí nghiệm JetPulsion vào những năm đầu của thập kỷ 60. Hệ thống chụp hình gắn trên tàu vũ trụ có một số hạn chế về kích thước và trọng lượng, do đó ảnh nhận được bị giảm chất lượng như bị mờ, méo hình học và nhiễu nền. Các ảnh đó được xử lý thành công nhờ máy tính số. Hình ảnh của mặt trăng và sao hỏa mà chúng ta thấy trong tất cả các tạp chí đều được xử lý bằng những máy tính số. Ngày nay, hầu hết các thông tin ảnh đều được chuyển sang dạng ảnh số. Vì vậy, trong gần như tất cả các lĩnh vực của các ngành kỹ thuật đều có ít nhiều liên quan đến ảnh số và sử dụng kỹ thuật xử lý ảnh số. Ứng dụng của xử lý ảnh có khả năng tác động mạnh mẽ nhất đến cuộc sống của chúng ta là lĩnh vực y tế. Soi chụp ảnh bừng máy tính dựa rteen cơ sở định lý cắt lớp (project slice) được dùng thường xuyên trong xét nghiệm lâm sang, ví dụ phát hiện và nhận dạng u não. Những ứng dụng y khoa khác của xử lý ảnh gồm cải thiện ảnh X quang và nhận dạng đường biên mạch máu từ những ảnh chụp bằng tia X (angiograms).

Chương 1 – Tổng quan về xử lý ảnh số

Trang 8

Giáo trình xử lý ảnh số

Có những dụng khác gần gủi hơn với cuộc sông gia đình là cải tiến ảnh tivi. Hình ảnh mà chúng ta thấy trên màn hình tivi có các khuyết tật do độ phân giải hạn chế, bi rung rinh, có ảnh ma, nhiều nền và trượt hình do đan dòng ở những mức độ khác nhau. Xử lý ảnh sô có tác động quyết định đến việc cải thiện chất lượng hình ảnh của những hệ truyền hình hiện tại và làm phát triển những hệ truyền hình mới có độ phân giải cao (HDTV). Một vấn đề nữa cúa chính truyền thông video như hội nghị video, điện thoại video là cần có dải tần rộng. Việc mã hóa thẳng chương trình video chất lượng quảng bá yêu cầu đến 100 triệu bit/giây. Nếu hy sinh một phần chất lượng và dùng các sơ đô mã hóa ảnh số thì có thể đưa ra thị trường những hệ truyền hình chất lượng đủ rõ với nhịp bit chỉ dưới 100 nghìn bit/giây. Người máy càng ngày đóng vai trò quan trọng trong công nghiệp và gia đinh. Chúng sẽ thực hiện những công việc rất nhàm chán hoặc nguy hiểm và những công việc mà tốc độ và độ chính xác vượt quá khả năng của con người. Khi người máy trở nên tinh vi hơn, thị giác máy tinh sẽ đóng vai trò ngày càng quan trọng. Người ta sẽ đòi hỏi người máy không những phát hiện và nhận dạng các bộ phận công nghiệp, mà còn “hiểu” được những gì chúng “thấy” và đưa ra những hành động phù hợp. Xử lý ảnh số có tác động rất lớn đến thị giác máy tính. Ngoài những lĩnh vực ứng dụng mọi người thường biết đến, xử lý ảnh số còn có một số ứng dụng khác ít được nói đến hơn. Người thi hành pháp luật thương chụp hình trong những môi trường không thuận lợi, và ảnh nhận được thường bị xuống cấp. Ví dụ, bức ảnh chụp thường bị nhòe, việc làm giảm độ nhòe là cần thiết trong nhận dạng. Những ứng dụng của xử lý ảnh số là rất lớn. Ngoài những ứng dụng đã thảo luận ở trên thì còn bao gồm các ứng dụng trong các lĩnh vực như điện tử gia đình, thiên văn học, sinh vật học, vật lý, nông nghiệp, địa lý, nhân chủng học, và nhiều lĩnh vực khác. Khả năng nhìn và nghe thấy hà hai phương tiện quan trọng nhất để Chương 1 – Tổng quan về xử lý ảnh số

Trang 9

Giáo trình xử lý ảnh số

con người nhận thức thế giới bên ngoài, do vậy không có gì đáng ngạc nhiên khi mà xử lý ảnh số có nhiều khả năng ứng dụng, không chỉ trong khoa học và kỹ thuật mà còn cả trong mọi hoạt động khác của con người. 1.2.1 Ảnh gramma

(a)

(b)

Hình 1.5. Ví dụ về ảnh Gamma (a) Ảnh bộ xương người (b) Ảnh PET (Positron Emission Tomography) (Nguồn: G.E. Medical Systems, Tiến sĩ Michael E. Casey) Ảnh gamma được sử dụng nhiều trong y học hạt nhân và thiên văn học. Trong y học hạt nhân, người ta tiêm vào người bệnh nhân một đồng vị phóng xạ có thể phát ra tia gamma (đồng vị phóng xạ này trong quá trình phát tin gamma sẽ tự phân hủy). Một máy dò tia gamma đặt ở ngoài sẽ thu những tia phóng xạ này để tạo ra ảnh gamma. Ảnh ở hình 1.5(a) thường được dùng trong việc xác định nhiễm trùng hay khối u trong cơ thể người. Hình 1.5(b) được tạo ra bởi kỹ thuật chụp PET (Positrion Emission Tomography: Quét cắt lớp phóng xạ ion dương). Nguyên tắc của kỹ thuật này tương tự như trong chụp CT nhưng thay vì sử dụng nguồn tia X ngoài cơ thể, bệnh nhân sẽ được tiêm vào một đồng vị phóng xạ có thể phóng các positron (ion Chương 1 – Tổng quan về xử lý ảnh số

Trang 10

Giáo trình xử lý ảnh số

dương) trong quá trình tự phân hủy. Khi một positron sau khi bay khoảng 3-5mm sẽ gặp một electron ở trong môi trường xung quanh, cả hai sẽ bị phân hủy và phát ra 2 tia gamma. Các tia này sẽ được hấp thụ bởi bộ dò tìm và ảnh 3D của bệnh nhân sẽ được tạo ra theo cơ chế như chụp cắt lớp CT. 1.2.2 Ảnh X-quang Kỹ thuật chụp bằng tia X sử dụng một ống phóng tia X (ống chân không) có cathode và anode. Khi Cathode được làm nóng sẽ phóng ra các electron ở trạng thái tự do, các electron này di chuyển với vận tốc cực lớn về phía anode (phía anode có rất nhiều positron). Khi các electron đánh vào một nguyên tử thì năng lượng sẽ được phát ra dưới dạng bức xạ tia X. Kỹ thuật chụp CT: có một máy dò hình khung tròn bao quanh đối tượng (bệnh nhân,…), một nguồn tia X được phóng ra và đi xuyên qua đối tượng. Tại mỗi vị trí của đối tượng, khung này sẽ quay. Các tia X này sẽ được thu lại tại đầu bên kia của khung. Khi đối tượng được di chuyển theo phương vuông góc với mặt phẳng của khung, máy sẽ vẽ được các lớp của đối tượng. Các lớp này sẽ được tổ hợp lại và để tạo nên hình ảnh không gian 3 chiều của đối tượng.

Hình 1.6. Chụp CT (Nguồn: Vietnamnet) 1.2.3 Ảnh trong dải nhìn thấy được và ảnh hồng ngoại Các nhà khí tượng học sử dụng các ảnh vệ tinh trong vùng tia hồng ngoại để xác định độ nóng của các vùng của khí quyển. Dữ liệu được chuyển thành một ảnh nhìn Chương 1 – Tổng quan về xử lý ảnh số

Trang 11

Giáo trình xử lý ảnh số

thấy được bằng mắt thường, sau khi đã được nâng cao chất lượng và phối màu để thể hiện các nhiệt độ khác nhau. Trong các ảnh đã được nâng cao chất lượng, màu đỏ thường biểu diễn nhiệt độ cao (nóng), ngược lại màu tím thường biểu diễn nhiệt độ thấp (lạnh).

Hình 1.7. Ảnh hồng ngoại của một cơn bão (Nguồn: Encarta) 1.2.4 Ảnh trong dải sóng radio

Hình 1.8. Ảnh cộng hưởng từ (MRI: Magnetic Resonance Imaging, Nguồn: Encarta) Hình 1.8 là ảnh chụp phần đầu của một người trưởng thành bình thường (không có bệnh tật). Ta thấy rõ não, các đường và các mô mềm; tiểu não nằm ở giữa phía bên trái, màu đỏ. Ảnh MRI: Sở dĩ có thể sử dụng kỹ thuật MRI cho con người vì trong Chương 1 – Tổng quan về xử lý ảnh số

Trang 12

Giáo trình xử lý ảnh số

cơ thể người chứa rất nhiều “nam châm” sinh học (lưỡng cực điện: thay vì từ tính, ở đây là điện tích). MRI tận dụng phân bố ngẫu nhiên của các proton, có từ tính cơ bản. Khi bệnh nhân được đặt vào khung tròn từ tính, quá trình phân tích diễn ra theo 3 bước. Đầu tiên, MRI tạo một trạng thái bình thường (steady state) trong cơ thể người bệnh bằng cách đưa người bệnh vào một từ trường đều mạnh khoảng 30.000 lần so với từ trường trái đất. Sau đó MRI kích thích cơ thể người bệnh bởi sóng radio để thay đổi hướng của các photon đang ở trong trạng thái bình thường (steadystate orientation of photons). Sau một thời gian nó sẽ ngừng phát sóng radio và bắt đầu “lắng nghe” sự phát sóng điện từ của cơ thể người bệnh tại một tần số nào đó (được chọn trước). Tín hiện phát ra này được sử dụng để tạo ra hình ảnh của cơ thể người theo nguyên lý tương tự như chụp cắt lớp CT. 1.3 Các bước cơ bản trong xử lý ảnh Để dễ hình dung, xét các bước cần thiết trong xử lý ảnh. Đầu tiên, ảnh tự nhiên từ thế giới ngoài được thu nhận qua các thiết bị thu (như Camera, máy chụp ảnh). Trước đây, ảnh thu qua Camera là các ảnh tương tự (loại Camera ống kiểu CCIR). Gần đây, với sự phát triển của công nghệ, ảnh màu hoặc đen trắng được lấy ra từ Camera, sau đó nó được chuyển trực tiếp thành ảnh số tạo thuận lợi cho xử lý tiếp theo. (Máy ảnh số hiện nay là một thí dụ gần gũi). Mặt khác, ảnh cũng có thể tiếp nhận từ vệ tinh; có thể quét từảnh chụp bằng máy quét ảnh. Hình 1.1 dưới đây mô tả các bước cơ bản trong xử lý ảnh.

Hình 1.9. Tổng quan các giai đoạn cơ bản trong xử lý ảnh Chương 1 – Tổng quan về xử lý ảnh số

Trang 13

Giáo trình xử lý ảnh số

Sơ đồ này bao gồm các thành phần như sau: Thu nhận ảnh: Ảnh có thể được thu nhận trong thế giới thực qua máy chụp hình, từ tranh ảnh thông qua máy quét hoặc từ vệ tinh qua các bộ cảm biến bằng tín hiệu số hoặc tín hiệu tương tự. Ảnh có thể nhận qua camera màu hoặc đen trắng. Thường ảnh nhận qua camera là ảnh tương tự (loại camera ống chuẩn CCIR với tần số 1/25, mỗi ảnh 25 dòng), cũng có loại camera đã số hoá (như loại CCD – Change Coupled Device) là loại photodiot tạo cường độ sáng tại mỗi điểm ảnh. Số hoá ảnh: Tất cả các thông tin được lưu trong máy tính đều ở dạng số. Vì vậy, ảnh sau khi thu nhận được từ các thiết bị khác cần phải được số hoá để lưu trữ hoặc có thể dùng để xử lý tiếp. Tiền xử lý: Sau bộ thu nhận, ảnh có thể nhiễu độ tương phản thấp nên cần đưa vào bộ tiền xử lý để nâng cao chất lượng. Chức năng chính của bộ tiền xử lý là lọc nhiễu, nâng độ tương phản để làm ảnh rõ hơn, nét hơn. Phân tích ảnh: Phân tích ảnh là một quá trình gồm nhiều giai đoạn nhỏ hơn: tăng cường ảnh để nâng cao chất lượng ảnh và khắc phục những thiếu sót trong quá trình thu nhận ảnh và số hoá ảnh như nhiễu, méo... làm nổi bật các đặc trưng chính của ảnh đảm bảo cho ảnh gần giống với hình ảnh thật nhất. Tiếp theo là phát hiện và trích chọn các đặc trưng như biên, màu, kết cấu,.... Phân vùng ảnh là tách một ảnh đầu vào thành các vùng thành phần để biểu diễn phân tích, nhận dạng ảnh. Ví dụ: để nhận dạng chữ (hoặc mã vạch) trên phong bì thư cho mục đích phân loại bưu phẩm, cần chia các câu, chữ về địa chỉ hoặc tên người thành các từ, các chữ, các số (hoặc các vạch) riêng biệt để nhận dạng. Đây là phần phức tạp khó khăn nhất trong xử lý ảnh và cũng dễ gây lỗi, làm mất độ chính xác của ảnh. Kết quả nhận dạng ảnh phụ thuộc rất nhiều vào công đoạn này. Đối sánh, nhận dạng ảnh: Là quá trình đối sánh, phân lớp ảnh, nhận biết được tên gọi của đối tượng. Kết quả của quá trình này phục vụ cho các mục đích và các ứng dụng khác nhau.

Chương 1 – Tổng quan về xử lý ảnh số

Trang 14

Giáo trình xử lý ảnh số

1.4 Một số khái niệm cơ bản về xử lý ảnh Trong phần này, chúng ta xem xét một số khái niệm cơ bản của xử lí ảnh. Đây là những khái niệm thường được đề cập đến trong các quá trình xử lí ảnh. 1.4.1. Ảnh số là gì? Ảnh số là ảnh thu được từ quá trình số hóa ảnh của một ảnh liên tục (ảnh khung cảnh). Có thể xem ảnh số là một tập hợp các điểm ảnh được biểu diễn với mức xám phù hợp dùng để mô tả ảnh gần với ảnh thật. Một ảnh đa cấp xám là một hàm độ sáng 2 chiều X(n, m) trong đó n,m là các giá trị tọa độ không gian và giá trị của ảnh X tại bất kỳ một điểm (n, m) sẽ tỷ lệ với cường độ sáng của ảnh tại điểm đó. Nếu chúng ta có một ảnh nhiều màu, X là một vector, mỗi thành phần của nó xác định cường độ sáng của ảnh tại điểm (n, m) tương ứng từng dải màu. Mỗi phần tử của ma trận được gọi là một điểm ảnh. Thông thường, kích thước của một ma trận là vài trăm điểm ảnh và có vài chục mức xám khác nhau. Vì vậy một ảnh số có thể biểu diễn như sau:

⎡ X ( 0 ,0 ) ⎢ X (1,0 ) X (n, m ) = ⎢ ⎢ ... ⎢ ⎣ X ( n ,0 )

X ( 0 ,1) X (1,1) ... X ( n ,1)

... ... ... ...

X (0, m ) ⎤ X (1, m ) ⎥⎥ ... ⎥ ⎥ X (n, m ⎦

trong đó n=N-1, m=M-1; với M là chiều cao của ảnh, N là chiều rộng của ảnh. Nếu L là mức xám cao nhất của ảnh thì 0≤ X(n, m) ≤ L-1. Thông thường, các giá trị của N, M, L là lũy thừa của 2. 1.4.2. Phần tử ảnh (Pixel - Picture Element) Ảnh trong thực tế là một ảnh liên tục về không gian và về giá trị độ sáng. Để có thể xử lý ảnh bằng máy tính thì cần thiết phải tiến hành số hóa ảnh. Trong quá trình số hóa, người ta biến đổi tín hiệu liên tục sang tín hiệu rời rạc thông qua quá trình lấy mẫu (rời rạc hoá về không gian) và lượng hoá thành phần giá trị (rời rạc Chương 1 – Tổng quan về xử lý ảnh số

Trang 15

Giáo trình xử lý ảnh số

hoá biên độ giá trị) mà bằng mắt thường ta khó phân biệt được hai mức xám kề nhau. Trong trường hợp này, người ta sử dụng khái niệm phần tử ảnh hay là điểm ảnh (Picture Element - Pixel). Trong khuôn khổ ảnh hai chiều. Mỗi điểm ảnh gồm có một cặp toạ độ (x,y) và giá trị biểu diễn độ sáng (cấp xám) cụ thể. Các cặp tọa độ (x, y) tạo nên độ phân giải (resolution). Chẳng hạn như màn hình máy tính có độ phân giải là 480×640 nghĩa là trên màn hình có 480×640 điểm ảnh (x, y), chiều rộng 80 điểm ảnh, chiều dài 640 điểm ảnh. Điểm ảnh (pixel) là một phần tử của ảnh số tại tọa độ (x,y) với độ xám hoặc màu nhất định. Điểm ảnh được xem như là dấu hiệu hay cường độ sáng tại 1 toạ độ trong không gian của đối tượng và ảnh được xem như là 1 tập hợp các điểm ảnh. Kích thước và khoảng cách giữa các điểm ảnh đó được chọn thích hợp sao cho mắt người cảm nhận sự liên tục về không gian và mức xám (hoặc màu) của ảnh số gần như thật. Mỗi phần tử trong ma trận được gọi là một phần tử ảnh. ™ Ta cần phân biệt Pixel (phần tử ảnh) với khái niệm pixel hay đề cập đến trong hệ thống đồ hoạ máy tính. 1.4.3. Mức xám . Mức xám (gray-level) là kết quả của sự mã hoá tương ứng một cường độ sáng của mỗi điểm ảnh với một giá trị số của quá trình lượng hoá. Là số các giá trị có thể có của các điểm ảnh của ảnh. Một điểm ảnh (pixel) có hai đặc trưng cơ bản là vị trí (x, y) của điểm ảnh và độ xám của nó. Dưới đây chúng ta xem xét một số khái niệm và thuật ngữ thường dùng trong xử lý ảnh. a) Định nghĩa: Mức xám của điểm ảnh là cường độ sáng của nó được gán bằng giá trị số tại điểm đó. b) Các thang giá trị mức xám thông thường: 16, 32, 64, 128, 256 (Mức 256 là mức phổ dụng. Lý do: từ kỹ thuật máy tính dùng 1 byte (8 bit) để biểu diễn 8

mức xám: Mức xám dùng 1 byte biểu diễn: 2 =256 mức, tức là từ 0 đến 255). c) Ảnh đen trắng: là ảnh có hai màu đen, trắng (không chứa màu khác) với mức xám ở các điểm ảnh có thể khác nhau. Chương 1 – Tổng quan về xử lý ảnh số

Trang 16

Giáo trình xử lý ảnh số

1

d) Ảnh nhị phân: ảnh chỉ có 2 mức đen trắng phân biệt tức dùng 1 bit mô tả 2 mức khác nhau. Nói cách khác: mỗi điểm ảnh của ảnh nhị phân chỉ có thể là 0 hoặc 1. e) Ảnh màu: trong khuôn khổ lý thuyết ba màu (Red, Blue, Green) để tạo nên thế giới màu, người ta thường dùng 3 byte để mô tả mức màu, khi đó các giá 8*3

24

trị màu: 2 =2 ≈ 16,7 triệu màu. Cách mã hoá kinh điển thường dùng là 16, 32 hay 64 mức. Mã hoá 256 mức là phổ dụng nhất vì lý do kỹ thuật. Vì 28 = 256 (0,1,2,...,255), nên với 256 mức xám, mỗi pixel sẽ được mã hóa bởi 8 bit. 1.4.4. Độ phân giải của ảnh Định nghĩa: Độ phân giải (Resolution) của ảnh là mật độ điểm ảnh được ấn định trên một ảnh số được hiển thị. Theo định nghĩa, khoảng cách giữa các điểm ảnh phải được chọn sao cho mắt người vẫn thấy được sự liên tục của ảnh. Việc lựa chọn khoảng cách thích hợp tạo nên một mật độ phân bổ, đó chính là độ phân giải và được phân bố theo trục x và y trong không gian hai chiều. Ví dụ: Độ phân giải của ảnh trên màn hình CGA (Color Graphic Adaptor) là một lưới điểm theo chiều ngang màn hình: 320 điểm chiều dọc * 200 điểm ảnh (320*200). Rõ ràng, cùng màn hình CGA 12” ta nhận thấy mịn hơn màn hình CGA 17” độ phân giải 320*200. Lý do: cùng một mật độ (độ phân giải) nhưng diện tích màn hình rộng hơn thì độ mịn (liên tục của các điểm) kém hơn. 1.4.5. Biểu diễn ảnh Trong biểu diễn ảnh người ta thường dùng các phần tử đặc trưng của ảnh là pixel. Nhìn chung có thể xem một hàm hai biến f(x,y) chứa các thông tin như là biểu diễn của một ảnh. Các mô hình biểu diễn ảnh cho ta một mô tả logic hay định lượng các tính chất của hàm này. Một số mô hình thường được dùng trong biểu diễn ảnh: mô hình toán, mô hình thống kê. Trong mô hình toán, ảnh hai chiều được biểu diễn nhờ các hàm hai biến trực giao gọi là các hàm cơ sở. Với mô hình thống kê, một ảnh được coi như là một phần tử của một tập hợp đặc trưng bởi các đại lượng như: kỳ vọng, hiệp biến, phương sai, moment. Chương 1 – Tổng quan về xử lý ảnh số

Trang 17

Giáo trình xử lý ảnh số

1.4.6. Tăng cường, nâng cao chất lượng ảnh Đây là một bước quan trọng, tạo tiền đề cho xử lý ảnh. Mục đích chính nhằm làm nổi bật một số đặc tính của ảnh như thay đổi độ tương phản, lọc nhiễu, nổi biên, làm trơn biên, khuyếch đại ảnh... nhằm phục vụ cho việc hiển thị hoặc các quá trình phân tích tiếp theo. Tùy theo các ứng dụng khác nhau mà chúng ta có các kỹ thuật nâng cao chất lượng ảnh khác nhau. Nâng cao chất lượng ảnh có quan hệ gần gũi với khôi phục ảnh. Khi một ảnh bị nhiễu thì khôi phục ảnh gốc thường đưa đến nâng cao chất lượng ảnh. Có một số khác biệt giữa khôi phục ảnh và nâng cao chất lượng ảnh. Trong khôi phục ảnh, một ảnh gốc bị nhiễu thì mục tiêu là làm sao cho ảnh sau khi xử lý càng gần giống ảnh gốc càng tốt. Còn trong nâng cao chất lượng ảnh thì mục tiêu là làm cho ảnh sau khi xử lý có được chất lượng tốt hơn khi chưa xử lý. Như vậy một ảnh không bị nhiễu thì không thể được xử lý bằng các kỹ thuật khôi phục ảnh nhưng ảnh đó có thể được xử lý bằng các kỹ thuật nâng cao chất lượng ảnh. Nhưng một ảnh bị nhiễu thì nó có thể được xử lý vừa bằng các kỹ thuật khôi phục ảnh vừa bằng các kỹ thuật nâng cao chất lượng ảnh. 1.4.7. Khôi phục ảnh Khôi phục ảnh là quá trình loại bỏ hay tối thiểu hoá các ảnh hưởng của môi trường bên ngoài hoặc do các hệ thống thu nhận ảnh gây ra. Về nguyên tắc, khôi phục ảnh nhằm xác định mô hình toán học của quá trình đã gây ra biến dạng, tiếp theo là dùng ánh xạ ngược để xác định lại ảnh. Bất kỳ một ảnh nào được thu bằng các thiết bị điện, quang điện hay quang học thường bị nhiễu bởi môi trường cảm biến của các thiết bị đó. Các loại nhiễu có thể là nhiễu hệ thống, bị mờ do lệch tiêu điểm camera, nhiễu ngẫu nhiên do chuyển động giữa camera và đối tượng được chụp, nhiễu do khí quyển… Khôi phục ảnh là dùng các bộ lọc để lọc các ảnh bị nhiễu nhằm giảm tối thiểu sự ảnh hưởng của các loại nhiễu này để cho ra ảnh kết quả càng gần giống ảnh gốc càng tốt. Hiệu quả của các bộ lọc khôi phục ảnh phụ thuộc vào sự nhận biết về quá trình nhiễu cùng với quá trình thu nhận ảnh. Khôi phục ảnh thường được xử lý trên Chương 1 – Tổng quan về xử lý ảnh số

Trang 18

Giáo trình xử lý ảnh số

miền tần số là chủ yếu. Bao gồm các kỹ thuật lọc ngược, lọc bình phương tối thiểu (Wiener). 1.4.8. Biến đổi ảnh Biến đổi ảnh là việc sử dụng một lớp các ma trận đơn vị và các kỹ thuật thường dùng để biến đổi ảnh như: Biến đổi Fourier, Sin, Cosin, tích Kronecker, biến đổi Karhumen Loeve… 1.4.9. Phân tích ảnh Là khâu quan trọng trong quá trình xử lý ảnh để tiến tới hiểu ảnh. Trong phân tích ảnh việc trích chọn đặc điểm là một bước quan trọng. Các đặc điểm của đối tượng được trích chọn tuỳ theo mục đích nhận dạng trong quá trình xử lý ảnh. Có thể nêu ra một số đặc điểm của ảnh sau đây: Đặc điểm không gian: Phân bố mức xám, phân bố xác suất, biên độ, điểm uốn… Đặc điểm biến đổi: Các đặc điểm loại này được trích chọn bằng việc thực hiện lọc vùng (zonal filtering). Các bộ vùng được gọi là “mặt nạ đặc điểm” (feature mask) thường là các khe hẹp với hình dạng khác nhau (chữ nhật, tam giác, cung tròn...) Đặc điểm biên và đường biên: Đặc trưng cho đường biên của đối tượng và do vậy rất hữu ích trong việc trích trọn các thuộc tính bất biến được dùng khi nhận dạng đối tượng. Các đặc điểm này có thể được trích chọn nhờ toán tử gradient, toán tử la bàn, toán tử Laplace, toán tử “chéo không” (zero crossing) v.v.. Việc trích chọn hiệu quả các đặc điểm giúp cho việc nhận dạng các đối tượng ảnh chính xác, với tốc độ tính toán cao và dung lượng nhớ lưu trữ giảm xuống. Phân tích ảnh là quá trình suy luận, tính toán dựa vào các đặc tính thể hiện trên hình ảnh để từ đó rút ra được các thông tin định lượng về hình ảnh. Phân tích ảnh có thể tách biệt các vật thể trên ảnh, đo lường, phân loại, mô tả, so sánh chúng. Chương 1 – Tổng quan về xử lý ảnh số

Trang 19

Giáo trình xử lý ảnh số

Mặt khác, từ việc phân tích ảnh cũng có thể suy ra các số liệu thống kê về hình ảnh. Liên quan đến việc xác định các độ đo định lượng của một ảnh để đưa ra một mô tả đầy đủ về ảnh. Có nhiều kỹ thuật khác nhau hỗ trợ phân tích ảnh như: các kỹ thuật lọc, các kỹ thuật tách, hợp dựa trên các tiêu chuẩn đánh giá về màu sắc, cường độ, kết cấu… và các kỹ thuật phân lớp dựa theo cấu trúc. Phân vùng ảnh là một hướng riêng của phân tích ảnh. Phân vùng ảnh bao gồm các kỹ thuật phân tách các vùng của ảnh thành những vùng có những nét đặc trưng của nó hoặc tách biệt hoàn toàn giữa các vùng ảnh này với các vùng ảnh khác trên ảnh và nền. Mục đích là giúp cho dễ quan sát và dễ xử lý và hỗ trợ cho các giai đoạn tiếp theo của hệ thống xử lý ảnh. 1.4.10. Nhận dạng ảnh Là một khoa học nhằm trang bị phương pháp luận để trang bị cho máy tính có khả năng nhận thức. Nhận dạng tự động (automatic recognition), mô tả đối tượng, phân loại và phân nhóm các mẫu là những vấn đề quan trọng trong thị giác máy, được ứng dụng trong nhiều ngành khoa học khác nhau. Các đối tượng nhận dạng là các mẫu đối tượng. Tuy nhiên, một câu hỏi đặt ra là: mẫu (pattern) là gì? Watanabe, một trong những người đi đầu trong lĩnh vực này đã định nghĩa: “Ngược lại với hỗn loạn (chaos), mẫu là một thực thể (entity), được xác định một cách ang áng (vaguely defined) và có thể gán cho nó một tên gọi nào đó”. Ví dụ mẫu có thể là ảnh của vân tay, ảnh của một vật nào đó được chụp, một chữ viết, khuôn mặt người hoặc một ký đồ tín hiệu tiếng nói. Khi biết một mẫu nào đó, để nhận dạng hoặc phân loại mẫu đó có thể: Hoặc phân loại có mẫu (supervised classification), chẳng hạn phân tích phân biệt (discriminant analyis), trong đó mẫu đầu vào được định danh như một thành phần của một lớp đã xác định. Hoặc phân loại không có mẫu (unsupervised classification hay clustering) trong đó các mẫu được gán vào các lớp khác nhau dựa trên một tiêu chuẩn đồng dạng nào đó. Các lớp này cho đến thời điểm phân loại vẫn chưa biết hay chưa được định danh.

Chương 1 – Tổng quan về xử lý ảnh số

Trang 20

Giáo trình xử lý ảnh số

Nhận dạng đối tượng ảnh quá trình từ không gian biểu diễn lớp đối tượng vào không gian tên gọi của đối tượng (mỗi đối tượng được gán một cái tên). Hay nói một cách khác nhận dạng đối tượng chính là quá trình tiến hành phân lớp đối tượng cần nhận dạng vào các lớp. Có hai lớp phương pháp tiếp cận chính trong quá trình phân lớp các đối tượng, đó là các phương pháp phân lớp dựa vào đường ranh giới phân biệt giữa các lớp (Nơ ron network, phương pháp véc tơ tựa, boosting, trường ngẫu nhiên có điều kiện, nhận dạng dựa vào đa nhân…) và các phương pháp phân lớp dựa vào phân bố thống kế của các lớp (mô hình markov ẩn, phương pháp phân loại thống kê, Bayesian, trường marko ngẫu nhiên). Trên cơ sở các bài toán thì sẽ có các mô hình nhận dạng phù hợp và các thuật toán đi kèm các mô hình đó. Ngoài ra còn một số cách tiếp cận khác trong lý thuyết nhận dạng đó là đối sánh mẫu dựa trên các đặc trưng được trích chọn, nhận dạng cấu trúc (xâu chuỗi, đồ thị,..) nhận dạng dựa trên biểu diễn ngữ pháp văn phạm. Hệ thống nhận dạng tự động bao gồm 4 khâu tương ứng với bốn giai đoạn chủ yếu sau: 1. 2. 3. 4.

Thu nhận dữ liệu , tiền xử lý, trích chọn đặc tính Biểu diễn dữ liệu Huấn luyện dữ liệu Nhận dạng, ra quyết định

Trên thực tế, người ta đã áp dụng kỹ thuật nhận dạng khá thành công với nhiều bài khác nhau như: nhận dạng ảnh vân tay, nhận dạng chữ (chữ cái, chữ số, chữ có dấu). Nhận dạng chữ in hoặc đánh máy phục vụ cho việc tự động hóa quá trình đọc tài liệu, tăng nhanh tốc độ và chất lượng thu nhận thông tin từ máy tính. Các bài toán và ứng dung nhận dạng rất phong phú như: Nhận dạng Khuôn mặt, nhận dạng các biểu cảm của con người, nhận dạng các cử chỉ và hoạt động của con người, nhận dạng người đi bộ, xây dựng các hệ thống giám sát thông minh, rô bốt, các hệ thống dự báo dựa vào hình ảnh….

Chương 1 – Tổng quan về xử lý ảnh số

Trang 21

Giáo trình xử lý ảnh số

1.4.11. Tra cứu ảnh Để có thể tra cứu được ảnh chúng ta cũng cần mô tả được ảnh như trong quá trình nhận dạng ảnh. Tra cứu ảnh có nhiệm vụ tìm được ảnh theo yêu cầu của người sử dụng. Có hai kỹ thuật tra cứu ảnh thường được sử dụng đó là: tra cứu ảnh dựa trên từ khoá và tra cứu ảnh dựa trên nội dung. Trong những năm gần đây đã có nhiều hệ thống tra cứu ảnh được nghiên cứu thành công và triển khai thành các hệ thống tả cứu ảnh thương mại như: tra cứu địa lý, ra cứu tem thư, tra cứu ảnh y học... 1.4.12. Nén ảnh . Ảnh dù ở dạng nào vẫn chiếm không gian nhớ rất lớn. Khi mô tả ảnh người ta đã đưa kỹ thuật nén ảnh vào. Nén ảnh là làm giảm lượng số liệu cần để biểu diễn một ảnh. Cơ sở của vấn đề nén ảnh là quá trình giảm những số liệu dư thừa. Từ quan điểm toán học, đó là biến đổi một dãy pixel 2 chiều thành một tập số liệu không liên kết thống kê. Sự biến đổi được áp dụng trước để lưu trữ hoặc truyền ảnh. Quá trình sau nén ảnh là giải nén để tạo lại ảnh gốc hoặc một xấp xỉ của ảnh gốc. Hiện nay, các chuẩn MPEG được dùng với ảnh đang phát huy hiệu quả. Nhằm giảm thiểu không gian lưu trữ. Thường được tiến hành theo cả hai cách khuynh hướng là nén có bảo toàn và không bảo toàn thông tin. Nén không bảo toàn thì thường có khả năng nén cao hơn nhưng khả năng phục hồi thì kém hơn. Trên cơ sở hai khuynh hướng, có 4 cách tiếp cận cơ bản trong nén ảnh: • Nén ảnh thống kê: Kỹ thuật nén này dựa vào việc thống kê tần xuất xuất hiện của giá trị các điểm ảnh, trên cơ sở đó mà có chiến lược mã hóa thích hợp. Một ví dụ điển hình cho kỹ thuật mã hóa này là *.TIF • Nén ảnh không gian: Kỹ thuật này dựa vào vị trí không gian của các điểm ảnh để tiến hành mã hóa. Kỹ thuật lợi dụng sự giống nhau của các điểm ảnh trong các vùng gần nhau. Ví dụ cho kỹ thuật này là mã nén *.PCX • Nén ảnh sử dụng phép biến đổi: Đây là kỹ thuật tiếp cận theo hướng nén không bảo toàn và do vậy, kỹ thuật thướng nến hiệu quả hơn. *.JPG chính là tiếp cận theo kỹ thuật nén này. Chương 1 – Tổng quan về xử lý ảnh số

Trang 22

Giáo trình xử lý ảnh số

• Nén ảnh Fractal: Sử dụng tính chất Fractal của các đối tượng ảnh, thể hiện sự lặp lại của các chi tiết. Kỹ thuật nén sẽ tính toán để chỉ cần lưu trữ phần gốc ảnh và quy luật sinh ra ảnh theo nguyên lý Fractal. Một số phương pháp, thuật toán nén đề cập ở các chương 6. 1.5 Một số quan hệ cơ bản giữa các điểm ảnh Trong phần này, chúng ta sẽ xem xét các mối quan hệ cơ bản giữa các điểm ảnh trong ảnh số. Để dễ dàng trong quá trình xử lý, một ảnh số được ký hiệu bởi f(x,y) và các điểm ảnh được ký hiệu bởi các chữ cái thường chẳng hạn như p, q. 1.5.1 Lân cận của điểm ảnh Giả sử có điểm ảnh p tại toạ độ (x, y), p có 4 điểm lân cận gần nhất theo chiều đứng và ngang (có thể coi như lân cận 4 hướng chính: Đông, Tây, Nam, Bắc). Một điểm ảnh p tại tọa độ (x, y) có: • Tập 4-lân-cận-ngang-dọc: N 4 ( p ) = {( x + 1, y ), ( x − 1, y ), ( x, y = 1), ( x, y − 1)} • Tập 4-lân-cận-chéo: N D ( p ) = {( x + 1, y + 1), ( x + 1, y − 1), ( x − 1, y + 1), ( x − 1, y − 1)} Các điểm lân cận chéo ND(p) (Có thể coi lân cận chéo la 4 hướng: ĐôngNam, Đông-Bắc, Tây-Nam, Tây-Bắc) • Tập 8-lân-cận: N 8 ( p ) = N 4 ( p ) ∪ N d ( p )

Hình 1.10. Lân cận các điểm ảnh của tọa độ (x,y) Một số lân cận (4-lân-cận-ngang-dọc, 4-lân-cận-chéo, 8-lân-cận) của p sẽ nằm ngoài ảnh số nếu p nằm trên biên của ảnh. Chương 1 – Tổng quan về xử lý ảnh số

Trang 23

Giáo trình xử lý ảnh số

1.5.2 Tính liền kề, tính liên thông, vùng và biên Tính liên thông giữa các điểm ảnh là một khái niệm cơ sở để đơn giản hóa định nghĩa một số khái niệm trong ảnh số, chẳng hạn như vùng và biên của các đối tượng. Để xác định tính liên thông của hai điểm ảnh, thì chúng cần thỏa mãn một số tiêu chuẩn nào đó. Ở đây, chúng phải là các lân cận và các cấp xám phải thỏa mãn tiêu chuẩn đề ra về tính tương tự. Ví dụ, trong ảnh nhị phân với các giá trị là 0 và 1, hai điểm ảnh có thể là 4-lân-cận, nhưng chúng chỉ được gọi là liên thông nếu và chỉ nếu chúng có các giá trị bằng nhau. 1.5.2.1 Tính liền kề Cho V là một tập các giá trị cấp xám dùng để xác định tính liền kề. Trong ảnh nhị phân ta có , nghĩa là liên kết giữa các điểm ảnh có giá trị bằng 1. V={1}Trong ảnh đa cấp xám, tập có thể chứa nhiều giá trị hơn. Ví dụ, tính liền kề của các điểm ảnh với một khoảng giá trị cấp xám có thể từ 0 đến 255, tập V có thể là một tập con của 256 giá trị này. Chúng ta có ba loại liền kề sau: V a) 4-liền-kề: Hai điểm ảnh p và q với giá trị từ V là 4-liền-kề nếu q thuộc tập N 4 ( p)

b) 8-liền-kề: Hai điểm ảnh p và q với giá trị từ V là 8-liền-kề nếu q thuộc tập . N 8 ( p)

c) m-liền-kề (liền kề hỗn hợp): Hai điểm p và q với giá trị từ V là m-liền-kề nếu thỏa một trong hai điều kiện sau: (i) q thuộc N 4 ( p) hoặc (ii) q thuộc N D ( p ) và tập N 4 ( p) ∩ N 4 ( q ) không có điểm ảnh nào có giá trị từ V. m-liền-kề dùng để ước lượng tính nhập nhằng của 8-liền-kề (xem ví dụ ở hình 1.11). Xét điểm ảnh được cho trong hình 1.11(a) với V={1}. Ba điểm ảnh trong hình 1.11(b) cho ta nhiều 8-liền-kề (mỗi cặp điểm ảnh là 8-liền-kề với nhau được chỉ ra bởi một đường gạch đứt). Tính nhập nhằng này sẽ bị mất đi khi sử dụng mliền-kề như trong hình 1.11(c). Hai tập con ảnh S1 và S2 là liền kề (4-, 8-, hoặc m-liền Chương 1 – Tổng quan về xử lý ảnh số

Trang 24

Giáo trình xử lý ảnh số

kề) nếu tồn tại một điểm ảnh trong S1liền kề (4-, 8-, hoặc m-liền kề) với một điểm ảnh trong S2. 0 1 1

0 1 1

0 1 1

0 1 0

0 1 0

0 1 0

0 1 1

0 0 1

0 0 1

(a)

(b)

(c )

Hình 1.11. Ví dụ về m-liền kề a) Đường đi Một đường đi từ điểm p có tọa độ là (x, y) đến điểm q có tọa độ là (s, t) là một chuỗi tuần tự các điểm phân biệt có các tọa độ:

( x 0 , y 0 ), ( x1 . y1 ),..., ( x n , y n ) trong đó ( x 0 , y 0 ) = ( x, y) , ( xn , y n ) = (s, t ) và điểm ảnh ( xi −1 , y i −1 ) và ( xi , y i ) là liền kề với i = 1,2,.., n Trong trường hợp này, n là độ dài của đường đi. Nếu

( x0 , y 0 ) = ( x n , y n ) thì đường đi được gọi là một đường đi đóng hay một chu trình. Chúng ta có thể định nghĩa 4-, 8-, hoặc m-đường-đi phụ thuộc vào loại của định nghĩa liền kề. Ví dụ, các đường đi chỉ ra trong hình 1.10(c) là một m-đường-đi.

b) Tính Liên thông Cho S biểu diễn một tập con của các điểm trong ảnh. Hai điểm ảnh p và q được gọi là liên thông trong S nếu tồn tại một đường đi giữa chúng bao gồm tất cả các điểm ảnh nằm trong S. Với điểm ảnh p bất kỳ thuộc S, tập các điểm ảnh liên thông với nó trong S được gọi là thành phần liên thông của S. Nếu S chỉ có một thành phần liên thông thì tập S được gọi là một tập liên thông. Chương 1 – Tổng quan về xử lý ảnh số

Trang 25

Giáo trình xử lý ảnh số

c) Vùng Cho R là một tập con các điểm trong một ảnh. Chúng ta gọi R là một vùng của ảnh nếu R là một tập liên thông. Biên của vùng R là tập các điểm ảnh trong vùng mà có một hoặc nhiều lân cận không thuộc R. Nếu R phủ toàn ảnh thì biên của nó được xác định là dòng và cột đầu tiên và cuối cùng của ảnh. 1.5.3 Thuật toán tìm các thành phần liên thông Sau đây chúng ta xét một thuật toán gán nhãn cho các thành phần liên thông trong ảnh. Ý tưởng của thuật toán là quét theo từng điểm ảnh theo thứ tự từ trái sang phải và từ trên xuống dưới. Thuật toán này sử dụng định nghĩa 4-liền-kề. Gọi p là điểm ảnh ở một bước tùy ý nào đó trong quá trình quét, r và t tương ứng là lân cận trên và lân cận trái của p. Quá trình quét từng điểm ảnh này luôn đảm bảo r và t đã được xét và gán nhãn trước nếu nó có giá trị bằng 1. Ta tiến hành gán nhãn cho p dựa vào nhãn của r và t cũng như quan hệ giữa p, r và t tại thời điểm đang xét.

r t p

Chương 1 – Tổng quan về xử lý ảnh số

Trang 26

Giáo trình xử lý ảnh số

Thuật toán tìm các thành phần liên thông theo quan hệ 4-liền kề: Vào: Ảnh I có kích thước m×n, Tập V các giá trị cấp xám. Ra: Các thành phần liên thông đã được gán nhãn. Phương pháp: Bước 1. (Lần quét thứ nhất) Lần lượt xét các điểm ảnh theo thứ tự từ trái sang phải và từ trên xuống dưới. Với mỗi điểm ảnh p:

Nếu f(p)

V thì bỏ qua.

Nếu f(p)

V thì xét r (lân cận trên của p) và t (lân cận trái của p):

• Nếu cả f(r) V và f(t) V thì gán cho p một nhãn mới.

• Nếu f(r) V và f(t) V thì gán nhãn của p là nhãn của r

Chương 1 – Tổng quan về xử lý ảnh số

Trang 27

Giáo trình xử lý ảnh số

• Nếu f(r) V và f(t) V thì gán nhãn của p là nhãn của t

• Nếu f(r) V và f(t) V thì:

- Nếu r và t có cùng nhãn thì gán nhãn đó cho p. - Nếu r và t khác nhãn, gán một trong hai nhãn đó cho p và ghi nhận hai nhãn này bây giờ là tương đương nhau (r và t liên thông với nhau thông qua p). Bước 2. (Lần quét thứ 2) Nếu tồn tại thành phần liên thông có hai hay nhiều nhãn khác nhau thì lần lượt xét các điểm ảnh theo thứ tự như trên và gán một nhãn mới cho các thành phần liên thông có nhãn khác nhau. Đối với định nghĩa 8-liền-kề, chúng ta cũng làm tương tự. Thay vì xét hai lân cận trên và trái, chúng ta phải xét 4 lân cận bao gồm trên trái, trên, trên phải và trái. q r s t p Thuật toán tìm các thành phần liên thông theo quan hệ 4-liền kề: Vào: Ảnh I có kích thước m×n, Tập V các giá trị cấp xám. Ra: Các thành phần liên thông đã được gán nhãn. Phương pháp:

Chương 1 – Tổng quan về xử lý ảnh số

Trang 28

Giáo trình xử lý ảnh số

Bước 1. (Lần quét thứ nhất) Lần lượt xét các điểm ảnh theo thứ tự từ trái sang phải và từ trên xuống dưới. Với mỗi điểm ảnh p:

Nếu thì bỏ qua. f(p)

V

Nếu f(p) V thì xét q (lân cận trên trái của p), r (lân cận trên của p), s (lân cận trên phải của p) và t (lân cận trái của p):

• Nếu cả f(q) V, f(r) V,, f(s)

V và f(t)

V thì gán cho p một

nhãn mới. • Nếu chỉ một trong bốn lân cận thuộc thì gán nhãn của p là V nhãn của điểm ảnh có giá trị thuộc V. • Nếu có hai lân cận trở lên thuộc thì gán nhãn của p là nhãn V của một trong các lân cận đó và ghi nhận các nhãn này bây giờ là tương đương nhau (liên thông với nhau thông qua p). Bước 2. (Lần quét thứ 2) Nếu tồn tại thành phần liên thông có hai hay nhiều nhãn khác nhau thì lần lượt xét các điểm ảnh theo thứ tự như trên và gán một nhãn mới cho các thành phần liên thông 1.5.4 Độ đo khoảng cách giữa các điểm ảnh 1.5.4.1 Hàm khoảng cách Định nghĩa: Khoảng cách D(p, q) giữa hai điểm ảnh p, q với các tọa độ tương ứng là (x, y), (s, t) và z có tọa độ (u, v) là một điểm khác , lúc đó D được gọi là hàm khoảng cách hay metric nếu: a) D(p, q) ≥ 0 (D(p, q) = 0 nếu và chỉ nếu p = q) b) D(p, q)= D(q, p) c) D(p, z) ≤ D(p, q) + D(q, z) Chương 1 – Tổng quan về xử lý ảnh số

Trang 29

Giáo trình xử lý ảnh số

1.5.4.2 Khoảng cách Euclide Khoảng cách Euclide giữa hai điểm p(x, y) và q(s, t) được định nghĩa là: D e ( p, q ) = ( x − s ) 2 + ( y − t ) 2 Đối với độ đo khoảng cách này, các điểm ảnh có khoảng cách nhỏ hơn hoặc bằng giá trị r tính từ là các điểm được chứa trong đĩa có tâm (x, y) có bán kính r. 1.5.4.3 Khoảng cách khối D4 Khoảng cách D4(p, q) được gọi là khoảng cách khối đồ thị (City-Block Distance) và được xác định như sau: D 4 ( p, q ) = x − s + y − t trong trường hợp này, cách điểm ảnh có khoảng cách từ (x, y) nhỏ hơn hoặc bằng giá trị r là một hình thoi tâm (x, y). Ví dụ, các điểm ảnh với khoảng cách D4 ≤ 2 từ (x, y) có dạng: 2 2 1 2 2 1 0 1 2 2 1 2 2 Các điểm ảnh với D4=1 là 4-lân-cận của (x, y). 1.5.4.4 Khoảng cách khối D8 Khoảng cách D8 giữa p và q được định nghĩa là: D8 ( p, q) = x − s + y − t trong trường hợp này, cách điểm ảnh có khoảng cách từ (x, y) nhỏ hơn hoặc bằng giá trị r là một hình thoi tâm (x, y). Ví dụ, các điểm ảnh với khoảng cách D4 ≤ 2 từ (x, y) có dạng: 2 2 2 2 2 2 1 1 1 2 2 1 0 1 2 2 1 1 1 2 2 2 2 2 2 Các điểm ảnh với D8=1 là 4-lân-cận của (x, y). Chương 1 – Tổng quan về xử lý ảnh số

Trang 30

Giáo trình xử lý ảnh số

1.5.4.5 Khoảng cách khối Dm Chú ý rằng các khoảng cách D4 và D8 không phụ thuộc vào đường đi giữa các điểm ảnh vì các khoảng cách này chỉ liên quan đến tọa độ của các điểm ảnh. Tuy nhiên, với khoảng cách Dm, được định nghĩa là độ dài của m-đường-đi ngắn nhất giữa 2 điểm ảnh, đường đi giữa các điểm ảnh hay giá trị của các điểm ảnh là rất quan trọng. Xét ví dụ trong hình dưới đây với p, p2 p4 có giá trị 1, còn p1 và p3 có thể ,

có giá trị 0 hoặc 1: • Nếu cả p1 và p3 đều có giá trị 0 thì giữa p và p4 có duy nhất đường đi p - p2 p4, do đó khoảng cách giữa p và p4lúc này là 2. • Nếu p (tương ứng p ) có giá trị 1 còn p (tương ứng p ) có giá trị 0 thì đường 1

3

3

1

đi lúc này giữa p và p4 là p – p1- p2 – p4 (tương ứng p - p2 - p3- p4), do đó khoảng cách giữa p và p4 lúc này là 3. • Và nếu cả p1 và p3 đều có giá trị 1 thì giữa p và p có duy nhất đường đi p - p1 4

- p2 - p3 - p4, do đó khoảng cách giữa p và p4 lúc này là 4. p3 p4 p1 P2 P

CÂU HỎI ÔN TẬP 1. Trình bày các thành phần và lưu đồ thông tin giữa các khối trong quá trình xử lý

ảnh. 2. Nêu khái niệm và định nghĩa điểm ảnh. 3. Thế nào là độ phân giải ảnh, cho ví dụ? 4. Trình bày định nghĩa mức xám, cho ví dụ. 5. Nêu quan hệ giữa các điểm ảnh. 6. Trình bày về khoảng cách đo và phân loại khoảng cách giữa các điểm ảnh. 7. Nêu ý nghĩa của các phép biến đổi ảnh, liệt kê một số phép biến đổi và cho ví dụ. Chương 1 – Tổng quan về xử lý ảnh số

Trang 31

CHƯƠNG 2 THU NHẬN, SỐ HÓA, BIỂU DIỄN, LƯU TRỮ ẢNH

Chương này trình bày những vấn đề chính sau đây: 2.1 Cấu trúc của mắt người 2.2 Sự hình thành ảnh trong mắt người 2.3 Ánh sáng và phổ điện từ của ánh sáng 2.4 Cảm biến và thu nhận ảnh 2.5 Lấy mẫu và lượng hóa ảnh 2.6 Các không gian màu thông dụng 2.7 Một số phuwong pháp biểu diễn ảnh 2.8 Các loại định dạng tập tin ảnh cơ bản

Hình minh họa một vài thành phần của quá trình cảm nhận hình thành ảnh: (a) vị trí góc chiếu; (b) ánh sáng tán xạ trên một bề mặt; (c) ống kính quan học; (d) Mảng lọc màu Bayer.

Giáo trình xử lý ảnh số

2.1 Cấu trúc mắt người Mắt người có một hình thể gần giống như hình cầu với đường kính trung bình khoảng 20mm. Ở người trưởng thành cầu mắt được bao bọc bởi một lớp mô liên kết cứng nhưng đàn hồi gọi là củng mạc (sclera). Phần trước của củng mạc là giác mạc (cornea) trong suốt và cong nhiều, đóng vai trò là thành phần đầu tiên trong hệ thống tập trung ánh sáng của mắt. Lớp phía trong củng mạc là mạch mạc (choroid). Ðó là một lớp mô màu sẩm có nhiều mạch máu chạy qua. Chúng vừa có vai trò cung cấp máu cho phần còn lại của mắt, vừa là một lớp màng để hấp thu ánh sáng. Ngay trước vùng tiếp nối giữa phần chính của củng mạc và giác mạc, mạch mạc trở nên mỏng hơn và có nhiều cơ trơn bên trong. Phần này được gọi là thể mi (ciliary body). Phía trước thể mi, mạch mạc tách khỏi cầu mắt và mở rộng vào xoang mắt, hình thành mống mắt (iris). Mống mắt có nhiều sợi cơ trơn sắp thếp theo hình vòng và hình tia. Khi các sợi cơ vòng co lại, đồng tử (pupil) ở trung tâm mống mắt cũng co và ngược lại. Như vậy, mống mắt có vai trò trong việc điều hòa lượng ánh sáng đi vào mắt. Thủy tinh thể là bộ phận thứ hai trong hệ thống tập trung ánh sáng. Chúng được treo ngay phía sau mống mắt bởi một dây chằng treo (suspensory ligament) gắn với thể mi. Hoạt động của thủy tinh thể được kiểm soát bởi sức căng của một loạt cơ rất nhỏ gắn tại đây. Thủy tinh thể và dây chằng treo chia xoang của cầu mắt thành hai buồng: Buồng trước nằm giữa giác mạc và thủy tinh thể được lấp đầy thủy dịch (aqueous humor) và buồng phía sau thủy tinh thể chứa đầy thủy tinh dịch (vitreous humor). Võng mạc (retina) có các tế bào thụ quan, là một mô liên kết mỏng bao phủ bề mặt bên trong của mạch mạc. Chúng được hợp thành bởi nhiều lớp tế bào: • Lớp các tế bào thần kinh cảm giác

• Lớp các tế bào thần kinh thị • Lớp các tế bào thụ cảm. Các tế bào thụ cảm gồm hai loại hình que và hình nón: - Các tế bào que (rod cell) có rất nhiều ở phần ngoại biên của võng mạc, nhạy cảm với ánh sáng cho phép ta nhìn trong bóng tối nhưng không phân biệt được màu sắc. Chương 2 – Thu nhận, số hóa, biểu diễn và lưu trữ ảnh

Trang 32

Giáo trình xử lý ảnh số

-

Các tế bào nón (cone cell) được chuyên hóa cho sự nhận cảm màu sắc, có nhiều ở trung tâm của võng mạc, tại vùng gọi là hố võng mạc (fovea).

Mỗi mắt có khoảng từ 6-7 triệu tế bào hình nón trong khi có đến khoảng 75150 triệu tế bào hình que.

Hình 2.1. Sơ đồ lát cắt ngang mắt người (Nguồn: Encarta, GS. Bùi Tuấn anh,…) Chương 2 – Thu nhận, số hóa, biểu diễn và lưu trữ ảnh

Trang 33

Giáo trình xử lý ảnh số

Hình 2.2. Sơ đồ phân bố tế bào hình nón và tế bào hình que trên võng mạc (Ngụồn: R.C. Gonzalez, R.E. Woods, Tim Morris)

2.2 Sự hình thành ảnh trong mắt người Thủy tinh thể của mắt người rất linh động. Khi nhìn vật ở các khoảng cách khác nhau (xa, gần), nó có thể co hoặc giãn để điều chỉnh sao cho ánh sáng xuyên qua giác mạc hội tụ trên võng mạc. Đây là điểm khác biệt chủ yếu giữa thủy tinh thể và thấu kính thông thường. Khoảng cách từ thủy tinh thể đến võng mạc xấp xĩ từ 14-17mm.

Hình 2.3. Biểu diễn quá trình thu nhận ảnh cây dừa của mắt người (C là tâm của thủy tinh thể, Nguồn: R.C. Gonzalez, R.E. Woods)

Chương 2 – Thu nhận, số hóa, biểu diễn và lưu trữ ảnh

Trang 34

Giáo trình xử lý ảnh số

2.3 Ánh sáng và phổ điện từ của ánh sáng Quá trình hình thành ảnh khi có một nguồn sáng chiếu vào đối tượng qua một hệ thống thấu kính để tạo ra ảnh. Như vậy, bản chất vật lý của ảnh là ánh sáng. Ánh sáng là một dạng của sóng điện từ (có năng lượng và tần số bước sóng). Mọi vật chúng ta quan sát được là nhờ ánh sáng. Chẳng hạn, nguồn sáng sơ cấp gồm mặt trời, đèn điện, đèn nến… Loại khác gọi là nguồn sáng thứ cấp, chỉ phản xạ hoặc khuếch tán ánh sáng được bởi nguồn khác (mặt trăng, những đám mây, những quả táo…) Năm 1966, Isaac Newton đã chứng minh ra rằng khi cho một chùm ánh sáng mặt trời đi một thấu kính hình lăng trụ thì chùm ánh sáng đó không còn là một chùm ánh sáng trắng nữa mà thay vào đó là một phổ các ánh sáng màu từ tím đến đỏ. Hình 2.4 cho thấy dãy màu mà chúng ta cảm nhận được rất nhỏ trong toàn bộ phổ điện từ, kéo dài từ tia gamma đến sóng radio. Phổ điện từ được biểu diễn theo quan hệ giữa bước sóng, tần số hoặc năng lượng của ánh sáng.

Hình 2.4. Phổ điện từ (vùng ánh sáng nhìn thấy được được phóng to để có thể thấy được các thành phần màu của nó, Nguồn: R.C. Gonzalez, R.E. Woods) Ánh sáng là một phần của dải phổ liên tục bức xạ sóng điện từ. Sóng điện từ mang năng lượng và sự phân bố năng lượng của sóng điện từ đi qua một mặt phẳng khong gian có thể mô tả bằng c( x, y, t , λ) , ở đó x và y là hai biến không gian, t là biến thời gian và λ là bước sóng. Hàm c( x, y, t , λ) được gọi là thông Chương 2 – Thu nhận, số hóa, biểu diễn và lưu trữ ảnh

Trang 35

Giáo trình xử lý ảnh số

lượng bức xạ trên diện tích x bước song hoặc lượng bức xạ trên bước sóng. Quan hệ giữa bước sóng (λ) và tần số (f) của ánh sáng được tính theo công thức:

Trong đó c là tốc độ của ánh sáng c = 2.998 × 108 m/s trong chân không và không khí

Ánh sáng khác với các sóng điện từ khác, như sóng vô tuyến điện, là mắt người nhận biết được. Ánh sáng mà chúng ta có thể nhìn thấy được có phổ nằm trong khoảng từ 0.43µm (ánh sáng tím) đến 0.79µm (ánh áng đỏ). Để thuận lợi, phổ màu được chia làm sáu phần: tím, xanh, xanh lá, vàng, cam và đỏ. Các màu khác có được nhờ sự pha trộn của sáu màu trên. Các màu mà con người cảm nhận được từ các đối tượng được xác định thông qua sự phản ảnh một cách tự nhiên từ đối tượng.

2.4 Cảm biến và thu nhận ảnh Hình 2.5 chỉ ra ba bộ cảm biến cơ bản được sử dụng để chuyển năng lượng ánh sáng thành tín hiệu điện. Ý tưởng rất đơn giản, năng lượng thu nhận được chuyển thành điện áp ở đầu ra bằng sự kết hợp của nguồn điện vào và nguyên liệu của bộ cảm biến (chất cảm biến). Điện áp dạng sóng ở đầu ra của mỗi bộ cảm biến sau đó sẽ được chuyển thành dạng số (quá trình số hóa) để lưu trữ hay xử lý. Quá trình số hóa ảnh được đề cập đến trong phần “lấy mẫu và lượng hóa ảnh” của chương này.

Chương 2 – Thu nhận, số hóa, biểu diễn và lưu trữ ảnh

Trang 36

Giáo trình xử lý ảnh số

Hình 2.5. Bộ cảm biến (a) Bộ cảm biến đơn (b) Bộ cảm biến đường thẳng (c) Bộ cảm biến mảng (Nguồn: R.C. Gonzalez, R.E. Woods) 2.4.1 Thu nhận ảnh sử dụng thiết bị cảm biến Các thiết bị thu nhận ảnh bao gồm camera, scanner các thiết bị thu nhận này có thể cho ảnh đen trắng. Các thiết bị thu nhận ảnh có 2 loại chính ứng với 2 loại ảnh thông dụng Raster, Vector. Hình 2.5 (c) chỉ ra các bộ cảm biến riêng lẻ được sắp xếp dưới dạng một mảng hai chiều. Rất nhiều các thiết bị cảm biến điện từ (và một số thiết bị cảm biến siêu âm) sử dụng cách phân bố này. Đây cũng chính là cách sắp xếp thường được thấy trong các camera kỹ thuật số. Bộ cảm biến của những camera này thường là một CCD (Charge-Coupled Devices), là một mảng kích thước có thể lên đến 4000 x 4000 phần tử (mỗi phần tử là một tụ điện, sẽ hấp thụ năng lượng ánh sáng thu nhận được và lưu dưới dạng điện) hoặc hơn thế. Đầu ra của các CCD này sau đó sẽ được tổng hợp, xử lý để chuyển thành tín hiệu số. Hoạt động của các bộ cảm biến này được mô tả trong hình 2.6. Từ hình này ta thấy, năng lượng từ một nguồn sáng được phản xạ trên một đối tượng được truyền qua hệ cảm biến ảnh (gồm rất nhiều các phần tử cảm biến được sắp xếp Chương 2 – Thu nhận, số hóa, biểu diễn và lưu trữ ảnh

Trang 37

Giáo trình xử lý ảnh số

thành một mảng 2 chiều). Lớp (mặt phẳng ảnh) đầu tiên trong hệ cảm biến ảnh này sẽ tiếp nhận nguồn sáng và chuyển thành năng lượng điện, sau đó, các năng lượng điện này sẽ đi qua bộ số hóa (nằm trong hệ cảm biến ảnh) và cho ảnh (được số hóa) ở đầu ra như hình 2.6 (e).

Hình 2.6. Ví dụ về quá trình thu nhận ảnh (Nguồn: R.C. Gonzalez, R.E. Woods) Nhìn chung các hệ thống thu nhận ảnh thực hiện 1 quá trình • Cảm biến: biến đổi năng lượng quang học thành năng lượng điện (giai đoạn lấy mẫu) • Tổng hợp năng lượng điện thành ảnh (giai đoạn lượng tử hóa) 2.4.2 Mô hình tạo ảnh đơn giản Như đã đề cập trong chương 1, ảnh số là một hàm hai chiều , trong đó giá trị độ lớn của f (cấp xám) tại tọa độ ) là một đại lượng vô hướng dương. Trong giáo trình này chúng ta sẽ đề cập chủ yếu là các ảnh đơn sắc hay còn gọi là ảnh đa cấp xám. Khi một ảnh được tạo ra từ bộ xử lý vật lý, các giá trị của nó là các số hạng tỉ lệ với năng lượng phát ra từ của nguồn vật lý (ví dụ như sóng điện từ). Kết quả, phải khác không và hữu hạn, nghĩa là,

0 < f ( x, y) < ∞

Chương 2 – Thu nhận, số hóa, biểu diễn và lưu trữ ảnh

(2.1)

Trang 38

Giáo trình xử lý ảnh số

Hàm f(x, y) có thể dược mô tả bằng hai thành phần: (1) lượng ánh sáng liên quan đến hiện trường được quan sát, và (2) lượng ánh sáng phản xạ bởi đối tượng trong hiện trường. Hai thành phần này được gọi là độ sáng (illumination) và độ phản xạ (reflectance) và được ký hiệu tương ứng bởi i(x,y) và r(x, y). Tích của hai hàm này tạo thành hàm f(x,y), tức là:

trong đó:

f ( x, y ) = i ( x, y ). r ( x, y )

(2.2)

0 < i( x, y) < ∞

(2.3)

0 < r ( x, y) < 1

(2.4)



Biểu thức (2.4) chỉ ra rằng độ phản xạ được giới hạn bởi 0 (hấp thụ hoàn toàn) và 1 (phản xạ hoàn toàn). Tính chất của hàm được xác định bởi lượng ánh sáng và hàm r(x, y) được xác định bởi các đặc điểm của đối tượng được phản ánh. Chú ý rằng, những biểu thức này cũng có thể áp dụng cho việc tạo ra hình ảnh theo đường truyền của ánh sáng thông qua phương tiên trung gian, như tia X. Trong trường hợp này, chúng ta có thể thay hàm phản xạ ánh sáng bằng hàm dẫn truyền ánh sáng nhưng vẫn có giới hạn giống như biểu thức (2.4). Đặt độ lớn của f tại điểm ( x0 , y 0 ) là l, và chúng ta gọi đó là cấp xám của ảnh tại điểm ( x0 , y 0 ) . Nghĩa là:

Từ (2.2) đến (2.4), ta có:

l = f ( x0 , y 0 )

(2.5)

Lmin ≤ l ≤ Lmax

(2.6)

Trong lý thuyết, yêu cầu Lmin phải dương còn Lmax là hữu hạn. Trong thực tiễn thì Lmin = imin . rmin và Lmax =i max . r max . Đoạn [ Lmin , Lmax ] được gọi là thang xám (gray scale). Thông thường thì cấp xám được giới hạn trong khoảng [0, −L], và l=0 ứng với là màu đen còn l=L-1 ứng là màu trắng.

2.5 Lấy mẫu và lượng hóa Chương 2 – Thu nhận, số hóa, biểu diễn và lưu trữ ảnh

Trang 39

Giáo trình xử lý ảnh số

Từ những thảo luận trên đây chúng ta thấy rằng có nhiều cách để thu nhận ảnh, nhưng mục đích cuối cùng đều là tạo ra được một ảnh số từ dữ liệu của bộ cảm biến. Đầu ra của bộ cảm biến hầu hết là dạng sóng điện thế liên tục. Để tạo ra được ảnh số, chúng ta cần phải chuyển đổi dữ liệu liên tục trong bộ cảm biến thành dạng số. Để làm được điều này, chúng ta phải trải qua hai bước: lấy mẫu và lượng hóa. 2.5.1 Các khái niệm cơ bản trong lấy mẫu và lượng hóa

Ý tưởng cơ bản trong lấy mẫu và lượng hóa được minh họa ở hình 2.7. Hình 2.7(a) là một ảnh liên tục mà chúng ta cần chuyển sang dạng số. Đó là một ảnh liên tục theo tọa độ x và cũng như theo biên độ của nó. Để chuyển đổi sang dạng số, chúng ta phải lấy mẫu theo hai tọa độ và biên độ. Số hóa các giá trị tọa độ được gọi là lấy mẫu. Số hóa các giá trị biên độ được gọi là lượng hóa. Hàm một chiều trong hình 2.7(b) là đồ thị của giá trị của ảnh liên tục (cấp xám) theo đường phân chia AB trong hình 2.7(a) có sự biến thiên ngẫu nhiên theo nhiễu. 2.5.1.1 Lấy mẫu

Người ta sử dụng bộ cảm biến hoặc máy quét để biến tín hiệu quang của ảnh thành tín hiệu điện liên tục. Phương pháp sử dụng máy quét phổ biến hơn. Máy quét sẽ quét theo chiều ngang để tạo ra tín hiệu điện của ảnh, kết quả cho ra một tín hiệu điện hai chiều f(x,y) liên tục. Để lấy mẫu hàm này, chúng ta lấy mẫu bằng nhau dọc theo đường thẳng AB như trong hình 2.17(c). Tính cục bộ của mỗi mẫu được cho bởi các dấu sọc dọc trong phần dưới của ảnh. Lấy mẫu được chỉ ra trong hình vuông đỏ đặt trên hàm. Tập các vị trí cục bộ rời rạc này cho ta hàm lấy mẫu. Xét ảnh liên tục được biểu diễn bởi hàm f(x, y), gọi Δx là khoảng cách giữa hai điểm được giữ lại theo trục x, gọi Δy là khoảng cách giữa hai điểm được giữ lại theo trục y. Δy , Δ x được gọi là chu kỳ lấy mẫu theo trục x và y. Giai đoạn lấy mẫu sẽ biến hàm liên tục f(x,y)→f(n Δx , m Δy ). Với m,n là nguyên. Theo SHANON để đảm bảo không xảy ra hiện tượng chồng phổ, cho phép tái tạo lại ảnh gốc từ ảnh đã số hóa: - Gọi fx =

1 là tần số lấy mẫu theo trục x. Δx

- Gọi fy =

1 là tần số lấy mẫu theo trục y. Δy

Chương 2 – Thu nhận, số hóa, biểu diễn và lưu trữ ảnh

Trang 40

Giáo trình xử lý ảnh số

Để không xảy ra hiện tượng chồng phổ thì tần số lấy mẫu phải ít nhất phải lớn hơn hoặc bằng 2 tần số cao nhất của tín hiệu ảnh. Tức là: fx >= 2fxmax fy >= 2fymax Trong đó fxmax, fymax là tần số cao nhất của tín hiệu theo trục x, y. 2.5.1.2 Lượng hóa Ảnh sau khi lấy mẫu sẽ có dạng f(m,n) với m, n là nguyên nhưng giá trị f(m, n) vẫn là giá trị vật lý liên tục. Quá trình biến đổi giá trị f(m,n) thành một số nguyên thích hợp để lưu trữ gọi là lượng tử hoá. Đây là quá trình ánh xạ một biến liên tục u vào biến rời rạc u* thuộc tập hữu hạn [u1, u2,..uL] xác định trước, L là mức lượng tử hoá được tạo ra. Ví dụ: + Tạo ảnh đa cấp xám thì L=256, f(m,n) = g ∈ [0, 255] + Tạo ảnh 224 thì L=224, f(m, n) = g ∈ [0, 2 24 − 1] Tuy nhiên, các giá trị của mẫu vẫn là một dãy liên tục (theo chiều dọc) của giá trị cấp xám. Để có được hàm dạng số, các giá trị cấp xám vẫn phải chuyển thành các đại lượng rời rạc (lượng hóa). Hình phía biên phải hình 2.7(c) chỉ ra tỉ lệ mức xám được chia thành tám bậc rời rạc, sắp xếp từ đen đến trắng. Các cấp xám liên tục được lượng hóa một cách đơn giản bằng việc gán một trong tám mức xám cho mỗi mẫu. Việc gán này được thực hiện phụ thuộc vào tính xấp xỉ theo chiều dọc của mẫu đã được đánh dấu. Các mẫu số hóa có được từ lấy mẫu và lượng hóa được chỉ ra trong hình 2.7(d). Bắt đầu từ phía trên của ảnh và tiến hành tuần tự trên ảnh thông qua các đường thẳng sẽ sinh ra một ảnh số hai chiều.

Chương 2 – Thu nhận, số hóa, biểu diễn và lưu trữ ảnh

Trang 41

Giáo trình xử lý ảnh số

Hình 2.7. Số hóa ảnh (a) Ảnh liên tục (b) Một đường thẳng quét từ A đến B trong ảnh liên tục (c) Đường quét sau khi lấy mẫu (d) Đường quét sau khi lấy mẫu là lượng hóa (Nguồn: R.C. Gonzalez, R.E. Woods)

Khi sử dụng bộ cảm biến mảng để thu nhận ảnh thì số lượng bộ cảm biến trong mảng sẽ thiết lập lên giới hạn của mẫu theo hai hướng. Hình 2.8(a) minh họa ảnh liên tục được chiếu vào mặt phẳng bộ cảm biến mảng. Hình 2.8(b) chỉ ra ảnh thu được sau quá trình lấy mẫu và lượng hóa. Rõ ràng, chất lượng của ảnh được xác định bởi số lượng mẫu và các cấp xám rời rạc sử dụng trong quá trình lấy mẫu và lượng hóa. Tuy nhiên, nội dung ảnh là vấn đề quan trọng trong việc chọn các tham số để lấy mẫu và lượng hóa ảnh.

Hình 2.8. Kết quả quá trình số hóa (a) Ảnh liên tục chiếu lên bộ cảm biến mảng (b) Ảnh sau khi được số hóa (lấy mẫu và lượng hóa, Nguồn: R.C. Gonzalez, R.E. Woods) 2.5.2 Biểu diễn ảnh số

Chương 2 – Thu nhận, số hóa, biểu diễn và lưu trữ ảnh

Trang 42

Giáo trình xử lý ảnh số

Kết quả của lấy mẫu và lượng hóa là một ma trận số. Chúng ta sử dụng hai cách cơ bản để biểu diễn ảnh số trong giáo trình này. Giả sử rằng một ảnh f(x, y) được lấy mẫu để có một ảnh số gồm M dòng và N cột. Các giá trị của tọa độ bây giờ trở thành các đại lượng rời rạc. Chúng ta sẽ sử dụng các giá trị số nguyên cho các tọa độ rời rạc này. Chúng ta quy ước giá trị tọa độ tại gốc của ảnh là ( x0 , y 0 ) = (0, 0) . Các giá trị tọa độ tiếp theo sẽ được biểu diễn theo chiều ngang từ trái sang phải và chiều dọc từ trên xuống. Hình 2.9 chỉ ra quy ước về tọa độ được sử dụng trong giáo trình này.

Hình 2.9. Qui ước về tọa độ trong biểu diễn ảnh (Nguồn: R.C. Gonzalez, R.E. Woods) Chúng ta có thể ký hiệu ảnh số bằng một ma trận cấp theo dạng sau:

(2.7)

Mỗi phần tử của ma trận này là một điểm ảnh (pixel). Trong một số trường hợp, để thuận lợi, chúng ta sử dụng ma trận truyền thống để chỉ một ảnh số và các phần tử của nó:

Chương 2 – Thu nhận, số hóa, biểu diễn và lưu trữ ảnh

Trang 43

Giáo trình xử lý ảnh số

(2.8)

Rõ ràng a ij = f ( x = i , y = j ) = f (i , j ) . Thông thường, người ta sử dụng số cấp xám là một lũy thừa của 2, tức là k L = 2 . Với một ảnh số có chiều rộng N, chiều cao M và số cấp xám là L, thì số bit dùng đề lưu trữ ảnh số sẽ là: (2.9) b = M. N. k Khi M = N, biểu thức (2.9) sẽ là: b = N2. k

(2.10)

Bảng 2.1 sau đây cho biết số bit cần để lưu trữ ảnh số với các giá trị N và k khác nhau. Số cấp xám L ứng với k được biểu diễn theo trục ngang, kích thước ảnh được biễu diên theo trục dọc. Đối với ảnh có L = 2*, người ta gọi đó là ảnh k-bit. N/k

1 (L=2)

2 (L=4)

3 (L=8)

4 (L=16)

5 (L=32)

6 (L=64)

7 (L=128)

8 (L=256)

32

1.024

2.048

3.072

4.096

5.120

6.144

7.168

8.192

64

4.096

8.192

12.288

16.384

20.480

24.576

28.672

32.768

128

16.384

32.768

49.152

65.536

81.920

98.304

114.688

131.072

256

65.536

131.072

196.608

262.144

327.680

393.216

458.752

524.288

512

262.144

524.288

786.432

1.048.576

1.310.720

1.572.864

1.835.008

2.097.152

1024 1.048.576

2.097.152

3.145.728

4.194.304

5.242.880

6.291.456

7.340.032

8.388.608

2048 4.194.304

8.388.608

12.582.912

16.777.216

20.971.520

25.165.824

29.360.128

33.554.432

4096 16.777.216

33.554.432

50.331.648

67.108.864

83.886.080

100.663.296 117.440.512 134.217.728

8192 67.108.864 134.217.728 201.326.592 268.435.456 335.544.320 402.653.184 469.762.048 536.870.912

Bảng 2.1. Minh họa số lượng bit cần thiết để lưu trữ ảnh phụ thuộc theo N và k 2.5.3 Độ phân giải không gian và độ phân giải cấp xám

Quá trình lấy mẫu ảnh là quá trình xác định độ phân giải về mặt không gian của ảnh. Có thể hiểu đơn giản rằng, độ phân giải không gian là chi tiết nhỏ nhất trong ảnh. Độ phân giải cấp xám là sự thay đổi nhỏ nhất trong cấp xám. Trong các thiết bị phần cứng, số lượng cấp xám là một số nguyên lũy thừa của 2, thông Chương 2 – Thu nhận, số hóa, biểu diễn và lưu trữ ảnh

Trang 44

Giáo trình xử lý ảnh số

thường sử người ta sử dụng 8 bit (=256) để lưu trữ ảnh đa cấp xám. Tuy nhiên chúng ta vẫn có thể thấy các hệ thống lưu trữ ảnh với 16 bit (L = 65536), 10 bit (L =1024) hoặc 12 bit (L = 4096).

Hình 2.10. Ảnh được lấy mẫu theo các kích thước khác nhau (Nguồn: R.C. Gonzalez, R.E. Woods)

Khi nói đến một ảnh có kích thước M × N và L cấp xám, chúng ta có thể hiểu rằng đây là một ảnh có độ phân giải không gian là M × N và độ phân giải cấp xám là L. Hình 2.10 chỉ ra ảnh có 1024 × 1024 điểm ảnh với các cấp xám được biểu diễn bởi 8 bit. Hình kế bên có 512 × 512 điểm ảnh là kết quả của việc lấy mẫu từ ảnh gốc 1024 × 1024 bằng cách xóa đi một số dòng và cột. Tương tự, ảnh có kích thước 256 × 256 được lấy từ ảnh 512 × 512 bằng cách xóa đi một số dòng và một số cột, vv... Các ảnh vẫn giữ được số cấp xám là 256.

Hình 2.11. Ảnh phóng to từ hình 2.10 để so sánh (Nguồn: R.C. Gonzalez, R.E. Woods)

Chương 2 – Thu nhận, số hóa, biểu diễn và lưu trữ ảnh

Trang 45

Giáo trình xử lý ảnh số

Bây giờ chúng ta xét một ví dụ khác, vẫn giữ nguyên số mẫu, nhưng rút gọn về số cấp xám từ 256 xuống còn 2.

a b c d e f g h Hình 2.12. Ví dụ về độ phân giải cấp xám (a) Ảnh cắt lớp vi tính (CT) được hiển thị với =8 (256 cấp xám) (b) → (h): ảnh có được từ (a) bằng cách rút gọn số bit từ k = 7 xuống k = 1 (Nguồn: R.C. Gonzalez, R.E. Woods

2.6 Các không gian màu thông dụng 2.6.1 Màu sắc

Việc cảm nhận màu theo chủ quan thì phụ thuộc vào mắt con người, cảm nhận màu khách quan phụ thuộc vào một lớp người thông qua chuẩn nào đó. Mắt người có thể phân biệt được vài chục màu nhưng chỉ có thể cảm nhận được hàng ngàn màu. Ba thuộc tính của một màu đó là: Sắc (Hue), Độ thuần khiết (Saturation), và độ sáng hay độ chói (Itensity). Trong xử lý ảnh và đồ họa, mô hình màu là một chỉ số kỹ thuật của một hệ tọa độ màu 3 chiều với tập các màu nhỏ thành phần có thể trông thấy được trong hệ thống tọa độ màu thuộc một gam màu đặc trưng. Ví dụ như mô hình màu RGB (Red, Green, Blue): là một đơn vị tập các màu thành phần sắp xếp theo hình lập phương của hệ trục tọa độ Đề các. Mục đích của mô hình màu là cho phép các chỉ số kỹ thuật quy ước của một số loại màu sắc thích hợp với các màu sắc của một số gam màu khác. Chúng ta có thể nhìn thấy trong mô hình màu này, không gian màu là một tập hợp nhỏ hơn của không gian các màu có thể nhìn thấy được, vì vậy một mô hình màu không thể được sử dụng để định rõ tất cả có thể nhìn thấy. Sau đây, ta xem xét một số mô hình hay được sử dụng nhất. Chương 2 – Thu nhận, số hóa, biểu diễn và lưu trữ ảnh

Trang 46

Giáo trình xử lý ảnh số

2.6.2 Tổng hợp màu

Tổng hợp màu theo phép cộng (cộng về năng lượng ánh sáng): Màu X = a1R + a2G + a3B, trong đó a1, a2, a3 các hệ số(có thể âm) Tổng hợp màu theo phép trừ tần số (trừ phổ): Ánh sáng

B• l•c màu (1)

B• l•c màu (2)

B• l•c màu (3)

Màu X

2.6.3 Không gian biểu diễn màu và hệ tọa độ màu

Không gian biểu diễn màu là không gian 3 chiều. Để đo lường một cách định lượng ta có hệ tọa độ không gian (có nhiều hệ tọa độ không gian). 2.6.3.1 Hệ tọa độ màu RGB (Red, Green, Blue)

Màu đỏ, lục – xanh lá cây, lam – xanh da trời (RGB) được sử dụng phổ biến nhất. Những màu gốc RGB được thêm vào những màu gốc khác điều đó tạo nên sự đóng góp riêng của từng màu gốc được thêm cùng nhau để mang lại kết qaủ. Tập hợp màu nhỏ thành phần sắp xếp theo khối lập phương đơn vị. Đường chéo chính của khối lập phương với sự cân bằng về số lượng từng màu gốc tương ứng với các mức độ xám với đen là (0,0,0), trắng (1,1,1), Màu Red là (1, 0, 0), màu của Blue là (0, 0, 1), Red + Green = Yellow, Red + Green + Blue = White. Blue (0, 0, 1) (0,1,1) tím xanh (cyan) (1,1,1) trắng

Magenta (tím đỏ) (1,0,1)

(0,0,0)

(0,1,0) Green

(1,0,0)

(1,1,0)

Red

vàng

Hình 2.13. Mô hình màu RGB

2.6.3.2 Hệ tọa độ màu YUV (chuẩn PAL)

Chương 2 – Thu nhận, số hóa, biểu diễn và lưu trữ ảnh

Trang 47

Giáo trình xử lý ảnh số

Hệ tọa độ này có 3 thành phần: Y là độ chói (cường độ sáng), U là độ sắc màu cảm thụ và V là độ bảo hòa. Các thành phần của hệ tọa độ này được biểu diễn thông qua hệ tọa độ RGB như sau: Y = 0.299 R + 0.587G + 0.114B U = 0.493 (B-Y) V = 0.877 (R-Y) 2.6.3.3 Hệ tọa độ màu YIQ Hệ màu này được ứng dụng trong truyền hình màu băng tần rộng tại Mỹ, do đó nó có mối quan hệ chặt chẽ với màn hình raster. YIQ là sự thay đổi của RGB cho khả năng truyền phát và tính tương thích với ti vi đen trắng thế hệ trước. Tín hiệu truyền sử dụng trong hệ thống NTSC (National Television System Committee). Sau đây là công thức biến đổi từ hệ RGB thành hệ YIQ: 0.114 ⎤ ⎡ R ⎤ ⎡Y ⎤ ⎡0.299 0.587 ⎢ I ⎥ = ⎢0.596 − 0.275 − 0.321⎥ * ⎢G ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢⎣Q ⎥⎦ ⎢⎣0.212 − 0.523 0.311 ⎥⎦ ⎢⎣ B ⎥⎦

Ma trận nghịch đảo của ma trận biến đổi RGB thành hệ YIQ được sử dụng cho phép biến đổi từ hệ YIQ thành RGB. 2.6.3.4 Hệ tọa độ màu HSV (Hue, Staturation, Value)

Các mô hình màu RGB, CMY được định hướng cho phần cứng trái ngược với mô hình màu HSV của Smith hay còn được gọi là mẫu HSB với B là Brightness (độ sáng), được định hướng người sử dụng dựa trên cơ sở nền tảng về trực giác về tông màu, sắc độ và sắc thái mỹ thuật. Hệ thống tọa độ có dạng hình trụ và tập màu thành phần của không gian bên trong mô hình màu được xác định là hình nón hoặc hình chóp sáu cạnh như trong hình 2.14. Đỉnh hình chóp là sáu cạnh khi V= 1 chứa đựng mối quan hệ giữa các màu sáng và những màu trên mặt phẳng với V= 1 đều có màu sáng. Mô hình màu này còn được gọi là hệ HSB với B là Brightness (độ sáng) dựa trên cơ sở nền tảng trực giác về tông màu, sắc độ và sắc thái mỹ thuật. Hue có giá trị từ 00 → 3600 S, V có giá trị từ 0 → 1

Chương 2 – Thu nhận, số hóa, biểu diễn và lưu trữ ảnh

Trang 48

Giáo trình xử lý ảnh số

V Green 1.0

Cyan

Yellow

White

Red White

Blue

H

S

0.0 Black

Hình 2.14. Hệ màu HSV

Ví dụ: Red được biểu diễn (00, 1, 1) Green được biểu diễn (1200,1,1) Sắc màu (hue) hoặc H được đo bởi góc quanh trục đứng với màu đỏ là 0o, màu lục là 120o, màu lam là 240o (xem hình 1.7). Các màu bổ sung trong hình chóp HSV ở 180o đối diện với màu khác. Giá trị của S là một tập các giá trị đi từ 0 trên đường trục tâm (trục V) đến 1 trên các mặt bên tại đỉnh của hình chóp sáu cạnh. Sự bão hòa được đo tương đối cho gam màu tương ứng với mô hình màu này. Mô hình màu dạng hình chóp sáu cạnh này đường cao V với đỉnh là điểm gốc tọa độ (0,0). Điểm ở đỉnh là màu đen có giá trị tọa độ màu V= 0, tại các điểm này giá trị của H và S là không liên quan với nhau. Khi điểm có S= 0 và V= 1 là điểm màu trắng, những giá trị trung gian của V đối với S= 0 (trên đường thẳng qua tâm) là các màu xám. Khi S= 0 giá trị của H phụ thuộc được gọi bởi các quy ước không xác định, ngược lại khi S khác 0 giá trị của H sẽ là phụ thuộc. Như vậy một màu nào đó V= 1, S= 1 là giốg như màu thuần khiết trong mỹ thuật được sử dụng như điểm khởi đầu trong các màu pha trên. Thêm màu trắng phù hợp để giảm S (không có sự thay đổi V) tạo nên sự thay đổi sắc thái của gam màu. Sự chuyển màu được tạo ra bởi việc giữ S= 1 và giảm V tạo nên sự thay đổi ề sắc độ và tông màu tạo thành bởi việc thay đổi cả hai S và V. Chuyển đổi từ RGB sang HSV

Hàm RGB_HSV_Conversion H: Sắc độ màu [0-360] với màu đỏ tại điểm 0 S: Độ bão hòa [0-1] V: Giá trị cường độ sáng [0-1] Max: Hàm lấy giá trị cực đại Min: Hàm lấy giá trị nhỏ nhất Chương 2 – Thu nhận, số hóa, biểu diễn và lưu trữ ảnh

Trang 49

Giáo trình xử lý ảnh số

{ //Xác định giá trị cường độ sáng V= Max(R,G,B) //Xác định độ bão hòa Temp= Min(R,G,B) If V=0 than S= 0 Else S= (V-Temp)/V End //Xác định sắc màu IF s=0 THEN H= Undefined Else Cr= (V-R)/(V-Temp); Cg= (V-G)/(V-Temp); Cb= (V-B)/(V-Temp); // Màu nằm trong khoảng giữa vàng (Yellow) và đỏ tía (Magenta) If R=V then H= Cb-Cg // Màu nằm trong khoảng giữa xanh tím (cyan) và vàng (yellow) If G= V then H= 2+Cr-Cb // Màu nằm trong khoảng giữa đỏ tươi (magenta) và xanh (cyan) If B=V then H= 4+ Cg – Cr H= 60*H // Chuyển sang độ //Loại các giá trị âm If H < 0 then H= H+360 } Chuyển đổi từ HSV sang RGB

Chương 2 – Thu nhận, số hóa, biểu diễn và lưu trữ ảnh

Trang 50

Giáo trình xử lý ảnh số

Hàm HSV_RGB_Conversion() H: Sắc độ màu [0-360] với màu đỏ tại điểm 0 S: Độ bão hòa [0-1] V: Giá trị cường độ sáng [0-1] { //Kiểm tra trường hợp ánh sáng không màu If S=0 then If H=Undifined then R= V G= V B= V Endif Else If H=360 then H= 0 Else H= H/60 endif I= Floor(H) F= H-I M= V*(1-S) N= V*(1-S*F) K= V*(1-S*(1-F)) //(R,G,B)=(V,K,M) ⇔ R= V; C= K; B= M If I=0 then (R,G,B)=(V,K,M); If I=1 then (R,G,B)=(N,V,M); If I=2 then (R,G,B)=(M,V,K); If I=3 then (R,G,B)=(M,N,V); Chương 2 – Thu nhận, số hóa, biểu diễn và lưu trữ ảnh

Trang 51

Giáo trình xử lý ảnh số

If I=4 then (R,G,B)=(K,M,V); If I=5 then (R,G,B)=(V,M,N); } 2.6.3.5 Hệ tọa độ màu HLS

Mô hình màu HLS được xác định bởi tập hợp hình chóp sáu cạnh đôi của không gian hình trụ. Sắc màu là góc quanh trục đứng cảu hình chóp sáu cạnh đôi với màu đỏ tại góc 0o. Các màu sẽ xác định theo thứ tự giống như trong biểu đồ CIE khi ranh giới của nó bị xoay ngược chiều kim đồng hồ: Màu đỏ, màu vàng, màu lục, màu xanh tím, màu lam và đỏ thẫm. Điều này cũng giống như thứ tự sắc xếp trong mẫu hình chóp sáu cạnh đơn HSV. 1 .0

L W h ite

Y e llo w

G re e n 0 .5

C yan B lu e

R ed W h ite

H

S

0 .0 B la c k

Hình 2.15. Hệ màu HLS

Chúng ta có thể xem mẫu HLS như một sự biến dạng cảu mẫu HSV mà trong đó mãu này màu trắng được kéo hướng lên hình chóp sáu cạnh phía trên từ mặt V= 1. Như với mẫu hình chóp sáu cạnh đơn, phần bổ sung của một màu sắc được đặt ở vị trí 180o hơn là xunh quanh hình chóp sáu cạnh đôi, sự bão hòa được đo xung quanh trục đứng, từ 0 trên trục tới 1 trên bề mặt. Độ sáng bằng không cho màu đen và bằng một cho màu trắng. Chuyển đổi từ RGB sang HLS

Hàm RGB_HLS_Conversion() Chương 2 – Thu nhận, số hóa, biểu diễn và lưu trữ ảnh

Trang 52

Giáo trình xử lý ảnh số

H: Sắc độ màu [0-360] với màu đỏ tại điểm 0 S: Độ bão hòa [0-1] V: Giá trị cường độ sáng [0-1] Max: Hàm lấy giá trị cực đại Min: Hàm lấy giá trị nhỏ nhất { //Xác định độ sáng M1= Max(R,G,B) M2= Min(R,G,B) L= (M1+M2) //Xác định độ bão hòa If M1=M2 //Trường hợp không màu S= 0 H= Undefined Else If L 240 and H 0 và b thường được gọi là tham số điều khiển độ tương phản và độ sáng (hình 3.3 b-c). Hai tham số a và b có thể biến đổi không gian, g(x) = a(x) f(x) + b(x)

Chương 3- Nâng cao chất lượng ảnh  

(3.4)

Page 67

Giáo trình xử lý ảnh số  

Chúng ta sẽ bắt đầu bằng việc thảo luận một số hàm biến đổi mức xám cơ bản, được coi là đơn giản nhất trong các phương pháp nâng cao chất lượng ảnh. Các giá trị của điểm ảnh, trước và sau khi được xử lý được ký hiệu lần lượt là r và s. Các giá trị này quan hệ với nhau qua biểu thức (đã được đề cập ở phần trên). Vì thao tác với các con số, nên chúng ta có thể lưu các giá trị của hàm biến đổi trong mảng một chiều và thực hiện ánh xạ từ r sang s bằng cách sử dụng một bảng dò (lookup table). Trong môi trường 8-bít, bảng dò chứa 256 giá trị của T tương ứng với 256 cấp xám. 3.2.1 Phép biến đổi âm bản Phủ định của một ảnh với các cấp xám trong phạm vi [0, L-1] có dụng phép biến đổi âm bản như trong hình 3.5 được cho bởi biểu thức sau: s = (L-1)-r

(3.5)

Hình 3.7. Ví dụ về ảnh âm bản: (a) ảnh gốc (khối u ở ngực), (b) Ảnh âm bản của (a) (Nguồn: Hệ y học G.E.) Phép biến đổi âm bản rất thích hợp cho việc làm nổi bật các chi tiết màu xám hay màu trắng trong các vùng tối của bức ảnh, đặc biệt là trong các vùng mà màu đen là chủ yếu. Hình 3.7 là một ví dụ. Mặc dầu nội dung hiển thị là như nhau trong cả hai hình, nhưng hình 3.7(b) ta dễ dàng thấy và phân tích được những chi tiết của khối u hơn (phần màu đen của khối u trong ảnh âm bản dễ thấy hơn phần màu trắng của khối u trong ảnh gốc). Chương 3- Nâng cao chất lượng ảnh  

Page 68

Giáo trình xử lý ảnh số  

3.2.2 Phép biến đổi Log Dạng chung của phép biến đổi log được chỉ ra trong hình 3.4 là: s = clog(1+r)

(3.6)

trong đó c là hằng số, và giả sử rằng r ≥ 0. Hình dạng của cung log trong hình 3.7 chỉ ra rằng phép biến đổi này ánh xạ một khoảng hẹp của các giá trị cấp xám thấp trong ảnh đầu vào thành một khoảng rộng hơn của ảnh đầu ra và ngược lại biến một khoảng rộng các giá trị cấp xám cao trong ảnh đầu vào thành một khoảng hẹp các giá trị cấp xám của ảnh đầu ra. Chúng ta sẽ sử dụng phép biến đổi loại này để mở rộng các giá trị của các điểm ảnh tối trong một ảnh trong khi nén các giá trị cấp xám cao lại. Điều trái ngược xảy ra đối với phép biến đổi log ngược.

Hình 3.8. Ví dụ về phép biến đổi log: (a) Phổ Fourier, (b) Kết quả việc áp dụng phép biến đổi log với c=1. 3.2.3 Phép biến đổi lũy thừa Phép biến đổi lũy thừa có dạng cơ bản như sau: s = c.rr

(3.7)

trong đó c và γ là những hằng số dương. Hình 3.9 chỉ ra các đường cong tương ứng của phép biến đổi lũy thừa với γ từ nhỏ đến lớn và c = 1. Biểu diễn Chương 3- Nâng cao chất lượng ảnh  

Page 69

Giáo trình xử lý ảnh số  

phép biến đổi lũy thừa cho ở công thức (3.7) với các giá trị khác nhau của γ từ 0.04 đến 25.0. Cũng như biến đổi log, các đường cong hàm lũy thừa với giá trị γ nhỏ (< 1) ánh xạ một vùng nhỏ cấp xám các điểm ảnh tối sang một vùng lớn hơn và ngược lại với các điểm ảnh sáng hơn. Tuy nhiên, không giống như biến đổi log, ta nhận thấy ở đây một họ các đường cong có thể của phép biến đổi lũy thừa bằng ứng với các giá trị khác nhau của γ. Như ở hình 3.9, những đường cong ứng với γ > 1 có tác dụng ngược lại với những đường cong ứng với γ < 1.

Hình 3.9. Biểu diễn đồ thị của hàm với các giá trị khác nhau của s = c.rr với các giá trị khác nhau của γ (c = 1 trong tất cả các trường hợp) Theo quy ước, tham số mũ trong công thức (3.7) là gamma (γ). Quá trình điều chỉnh hiện tượng đáp ứng theo luật lũy thừa được gọi là điều chỉnh gamma (gamma correction). Ví dụ, các thiết bị CRT thường có đáp ứng theo luật lũy thừa xấp xỉ từ 1.8 đến 2.5. Từ hình 3.9 ta thấy ứng với γ = 2.5, phép biến đổi sẽ làm cho ảnh trở nên tối hơn. Điều này được minh họa như trong hình 3.10. Hình 3.10(a) là một ảnh xám có một chuyển tiếp mịn – đầu vào cho một màn hình Chương 3- Nâng cao chất lượng ảnh  

Page 70

Giáo trình xử lý ảnh số  

CRT. Tuy nhiên, hình ảnh xuất hiện trên màn hình lại tối hơn, do hiệu ứng do hiệu ứng tạm gọi là hiệu ứng gamma (hình 3.10(b)). Do đó, để hình ảnh xuất hiện như ảnh gốc trên màn hình thì trước khi đưa vào màn hình ta chỉnh lại ảnh gốc theo phép biến đổi ngược lại, tức s = r1/2.5 = r0.4. Kết quả được chỉ ra trong hình 3.10(c). Sau khi đưa vào màn hình ảnh vừa được chỉnh này, nó sẽ được hiển thị gần giống như ảnh gốc, hình 3.10(d). Điều này cũng tương tự như với các thiết bị khác như máy quét, máy in. Sự khác nhau giữa các thiết bị này chỉ là giá trị cụ thể của gamma.

(a)

(c)

Chương 3- Nâng cao chất lượng ảnh  

(b)

(d)

Page 71

Giáo trình xử lý ảnh số  

Hình 3.10. Hiệu chỉnh Gamma (a) Ảnh có cấp xám biến đổi tuyến tính (b) Ảnh (a) được hiển thị lên màn hình (c) Ảnh (a) sau khi được điểu chỉnh gamma (d) Ảnh (c) được hiển thị lên màn hình . Ngoài ứng dụng trong việc điều chỉnh gamma, các biến đổi lũy thừa còn được sử dụng trong nhiều những thao tác điều chỉnh độ tương phản khác. Như trong hình 3.11, nhờ áp dụng biến đổi lũy thừa mà ta có thể thấy được rõ hơn các chi tiết trong vùng tối (giãn độ tương phản trong vùng tối). Ngược lại, trong hình 3.9, ảnh gốc hơi mờ (do được chụp vào ban ngày, dưới ánh mặt trời quá sáng) nên người ta áp dụng phép biến đổi này với γ > 1 để làm giãn độ tương phản của ảnh trong vùng sáng (để thấy rõ hơn các chi tiết trong vùng này).

(a)

(b)

(c)

(d)

Hình 3.11. Ví dụ về phép biến đổi hàm mũ (a) Ảnh cộng hưởng tử (MRI) một đoạn xương gãy của người (b-d) Kết quả của việc áp dụng hàm biến đổi s = c.r γ với c = 1 và γ = 0,6; 0,4 và 0,3. (Nguồn: (a) David R. Pickens, (b-d) R.C. Gonzalez, R.E. Woods) Chương 3- Nâng cao chất lượng ảnh  

Page 72

Giáo trình xử lý ảnh số  

(a)

(c)

(b)

(d)

Hình 3.11. Ví dụ khác về phép biến đổi hàm mũ (a) Ảnh chụp từ máy bay; (b)-(d). Kết quả của việc áp dụng hàm biến đổi s = c.r γ với c = 1 và γ = 3,0; 4,0 và 3,0. (Nguồn: (a) NASA, (b-d) R.C. Gonzalez, R.E. Woods) 3.2.4 Các hàm biến đổi tuyến tính từng phần a) Giản độ tương phản Một trong những hàm tuyến tính từng phần đơn giản nhất là phép biến đổi giản độ tương phản. Các ảnh có độ tương phản thấp có thể do cường độ ánh sáng kém, hoặc do bộ cảm ứng không tốt. Ý tưởng giản độ tương phản là gia tăng các khoảng cấp xám trong ảnh. Hình 3.12(a) chỉ ra phép biến đổi cơ bản sử dụng phép giản độ tương phản. Vị trí của điểm (r1, s1) và (r2, s2) điều khiển hình dạng của hàm biến đổi. Nếu r1 = s1 và r2 = s2, phép biến đổi là một hàm tuyến tính mà kết quả không thay đổi trong các cấp xám. Nếu r1 = r2, s1 = 0 và s2 = L-1, phép biến đổi trở thành hàm phân ngưỡng và ảnh tạo ra là các ảnh nhị phân như minh họa trong hình 3.2(b). Các giá trị trung bình của (r1, s1) và (r2, s2) cho kết quả là các bậc khác nhau về cấp xám của ảnh đầu ra. Nói chung, r1 ≤ r2 và s1 ≤ s2 vì vậy các hàm là đơn trị và đơn điệu tăng.

Chương 3- Nâng cao chất lượng ảnh  

Page 73

Giáo trình xử lý ảnh số  

(a)

(b)

(c)

(d)

Hình 3.12. Ví dụ về nâng cao độ tương phản (a) Hình dạng của hàm biến đổi (b) Ảnh có độ tương phản thấp (c) Kết quả của việc nâng cao độ tương phản (a) (d) Ảnh phân ngưỡng của (a). (Nguồn: (b)Roger Heady, (a, c, d) R.C. Gonzalez, R.E. Woods) b) Làm mỏng mức xám Có nhiều phương pháp để thực hiện việc làm mỏng mức xám, nhưng thông thường có hai cách tiếp cận; Cách tiếp cận thứ nhất là cho hiển thị một giá trị lớn đối với tất cả các cấp xám trong miền cần quan tâm và một giá trị nhỏ đối với những cấp xám còn lại. Phép biến đổi này được chỉ ra trong hình 3.13(a), kết quả là một ảnh nhị phân. Cách tiếp cận thứ hai là dựa trên phép biến đổi được chỉ ra trong hình 3.13(b), làm sáng trong khoảng cần tác động của các cấp xám nhưng không thay đổi nền của ảnh. Hình 3.13(c) chỉ ra ảnh đa cấp xám và hình 3.13(d) chỉ ra kết quả của việc sử dụng phép biến đổi trong hình 3.13(a).

Chương 3- Nâng cao chất lượng ảnh  

Page 74

Giáo trình xử lý ảnh số  

(a)

(c)

(b)

(d)

Hình 3.13. Ví dụ về làm mỏng cấp xám (a) Phép biến đổi làm nỗi bật đoạn mức xám [A, B] và đưa tất cả các mức xám khác về một hằng số (b) Phép biến đổi làm nỗi bật đoạn mức xám [A, B] nhưng vẫn giữ nguyên các mức xám khác (c) Ảnh gốc (d) Kết quả của việc áp dụng phép biến đổi ở (a) lên ảnh (c) (Nguồn: R.C. Gonzalez, R.E. Woods). c) Làm mỏng mặt phẳng bít Giả sử rằng mỗi điểm ảnh trong ảnh được biểu diễn bởi 8 bit. Tưởng tượng rằng, ảnh được cấu thành từ 8 mặt phẳng một bit, từ mặt phẳng bit 0 là bit ít có ý nghĩa nhất cho đến mặt phẳng bít 7 là bit có ý nghĩa nhất. Theo quy định của byte, mặt phẳng 0 (ứng với bit 0) chứa tất cả những bit bậc thấp nhất trong các byte của những điểm ảnh trong ảnh, mặt phẳng 7 (ứng với bit 7) chứa tất cả những bit bậc cao. Hình 3.14 minh họa cho những ý tưởng này, hình 3.14 chỉ ra các mặt phẳng bit khác nhau đối với ảnh trong hình 3.15. Chương 3- Nâng cao chất lượng ảnh  

Page 75

Giáo trình xử lý ảnh số  

Hình 3.14. Biểu diễn các mặt phẳng ảnh của một bức ảnh 8-bit. (Nguồn: R.C. Gonzalez, R.E. Woods)

Hình 3.15. Ảnh fractal 8-bit (Nguồn: Melissa D. Bline)

Chương 3- Nâng cao chất lượng ảnh  

Page 76

Giáo trình xử lý ảnh số  

Hình 3.16. Tám mặt phẳng ảnh của ảnh trong hình 3.15. Số được ghi ở góc phải dưới của mỗi ảnh là số thứ tự của mặt phẳng ảnh (Nguồn: R.C. Gonzalez, R.E. Woods).

3.3 Xử lý lược đồ mức xám 3.3.1. Cân bằng lược đồ mức xám (histogram) Lược đồ mức xám của ảnh số với các mức xám nằm trong khoảng từ [0, L-1] là một hàm rời rạc h(rk ) = n k , trong đó rk   là mức xám thứ k và nk là số các điểm ảnh trong ảnh có cấp xám là rk . Trong thực tế, người ta chuẩn hóa lược đồ xám bằng cách chia giá trị của nó cho tổng số các điểm ảnh trong ảnh, ký hiệu bởi n. Vì vậy, một lược đồ xám chuẩn hóa được cho bởi p(rk ) = n k / n với k = 0, 1, 2, ..., L-1. Có thể

Chương 3- Nâng cao chất lượng ảnh  

Page 77

Giáo trình xử lý ảnh số  

nói rằng, là ước lượng xác suất xảy ra cấp xám thứ rk . Chú ý rằng, tổng của tất cả các thành phần của lược đồ xám được chuẩn hóa bằng 1. Lược đồ xám là một trong những yếu tố cơ bản trong kỹ thuật xử lý ảnh trong miền không gian. Ta có thể nâng cao chất lượng ảnh thông qua việc xử lý lược đồ xám. Lược đồ xám cũng là một công cụ rất hữu ích trong các ứng dụng khác của xử lý ảnh, chẳng hạn như nén ảnh và phân đoạn ảnh. Việc tính toán trên lược đồ xám rất đơn giản, nên việc thiết kế phần cứng để thực hiện các công việc tính toán này rất “kinh tế”. Đây chính là nguyên nhân nó rất thích hợp trong các thao tác xử lý ảnh thời gian thực. Xét các ảnh trong hình 3.17, cùng một ảnh gốc với các đặc tính cấp xám khác nhau: tối, sáng, tương phản thấp, tương phản cao. Phía bên phải là các lược đồ xám tương ứng với những ảnh phía bên trái. Trục hoành của mỗi lược đồ xám tương ứng với các giá trị cấp xám . Trục tung tương ứng với các giá trị của h(rk ) = n k hoặc p (rk ) = n k / n nếu các giá trị được chuẩn hóa.

Trong một ảnh tối thì các các thành phần của lược đồ xám sẽ tập trung ở phía tối của cấp xám. Tương tự, các thành phần của lược đồ xám trong ảnh sáng sẽ tập trung ở phía sáng của cấp xám. Một ảnh với độ tương phản thấp có lược đồ xám sẽ có dãi hẹp và tập trung ở giữa của cấp xám. Đối với ảnh có độ tương phản cao thì các thành phần của lược đồ xám sẽ phủ khắp các mức xám. Xác suất để gặp ra mức xám rk trong một ảnh được cho bởi biểu thức: p (rk ) =

nk , với k=0, 1, 2, …., L-1 n

(3.8)

trong đó, n là tổng số điểm ảnh trong ảnh, nk là số điểm ảnh có mức xám rk và L là tổng số các cấp xám trong ảnh. Lúc này ta có hàm biến đổi: s k = T (rk ) =

k

∑p

r

(r j ) =

j =0

Chương 3- Nâng cao chất lượng ảnh  

k

nj

∑n

, với k=0, 1, 2, …., L-1

(3.9)

j =0

Page 78

Giáo trình xử lý ảnh số  

Vì vậy, ảnh đầu ra sau quá trình xử lý đạt được bằng cách ánh xạ mỗi điểm ảnh với cấp xám rk trong ảnh đầu vào thành điểm ảnh tương ứng với cấp xám s k trong ảnh đầu ra. Phép biến đổi (ánh xạ) cho trong công thức (3.9) được gọi là cân bằng lược đồ xám hay tuyến tính hóa lược đồ xám. Chẳng hạn về cân bằng lược đồ xám được chỉ ra trong hình 3.18(a). Ảnh tối các điểm ảnh mức xám thấp chiếm đa số

Ảnh sáng các điểm ảnh mức xám cao chiếm đa số

Ảnh có độ tương phản thấp các điểm ảnh có mức xám trung bình

Ảnh có độ tương phản cao các điểm ảnh trãi đều trên không gian mức xám

Hình 3.17. Bốn loại ảnh cơ bản: tối, sáng, độ tương phản thấp, độ tương phản cao và các lược đồ xám tương ứng. Chương 3- Nâng cao chất lượng ảnh  

Page 79

Giáo trình xử lý ảnh số  

(a) (b) (c) Hình 3.18. Ví dụ về cân bằng lược đồ xám (a) Các ảnh từ hình 3.17 (b) Ảnh kết quả sau khi cân bằng lược đồ xám (c) Các lược đồ xám tương ứng lược đồ xám phía trên tương ứng với ảnh ban đầu, lược đồ xám phía dưới tương ứng với ảnh sau khi cân bằng lược đồ xám.

Chương 3- Nâng cao chất lượng ảnh  

Page 80

Giáo trình xử lý ảnh số  

Gọi X là ảnh ban đầu, giả sử rằng mức xám của điểm ảnh tại tọa độ (n, m) của ảnh X(n, m) ∈ [amin, amax] và rk là mức xám thứ k và n k là số các điểm ảnh của ảnh ban đầu. Gọi Y là ảnh sau khi thực hiện phép cân bằng lược đồ mức xám với Y(n, m) ∈ [bmin, bmax] khi đó ta có công thức căn bằng mức xám s k = T (rk ) = (bmax

k n j bmin )∑ + bmin , với k=0, 1, 2, …., L-1 j =0 n

(3.10)

3.3.2. Biến đổi độ tương phản dựa trên sự biến đổi lược đồ mức xám Về mặt khái niệm độ tương phản được hiểu dựa trên sự cảm thụ ảnh, về mặt khách quan thì độ tương phản có thể hiểu thông qua lược đồ mức xám của ảnh. Giả sử ảnh ban đầu X là một ảnh đa mức xám với giá trị mức xám tại tọa độ (n, m) của ảnh X(n, m) ∈ [Smin, Smax]. Khi đó một sự mở rộng lược đồ mức xám trong khoản [lmin, lmax] mà không làm thay đổi dạng của lược đồ mức xám được biểu diễn bởi công thức sau: Y ( n, m ) =

l max S max

l min l .l l .S * X (n, m) + min max max min , S min S max S min

với n=0, 1, 2, ….,N-1 và m=0,1, 2,…, M-1

(3.11)

3.4 Lọc tuyến tính Phép lọc ảnh được thực hiện đối với ảnh đầu vào và xử lý bởi một bộ lọc tạo ảnh đầu ra theo yêu cầu nào đó. X

Bộ lọc Φ

Y= Φ (X)

Phép lọc ảnh được ứng dụng trong: lọc nhiễu, lọc tăng cường độ nét, lọc đạo hàm dùng tách biên ảnh, lọc biểu diễn đa phân giải sử dụng trong phân vùng ảnh.

Chương 3- Nâng cao chất lượng ảnh  

Page 81

Giáo trình xử lý ảnh số  

Hình 3.19. Cơ chế của lọc không gian Các toán tử không gian thường dùng là các toán tử tuyến tính, tích chập và lọc. Mục đích chính của các toán tử này là làm cho ảnh tốt hơn, thuận tiện cho việc biến đổi và xử lý ảnh về sau như: tăng cường và nâng cao chất lượng ảnh, dò biên, trích Chương 3- Nâng cao chất lượng ảnh  

Page 82

Giáo trình xử lý ảnh số  

chọn đặc tính... Như đã đề cập trong phần 3.2.1, một số toán tử lân cận làm việc với các giá trị của các điểm ảnh trong lân cận đó và tương ứng với giá trị của ảnh con mà nó có số chiều giống số chiều của lân cận. Ảnh con đó được gọi là bộ lọc, mặt nạ, nhân, mẫu, hoặc cửa sổ, hai thuật ngữ đầu tiên thường được sử dụng nhất. Các giá trị trong bộ lọc ảnh con ám chỉ đến các hệ số hơn là nói đến các điểm ảnh. Khái niệm về bộ lọc có nguồn gốc từ phép biến đổi Fourier trong xử lý tín hiệu số còn được gọi là miền tần số. Trong phần này chúng ta sẽ thảo luận các toán tử lọc thực thi trực tiếp trên các điểm ảnh của ảnh. Chúng ta sẽ sử dụng thuật ngữ lọc không gian để chỉ sự khác nhau với xử lý bằng phương pháp truyền thống, đó là lọc miền tần số. Kết quả xử lý một điểm ảnh đầu ra tại một tọa độ (x,y) phụ thuộc vào điểm ảnh tại chính tọa độ đó và các điểm ảnh lân cận, láng giềng với điểm ảnh đó. Cân bằng lược đồ mức xám tương ứng thích ứng tại các điểm ảnh địa phương là một ví dụ của toán tử cục bộ hay toán tử láng giềng mà ở đó sử dụng một tập hợp các giá trị của điểm ảnh trong vùng lân cận của một điểm ảnh để xác định giá trị đầu ra cuối cùng (hình 3.19 - 3.20). Ngoài ra để thực hiện điều chỉnh tông mức xám cục bộ, các toán tử xử lý các láng giềng có thể sử dụng để lọc ảnh để thêm các độ mờ mềm, độ sắc nét chi tiết, làm nổi biên, hoặc khử nhiễu. Trong phần này, chúng ta tập trung vào toán tử lọc tuyến tính, có liên quan đến sự kết hợp có trọng số của điểm ảnh trong một phạm vi các láng giềng gần nhất. Toán tử xử lý các điểm ảnh láng giềng được sử dụng phổ biến nhất của nhà điều hành khu phố là một bộ lọc tuyến tính, trong đó một giá trị sản lượng của điểm ảnh được xác định như một tổng hợp có trọng số của các giá trịđiểm ảnh đầu vào (hình 3.20), g ( x, y ) = ∑f ( x + k , y + l )h(k , l )

(3.12)

k ,l

Các mục trong trọng số của nhân hay mặt nạ h(k, l) thường được gọi là các hệ số bộ lọc. Toán tử tương quan ở trên có thể được ký hiệu gọn hơn là Chương 3- Nâng cao chất lượng ảnh  

Page 83

Giáo trình xử lý ảnh số  

g= f

h

(3.13)

Một cách viết khác của công thức này là g ( x, y ) = ∑f ( x k , y l ) h(k , l ) = ∑f (k , l )h( x k , y l ) k ,l

(3.14)

k ,l

ở đó ký hiệu bù của f được biến đổi. Điều này được gọi là nhân chập và h thường được gọi là hàm đáp ứng xung. g = f *h

(3.15)

Cơ chế của lọc không gian được minh họa trong hình 3.19. Quá trình xử lý đơn giản là quá trình di chuyển mặt nạ lọc từng điểm một trong ảnh. Tại mỗi điểm (x, y), đáp ứng của bộ lọc tại điểm đó được tính bằng cách sử dụng mối quan hệ đã xác định trước. Đối với bộ lọc không gian tuyến tính, đáp ứng được cho bởi tổng của các tích của hệ các hệ số bộ lọc với điểm ảnh tương ứng trong vùng đề cập bởi mặt nạ bộ lọc. Đối với mặt nạ 3 x 3 như trong hình 3.19, kết quả, h, của bộ lọc tuyến tính với mặt nạ bộ lọc tại điểm (x, y) trong ảnh là: h=h( 1, 1)f (x 1, y 1)+h(1, 0)f (x 1, y)+...+h(0, 0) f (x, y)+....+h(1, 0)f (x+1, y)+h(1,1)f (x+1, y+1)

(3.16)

Đây là tổng của các tích của hệ số mặt nạ với điểm ảnh tương ứng dưới mặt nạ. Chú ý rằng, thông thường hệ số h(0, 0) trùng khớp với giá trị f(x, y) của ảnh, nghĩa là mặt nạ có tâm tại điểm (x, y) trong khi tính toán. Đối với mặt nạ kích thước m x n, chúng ta giả sử rằng m = 2a + 1 và n = 2b+1, trong đó a và b là những số nguyên không âm. Nghĩa là chúng ta thao tác trên những mặt nạ có kích thước lẻ, với kích thước nhỏ nhất là 3 x 3 (không loại trừ kích thước mặt nạ sử dụng là 1 x 1).

Chương 3- Nâng cao chất lượng ảnh  

Page 84

Giáo trình xử lý ảnh số  

Hình 3.20. Lọc các láng giềng (nhân chập): Ảnh ở bên trái là được nhân chập với bộ lọc ở giữa và thu được kết quả ảnh ở bên phải. Các điểm ảnh màu xanh sáng chỉ ra các điểm ảnh láng giềng ở ảnh đầu vào và điểm ảnh màu xanh nhạt là giá trị kết quả của điểm ảnh đầu ra tương ứng. Nói chung, bộ lọc tuyến tính của ảnh f có kích thước M x N với mặt nạ lọc có kích thước n được cho bởi công thức sau: a

b

∑∑h(k , l ) f ( x + k , y + l )

g ( x, y ) =

k= a l= b

(3.17)

trong đó a=(m - 1)/2 và b=(n-1)/2. Để có được ảnh lọc thì chúng ta phải áp dụng trên toàn ảnh, tức là i = 0, 1, 2, ..., M và j = 0, 1, 2, ..., N. Trong trường hợp này, chúng ta đảm bảo được rằng mặt nạ sẽ xử lý hết tất cả các điểm ảnh trong ảnh. Dễ dàng kiểm tra lại với giá trị m = n = 3, lúc đó biểu thức rút gọn lại như ví dụ trên. Công thức (3.17) còn được gọi là tích chập của mặt nạ với ảnh và mặt nạ bộ lọc nhiều lúc cũng còng được gọi là mặt nạ chập hay là nhân chập. Chúng ta cũng có thể ký hiệu đáp ứng R của ảnh tại điểm (x, y) với mặt nạ chập có kích thuớc m x n theo công thức: R=

m.n

∑h z

i i

= h1 z1 + h1 z 2 + ... + hm.n z m.n

i =1

(3.18)

h1 h2 h3 h4 h5 h6 h7 h8 h9 Hình 3.21. Biểu diễn khác của mặt nạ lọc không gian 3 x 3 Chương 3- Nâng cao chất lượng ảnh  

Page 85

Giáo trình xử lý ảnh số  

(e)

(a)

(b)

(c)

(d)

(f)

(g)

(h)

Hình 3.22. Một số toán tử lân cận: (a) ảnh gốc; (b) làm mờ ảnh; (c) ảnh sắc nét; (d) trơn với lọc bảo toàn đường biên; (e) ảnh nhị phân; (f) giãn ảnh; (g) biến đổi khoản cách; (h) kết nối các thành phần.  

Bộ lọc không gian phi tuyến cũng tác động lên các lân cận và cơ chế trượt mặt nạ qua ảnh tương tự như đề cập ở trên. Nói chung, toán tử lọc được dựa vào điều kiện các giá trị của điểm ảnh trong lân cận, và rõ ràng không sử dụng các hệ số theo kiểu tổng của các tích như mô tả trong công thức (3.17) và (3.18). Chương 3- Nâng cao chất lượng ảnh  

Page 86

Giáo trình xử lý ảnh số  

Cả toán tử tương quan và toán tử nhân chập là toán tử bất biến trượt tuyến tính mà ở đó tuân theo công thức sau: h o ( f 0 + f1 ) = h o f 0 + h o f1

(3.19)

khái niệm bất biến trược: Một hệ thống được gọi là bất biến trược nếu dịch chuyển đầu vào thì cũng tạo nên một dịch chuyển tương ứng của đầu ra. Theo phương trình (3. 20), nếu xung xảy ra ở gốc tọa độ, ta có: g (i, j ) = f (i + k , j + l ) ⇔ h o f 0 + h o f 1

3.5

(3.20)

Các bộ lọc không gian làm trơn ảnh

Các bộ lọc làm trơn được sử dụng để khử đi vết mờ và khử nhiễu. Khử viết mờ được sử dụng trong các bước tiền xử lý ảnh, chẳng hạn như bỏ đi các chi tiết nhỏ khỏi ảnh trước khi trich chọn các đối tượng, và lấp lại các đường lỗ hỏng nhỏ của đường thẳng hoặc cung. Khử nhiễu có thể được thực hiện bằng việc khử vết mờ bởi bộ lọc tuyến tính cũng như phi tuyến tính. 3.5.1 Lọc tuyến tính làm trơn Đầu ra (đáp ứng) của bộ lọc không gian làm trơn tuyến tính đơn giản là cấp xám trung bình của các điểm ảnh trong lân cận của điểm ảnh. Những bộ lọc này thường được gọi là bộ lọc trung bình. Ý tưởng cơ bản của bộ lọc làm trơn rất dễ hiểu. Bằng cách thay thế giá trị của mỗi điểm ảnh bằng giá trị trung bình của các cấp xám trong lân cận được xác định bởi mặt nạ lọc. Kết quả của quá trình xử lý này sẽ làm giảm đi những “điểm nhô” trong các cấp xám. Bởi vì nhiễu ngẫu nhiên có đặc trưng là chứa những điểm nhô trong các cấp xám, ứng dụng rõ ràng nhất của làm trơn là khử nhiễu. Tuy nhiên, các cạnh cũng được đặc trưng bởi các điểm nhô trong các cấp xám, vì vậy lọc trung bình sẽ có tác động phụ lên các cạnh của các đối tượng trong ảnh.

Chương 3- Nâng cao chất lượng ảnh  

Page 87

Giáo trình xử lý ảnh số  

1 1 1 1 x 1 1 1 9

1 x 16

1 1 1

1 2 1 2 4 2 1 2 1

Hình 3.23. Hai mặt nạ làm trơn 3 x 3 Ứng dụng chính của các lọc trung bình là khử đi các chi tiết không liên quan trong ảnh. Hình 3.23 đưa ra hai bộ lọc làm trơn 3 × 3. Bộ lọc đầu tiên cho ra giá trị trung bình chuẩn của các điểm ảnh trong lân cận 3 × 3. Ta có thể biểu diễn lại bộ lọc này bằng cách thay các hệ số trong công thức (3.18): 1 9 R = ∑z i 9 i =1

(3.21)

Mặt nạ thứ hai được chỉ ra trong hình 3.23 là một trường hợp thú vị của lọc trung bình, người ta thường gọi là trung bình có trọng số. Thuật ngữ này được sử dụng để chỉ các điểm ảnh được nhân với các hệ số khác nhau, do đó có thể nâng tầm quan trọng của một số điểm ảnh. Như trong mặt nạ thứ hai của hình 3.23, điểm ảnh trung tâm của mặt nạ được nhân với giá trị lớn hơn so với những điểm ảnh khác, vì vậy điểm ảnh này có tầm quan trọng hơn những điểm ảnh khác trong việc tính giá trị trung bình. Trong khi 4 điểm ảnh ở 4 góc của mặt nạ do cách xa tâm của mặt nạ nên chỉ có hệ số là 1. Mục đích của việc gán trọng số của các điểm ảnh tỷ lệ nghịch theo khoảng cách từ điểm đó đến tâm (của mặt nạ) là nhằm giảm đi sự “làm mờ” (blurring) trong quá trình “làm trơn” (smoothing). Chúng ta có thể chọn những hệ số khác cho mặt nạ lọc, miễn là theo chiến lược trên. Tuy nhiên, mặt nạ trên (thứ hai) thường được sử dụng vì tổng các hệ số của nó là 16, một con số rất thuận tiện trong việc tính toán trên máy tính (là mũ của 2). Trong thực tế, ta rất khó nhận ra sự khác biệt sau khi áp dụng một trong trong hai bộ lọc trên vì lân cận mà nó tác động quá nhỏ (3 × 3). Theo công thức (3.17), khi thực hiện lọc trên ảnh có kích thước M × N với bộ lọc trung bình có trọng số với kích thước m × n (m và n là số lẻ), đáp ứng tại điểm ảnh có vị trí (x, y) được tính theo biểu thức: Chương 3- Nâng cao chất lượng ảnh  

Page 88

Giáo trình xử lý ảnh số   a

a

∑∑h(k , l ) f (i + k , j + l ) g (i, j ) =

k = al = a a

b

∑∑h(k , l )

(3.22)

k = al = b

Các tham số trong biểu thức này được định nghĩa giống như trong biểu thức (3.17). Khi áp dụng biểu thức (3.22) trên toàn bộ các điểm ảnh của ảnh gốc (tức là với x = 0, 1, 2, ..., M-1 và y = 0, 1, 2, ..., N-1), ta sẽ có được ảnh kết quả sau. Mẫu số trong biểu thức (3.22) là tổng của các hệ số trong ma trận, vì vậy nó là một hằng số và được tính toán một lần duy nhất. Đây chính là hệ số tỉ lệ được áp dụng cho toàn bộ các điểm ảnh của ảnh đầu ra.

Hình 3.24. Biểu diễn khác của mặt nạ lọc không gian 3 x 3 Chương 3- Nâng cao chất lượng ảnh  

Page 89

Giáo trình xử lý ảnh số  

Hình 3.24 minh họa các kết quả khác nhau khi thực hiện lọc với các bộ lọc có kích thước khác nhau. Các bộ lọc trung bình hình vuông tương ứng được sử dụng trong các hình này có kích thước lần lượt là n = 3, 5, 7 và 35 điểm ảnh. Kích thước của mặt lọc càng lớn thì ảnh kết quả càng bị nhòe và khác xa ảnh gốc.

(a)

(b)

(c)

Hình 3.25. Lọc đối tượng (a) Ảnh chụp các hành tinh quanh trái đất; (b) Ảnh sau khi lọc với mặt nạ lọc trung bình 15 × 15; (c) Kết quả phân ngưỡng của ảnh (b) với ngưỡng là 25% của cấp độ xám sáng nhất. Như đã đề cập ở trên, lọc trung bình không gian sẽ làm mờ ảnh để lấy các đối tượng cần thiết trong ảnh, chẳng hạn như cho đối tượng nhỏ có cường độ sáng lẫn với màu nền và các đối tượng lớn dẽ phát hiện hơn. Kích thước của mặt nạ quan hệ mật thiết với kích thước của các đối tượng mà chúng ta cần xóa đi để làm nền. Như minh họa trong hình trong hình 3.25(a), một ảnh được chụp từ kính viễn vọng Hubble về các hành tinh quay quanh trái đất. Hình 3.25(b) là kết quả có được sau khi lọc trung bình với mặt nạ lọc có kích thước 15 × 15. Chúng ta thấy rằng các đối tượng có kích thước nhỏ bị trộn lẫn với nền hoặc bị giảm cường độ sáng. Sử dụng thêm kỹ thuật phân ngưỡng đối với hình 3.25(b) với giá trị ngưỡng bằng 25% giá trị của cường độ sáng nhất của các vết mờ trong ảnh chúng ta có được hình 3.25(c). So sánh với ảnh gốc chúng ta thấy rằng, ảnh thu được có các đối tượng rõ ràng hơn, lớn hơn và sáng hơn.

Chương 3- Nâng cao chất lượng ảnh  

Page 90

Giáo trình xử lý ảnh số  

3.5.2 Lọc thống kê thứ tự Lọc thống kê là bộ lọc không gian phi tuyến tính với đáp ứng dựa trên thứ tự (xếp loại) các điểm ảnh trong vùng ảnh được lọc, và sau đó thay thế giá trị của điểm ảnh trung tâm bằng giá trị đã được xác định thôg qua kết quả xếp loại. Ví dụ hay nhất trong phần này đó là bộ lọc trung vị, đó là bộ lọc thực hiện việc thay giá trị điểm ảnh bởi giá trị tại điểm giữa của các cấp xám trong lân cận. Lọc trung vị được sử dụng phổ biến bởi vì nó khử nhiễu rất tốt, nhất là đối với những loại nhiễu ngẫu nhiên với ít vết nhòe hơn so với lọc trơn tuyến tính cùng kích thước. Lọc trung vị có hiệu quả đặc biệt khi có nhiễu xung, bởi vì nó xuất hiện như những chấm trắng và đen ở trên ảnh. Trung vị ξ của một tập các giá trị là giá trị mà ở đó có một nữa các giá trị trong tập nhỏ hơn hoặc bằng ξ và một nữa các giá trị lớn hơn hoặc bằng ξ. Để thực hiện lọc trung vị tại một điểm trong ảnh, đầu tiên chúng ra phải sắp xếp các giá trị của điểm ảnh trong lân cận, xác định giá trị trung vị và gán giá trị đó cho điểm ảnh. Ví dụ với lân cận 3 × 3 thì giá trị trung vị chính là giá trị tại vị trí thứ 5 của lân cận, với lân cận 5 × 5 thì giá trị trung vị là giá trị tại vị trí thứ 13 của lân cận, ... Khi có một vài giá trị trong lân cận bằng nhau, thì những giá trị này được nhóm lại thành một nhóm. Ví dụ, giả sử có lân cận 3 × 3 gồm các giá trị (10, 20, 20, 20, 15, 20, 20, 25, 100), sau khi sắp xếp ta có (10, 15, 20, 20, 20, 20, 20, 25, 100) và lúc đó giá trị trung vị thu được là 20. Vì vậy, đối với lọc trung vị, vấn đề quan trong nhất là phải xây dựng được một hàm cho phép lấy giá trị trung vị của một tập các giá trị. Hình 3.26(a) là ảnh X quang của một bo mạch đã bị thay đổi do nhiễu gây ra. Hình 3.26(b) là kết quả của lọc trung bình với mặt nạ lọc có kích thước 3 × 3 và hình 3.26(c) là kết quả của lọc trung vị với lân cận 3 × 3. Từ ví dụ này ta thấy rõ rằng lọc trung vị rất thích hợp với ảnh có nhiễu muối tiêu hơn là lọc trung bình.

Chương 3- Nâng cao chất lượng ảnh  

Page 91

Giáo trình xử lý ảnh số  

(a) (b) (c) Hình 3.26. Lọc trung bình (a) Ảnh X-Quang của một bản mạch (b) Giảm nhiễu với bộ lọc trung bình 3 × 3 (c) Giảm nhiễu với bộ lọc trung vị 3 × 3 (Nguồn: (a) Joseph E. Pascente, Lixi, Inc. (b-c) R.C. Gonzalez, R.E. Woods)

3.6

Các bộ lọc không gian tăng cường độ nét

Mục tiêu cơ bản của “làm nét” (sharping) là làm nỗi bật các chi tiết trong ảnh, tăng cường các chi tiết đã bị làm mờ, cũng như những sai sót do các hiệu ứng tự nhiên trong quá trình thu nhận ảnh. Ý tưởng chính của các bộ lọc làm nét là dựa trên sự khác biệt giữa cấp độ xám của các điểm ảnh. Toán tử đạo hàm rất phù hợp trong trường hợp này vì độ lớn của đáp ứng của một toán tử đạo hàm tỷ lệ với mức độ không liên tục (sự thay đổi về cấp độ xám) của ảnh tại điểm mà toán tử này được áp dụng. 3.6.1 Khái niệm bộ lọc dựa trên đạo hàm Trong hai phần sau đây chúng ta sẽ xem xét chi tiết một số bộ lọc làm nét dựa trên đạo hàm bậc nhất và đạo hàm bậc hai. Trước khi xem xét cụ thể những vấn đề này chúng ta cùng xét đến một số tính chất của đạo hàm trong ngữ cảnh số hóa. Để dễ hiểu, chúng ta tập trung vào đạo hàm một chiều. Trong thực tế, chúng ta tập trung chủ yếu vào việc lấy đạo hàm trong các vùng cấp xám không thay đổi (các phân đoạn phẳng, flat segments), tại những vị trí bắt đầu và kết thúc của các đoạn không liên tục (dốc hay dốc đứng). Các kiểu không liên tục này có thể được sử dụng để mô hình cho các điểm nhiễu, đoạn nhiễu, cũng như cạnh nhiễu trong ảnh.

Chương 3- Nâng cao chất lượng ảnh  

Page 92

Giáo trình xử lý ảnh số  

Đạo hàm của một hàm số được định nghĩa dựa vào sai phân (sự khác biệt về cấp xám giữa các điểm ảnh trong lân cận nào đó). Trong ngữ cảnh số hóa, ta có nhiều cách khác nhau để định nghĩa (xấp xỉ) đạo hàm (bậc 1 và bậc 2). Tuy nhiên, các định nghĩa này phải thỏa mãn một số tính chất. Với đạo hàm bậc nhất, định nghĩa phải thỏa mãn 3 điều kiện sau: (1) Bằng không tại những phân đoạn phẳng (vùng có các cấp xám cố định) (2) Khác không tại những điểm đầu và cuối của dốc, và (3) Khác không tại những điểm nằm trên dốc. Tương tự như vậy bất kỳ định nghĩa đạo hàm bậc hai nào cũng phải thỏa mãn: (1) Bằng không tại những vùng phẳng, (2) Khác không tại những vị trí bắt đầu và (3) Khác không dọc theo các đoạn dốc. Một định nghĩa cơ bản đối với hàm cấp 1 của hàm một chiều f(x) là sai phân: ∂f = f ( x + 1) − f ( x) ∂x

(3.23)

Chúng ta đạo hàm từng phần ở đây để thuận tiện hơn khi chuyển qua xét hàm 2 biến của ảnh f(x, y). Lúc đó, chúng ta sẽ sử dụng các đạo hàm từng phần dọc theo hai trục x và y. Tương tự, chúng ta định nghĩa đạo hàm cấp 2 là sai phân: ∂2 f = f ( x + 1) + f ( x − 1) − 2 f ( x) (3.24) ∂x 2 Dễ dàng kiểm chứng được rằng hai định nghĩa đạo hàm này thỏa mãn các điều kiện đề ra.

Hình 3.27(a) minh họa một ảnh đơn giản chứa các đối tượng thuần nhất, một đường thẳng và một điểm đơn. Hình 3.27(b) biểu diễn các cấp xám của một đoạn thẳng cắt ngang ảnh, đi qua điểm nhiễu. Chúng ta sẽ sử dụng biểu diễn này để xem Chương 3- Nâng cao chất lượng ảnh  

Page 93

Giáo trình xử lý ảnh số  

xét đạo các tính chất của hàm bậc nhất và bậc hai mà chúng ta vừa định nghĩa ở trên. Hình 3.27(c) là biểu diễn đơn giản hóa của biểu diễn ở hình (b) với số lượng số đủ để phân tích đạo hàm bậc nhất và đạo hàm bậc hai trên điểm nhiễu, đoạn thẳng và cạnh của đối tượng. Trong biểu diễn trên, sự chuyển trạng thái trên đường dốc (xuống) qua 4 điểm ảnh, nhiễu là một điểm đơn, độ rộng của đoạn thẳng có độ dày 3 (điểm ảnh). Số các cấp xám trong ảnh trên là 8. Từ hình trên ta có được một số nhận xét so sánh giữa đạo hàm bậc nhất và đạo hàm bậc hai: 1. Đạo hàm bậc nhất cho kết quả biên dày hơn. 2. Đạo hàm bậc hai đáp ứng mạnh hơn đối với chi tiết mịn, chẳng hạn như đoạn thẳng mỏng, điểm cô lập. 3. Đạo hàm bậc nhất đáp ứng mạnh đối với dốc. 4. Đạo hàm bậc hai cho kết quả đáp ứng kép nơi có sự nhảy thay đổi cấp xám. Chúng ta cũng chú ý rằng, đạo hàm bậc hai đáp ứng mạnh đối với đoạn thẳng hơn dốc đứng, điểm ảnh hơn đoạn thẳng. Đạo hàm bậc hai thường phù hợp hơn so với đạo hàm bậc nhất đối với việc tăng cường ảnh bởi vì khả năng của đạo hàm bậc hai tăng cường chi tiết mịn tốt hơn.

Chương 3- Nâng cao chất lượng ảnh  

Page 94

Giáo trình xử lý ảnh số  

(a)

(b)

(c)

Hình 3.27. Ví dụ về đạo hàm bậc nhất và bậc hai một chiều trên ảnh (a) Một ảnh đơn giản (b) Biểu diễn của một đoạn cắt ngang tại vị trí trung tâm của ảnh (c) Biểu diễn rõ hơn của đoạn ảnh này cùng với các đạo hàm bậc 1 và bậc 2 (Nguồn: R.C. Gonzalez, R.E. Woods) 3.6.2 Toán tử đạo hàm bậc nhất (Gradient) Đạo hàm bậc nhất trong xử lý ảnh được thực hiện bằng cách sử dụng độ lớn của gradient. Với hàm f(x, y), gradient của f tại tọa độ (x, y) được định nghĩa là một vectơ cột hai chiều: Chương 3- Nâng cao chất lượng ảnh  

Page 95

Giáo trình xử lý ảnh số  

⎡ ∂f ⎤ ⎡ G x ⎤ ⎢ ∂x ⎥ ∇f = ⎢ ⎥ = ⎢ ∂f ⎥ ⎣⎢ G y ⎦⎥ ⎢ ⎥ ⎣⎢ ∂y ⎦⎥ Độ lớn của véc tơ được cho bởi:

∇f = max(∇f ) = [G + G 2 x

]

2 1/ 2 y

⎡⎛ ∂f ⎞ 2 ⎛ ∂f ⎞ 2 ⎤ = ⎢⎜ ⎟ + ⎜⎜ ⎟⎟ ⎥ ⎢⎣⎝ ∂x ⎠ ⎝ ∂y ⎠ ⎥⎦

(3.25)

1/ 2

(3.26)

Các thành phần của vectơ gradient là các toán tử tuyến tính, nhưng độ lớn của của vectơ này là không tuyến tính vì toán tử lấy căn bậc hai là không tuyến tính. Mặt khác đạo hàm từng phần trong công thức (3.25) không bất biến với phép quay, nhưng độ lớn của vectơ gradient thì lại bất biến với phép quay. Mặc dầu không hoàn toàn chính xác nhưng người ta thường nói gradient để nói đến độ lớn của vectơ gradient. Chúng ta sẽ sử dụng thuật ngữ này và sẽ nói rõ là vectơ hay độ lớn của vectơ trong những trường hợp cụ thể (khi mà rất dễ xảy ra sự lẫn lộn giữa hai khái niệm). Thông thường chúng ta xấp xỉ độ lớn của gradient bằng giá trị tuyệt đối thay vì căn bậc hai của các bình phương như sau: ∇f = G x + G y

(3.27)

Công thức này đơn giản và dễ tính toán hơn so với công thức trước đó, nhưng tính chất bất biến nói chung bị mất đi. Chúng ta sử dụng ký hiệu trong hình 3.28(a) để ký hiệu cho các điểm ảnh trong vùng 3 × 3. Ví dụ, điểm tâm của mặt nạ, z5, tương ứng với điểm ảnh f(x, y), điểm z1 của mặt nạ tương ứng với điểm ảnh f(x-1, y-), ... Như đã chỉ ra trong phần 3.5.1, xấp xỉ đơn giản nhất đối với đạo hàm bậc nhất là Gx = (z8 – z5) và Gy = (z6 – z5). Hai định nghĩa khác được cung cấp bởi Roberts [1965] là: G x = ( z 9 − z 5 ) và G y = ( z8 − z 6 )

Chương 3- Nâng cao chất lượng ảnh  

(3.28) Page 96

Giáo trình xử lý ảnh số  

Nếu chúng ta quyết định sử dụng công thức (3.29), thì gradient được tính như sau:

∇f = [( z 9 − z 5 ) 2 + ( z8 − z 6 ) 2 ]

1/ 2

(3.29)

Nếu sử dụng giá trị tuyệt đối thì khi thay thế các đại lượng trong công thức (3.27) vào công thức (3.29) ta sẽ có xấp xỉ gradient như sau: ∇f = z 9

z 5 + z8

(3.30)

z6

Công thức này có thể được thực hiện với hai mặt nạ trong hình 3.28 (b) và (c) z1 z2 z3 z4 z5 z6 z7 z8 z9 (a)

-1 -2 -1 0 0 0 1 2 1 (b)

-1 0 1 -2 0 2 -1 0 1 (c)

-1 0 0 -1

0 -1 1 0

(d)

(3)

Hình 3.28. Các mặt nạ gradient (a) Ký hiệu của vùng ảnh kích thước 3 × 3 (b-e) Các mặt nạ để tính gradient tại điểm ảnh z5. Tổng các hệ số của mỗi mặt nạ đều bằng 0 (Nguồn: R.C. Gonzalez, R.E. Woods)

Các mặt nạ có kích thước chẵn thì sẽ khó thực hiện tính toán hơn. Mặc nạ lọc có kích thước nhỏ nhất thường được sử dụng có kích thước là 3 × 3. Một xấp xỉ sử dụng giá trị tuyệt đối tại điểm z5 với kích thước mặt nạ là 3 × 3 là: ∇f = ( z 7 + 2 z8 + z 9 ) − ( z1 + 2 z 2 + z 3 ) + ( z 3 + 2 z 6 + z 9 ) − ( z1 + 2 z 4 + z 7 )

(3.31)

Sự khác nhau giữa dòng thứ ba và thứ nhất của vùng ảnh 3 × 3 xấp xỉ đạo hàm theo hướng x và sự khác biệt gữa cột thứ ba và cột thứ nhất xấp xỉ đạo hàm theo hướng y. Hai mặt nạ trong hình 3.30(d) và (e) được gọi là các toán tử Sobel, được sử dụng để cài đặt công thức (3.31). Chú ý rằng, tổng các hệ số trong bốn mặt nạ ở hình 3.28 đều bằng 0 (nghĩa là đáp ứng của ảnh sẽ cho giá trị 0 trên vùng có cấp xám không thay đổi).

Chương 3- Nâng cao chất lượng ảnh  

Page 97

Giáo trình xử lý ảnh số  

Trong ví dụ ở hình 3.29(a) ta thấy có hai khuyết điểm trên biên ở góc 4 giờ và 5 giờ. Hình 3.29(b) chỉ ra gradient đạt được bằng cách áp dụng công thức (3.27) với hai toán tử Sobel trong hình 3.28(d) và (e). Chúng ta thấy rằng, vùng méo ở biên nhìn thấy rõ hơn trong hình 3.29(b) này.

Hình 3.29. Ví dụ về toán tử Sobel (a) Ảnh gốc (b) Gradient Sobel (Nguồn: (a) Pete Sites (b) R.C. Gonzalez, R.E. Woods) 3.6.3 Toán tử đạo hàm bậc hai (Laplace)

Trong phần này, chúng ta sẽ xem xét việc sử dụng đạo hàm bậc hai - hai chiều để tăng cường ảnh. Cách tiếp cận cơ bản là sử dụng định nghĩa đạo hàm bậc hai (áp dụng cho ảnh số) để xây dựng mặt nạ lọc tương ứng. Chúng ta quan tâm đến các bộ lọc đẳng hướng (isotropic filters), là các bộ lọc có đáp ứng độc lập với hướng của các vùng không liên tục trong ảnh. Nói cách khác, bộ lọc đẳng hướng là bất biến quay, nghĩa là nếu quay ảnh trước khi lọc cho ra kết quả như khi lọc trước sau đó mới quay ảnh.

Chương 3- Nâng cao chất lượng ảnh  

Page 98

Giáo trình xử lý ảnh số  

0 1 0

1 -4 1 (a)

0 1 0

1 1 1

1 -8 1 (b)

1 1 1

0 -1 0

-1 4 -1 (c)

0 -1 0

-1 -1 -1

-1 8 -1 (d)

-1 -1 -1

Hình 3.30. Các bộ lọc làm nét Laplace (a) Bộ lọc ứng với toán tử Laplace (b) Bộ lọc ứng với mở rộng của toán tử Laplace theo các lân cận chéo (c-d) Hai bộ lọc khác ứng với toán tử Laplace (Nguồn: R.C. Gonzalez, R.E. Woods)

Toán tử đạo hàm đẳng hướng đơn giản nhất là toán tử Laplace, mà, với ảnh f(x, y), được định nghĩa như sau: ∂2 f ∂2 f + (3.32) ∂x 2 ∂y 2 Ta thấy rằng toán tử Laplace là toán tử tuyến tính. Tuy nhiên, để có thể áp dụng toán tử Laplace trong xử lý ảnh số, ta phải viết lại công thức này ở miền rời rạc. Có nhiều cách khác nhau định nghĩa toán tử Laplace rời rạc bằng cách sử dụng lân cận, nhưng bất kể định nghĩa nào cũng phải thỏa mãn các tính chất của đạo hàm bậc hai như đã được đề cập trong phần 3.5.1. Định nghĩa của đạo hàm bậc hai rời rạc trong phần này được rất nhiều trong thực tế. Ta viết lại định nghĩa đạo hàm bậc hai từng phần theo hai hướng x và y như sau: ∇2 f =

∂2 f = f ( x + 1, y ) + f ( x − 1, y ) − 2 f ( x, y ) ∂x 2 ∂2 f = f ( x, y + 1) + f ( x, y − 1) − 2 f ( x, y ) ∂y 2 Áp dụng vào công thức (3.32), ta có: ∇ 2 f = [ f ( x + 1, y ) + f ( x − 1, y ) + f ( x, y + 1) + f ( x, y − 1)] − 4 f ( x, y )

(3.33)

(3.34)

(3.35)

Công thức này có thể được thực hiện bằng cách sử dụng mặt nạ như đã chỉ ra trong hình 3.30(a), nó cho kết quả đẳng hướng với các phép quay 900. Hai đường chéo có thể được sát nhập lại với nhau theo định nghĩa của toán tử Laplacian bằng cách thêm hai đại lượng vào công thức (3.35), mỗi một đại lượng cho một đường chéo. Hình 3.30(b) là mặt nạ ứng với trường hợp ta xét thêm hai đường chéo. Mặt nạ này cho kết quả bất biến với các phép quay 450. Hai mặt nạ chỉ ra trong hình 3.30 (cChương 3- Nâng cao chất lượng ảnh  

Page 99

Giáo trình xử lý ảnh số  

d) cũng là những mặt nạ thường dùng trong thực tế. Chúng dựa trên định nghĩa của toán tử Laplace theo hướng âm. Bởi vì toán tử Laplace là toán tử đạo hàm nên nó làm nổi bật các vùng không liên tục của cấp xám, đồng thời làm yếu đi các vùng phẳng. Điều này dẫn đến ảnh kết quả sau khi áp dụng toán tử Laplace sẽ không giữ lại được các chi tiết ban đầu của ảnh. Do đó, để khôi phục các chi tiết của ảnh gốc, người ta thường cộng ảnh kết quả với ảnh gốc để cho ra ảnh rõ nét (là ảnh vẫn giữ nguyên những chi tiết ban đầu nhưng các cạnh được làm nổi bật lên). Nếu toán tử Laplace có hệ số tâm là âm thì chúng ta sẽ lấy ảnh gốc trừ đi ảnh kết quả sau khi áp dụng toán tử Laplace thay vì cộng. Vì vậy công thức sau biểu thị một cách tổng quát cách áp dụng toán tử Laplace trong tăng cường ảnh: g ( x, y ) =

f ( x, y ) ∇2 f ( x, y ) f ( x, y ) + ∇2 f ( x, y )

(3.36)

Hình 3.31. Ví dụ về lọc Laplace làm nét (a) Ảnh cực bắc của mặt trăng (b) Ảnh đã được lọc Laplace (c) Ảnh Laplace sau khi thay đổi tỷ lệ (d) Ảnh sau khi được làm nét sử dụng biểu thức 3.7-5 (Nguồn: (a) NASA (b-d) R.C. Gonzalez, R.E. Woods)

Chương 3- Nâng cao chất lượng ảnh  

Page 100

Giáo trình xử lý ảnh số  

Hình 3.31(a) là ảnh bắc cực của mặt trăng. Hình 3.28(b) là kết quả của phép lọc ảnh này bởi mặt nạ Laplace trong hình 3.30(b). Vì ảnh Laplace chứa cả giá trị âm và giá trị dương nên để hiển thị người ta phải thay đổi tỷ lệ để làm sao giá trị cấp độ xám thấp nhất trong ảnh là 0 (chứ không phải một số âm). Hình 3.31(c) chính là hình 3.31(b) sau khi thay đổi tỷ lệ về cấp độ xám (chỉ để mục đích hiển thị). Chú ý rằng chi tiết nỗi bật của ảnh là các cạnh và các vùng không liên tục về cấp xám. Nền của ảnh chuyển từ đen (trong hình 3.31(b)) sang xám vì thao tác tỷ lệ hóa. Hình 3.31(d) là kết quả đạt được sau khi sử dụng công thức (3.36) để lọc ảnh. Chi tiết trong ảnh này rõ ràng sáng sủa và rõ nét hơn so với ảnh gốc. Các chi tiết trên ảnh được nhìn thấy rõ hơn, độ tương phản cao hơn. Đơn giản hóa

(a)

(b)

(c)

(d)

Hình 3.32. Ví dụ về bộ lọc Laplace tổ hợp (a) Hai bộ lọc Laplace tổ hợp (b) Ảnh gốc (c-d) Kết quả của việc áp dụng hai bộ lọc trên ảnh gốc(Nguồn: (a) Michael Shaffer (b-d) R.C. Gonzalez, R.E. Woods)

Chương 3- Nâng cao chất lượng ảnh  

Page 101

Giáo trình xử lý ảnh số  

Trong ví dụ trên, chúng ta thực hiện công thức (3.36) bằng cách trước hết tính toán ảnh được lọc bằng toán tử Laplace, sau đó trừ nó đi từ ảnh gốc. Công thức (3.36) có thể được viết lại như sau: g ( x, y) = f ( x, y)

[ f ( x + 1, y) + f ( x 1, y) + f ( x, y + 1) + f ( x, y 1)]+ 4 f ( x, y) [ f ( x + 1, y) + f ( x 1, y) + f ( x, y + 1) + f ( x, y 1)]

= 5 f ( x, y) Công thức này có được nhờ việc sử dụng mặt nạ như trong hình 3.30(a).

3.7

(3.37)

Cải thiện và nâng cao chất lượng ảnh

Mục tiêu của việc cải thiện và nâng cao chất lượng ảnh là tăng cường độ cảm thụ ảnh, trích chọn ra các đặc trưng mô tả nào đó để phân tích sau khi hiện thị ảnh, chẳng hạn như tách độ tương phản, làm nỗi cạnh, kỹ thuật màu giả, lọc nhiễu, làm nổi rõ các chi tiết của ảnh… Nâng cao chất lượng ảnh dùng trong việc trích chọn dấu hiệu, phân tích ảnh và hiển thị thông tin trực quan. Quá trình này không làm tăng lượng thông tin mà chỉ nhấn mạnh các đặc trưng đặc tả nào đó. Việc lựa chọn các thuật toán nâng cao chất lượng ảnh phụ thuộc vào các ứng dụng khác nhau. Các phương pháp cải thiện và nâng cao chất lượng ảnh như tăng độ tương phản sẽ ánh xạ mỗi mức xám của mỗi điểm ảnh vào mỗi mức xác khác bằng phép biến đổi tần xuất gọi chung là phép biến đổi “histogram”. Ngoài ra còn có những phương pháp nâng cao chất lượng ảnh bằng các phép biến đổi khác như: lọc nhiễu, tăng cường độ nét, tăng cường ảnh sử dụng toán tử số học và logic, tăng cường biên ảnh (làm nổi, phát hiện biên và tách biên). 3.6.1 Tăng cường ảnh sử dụng toán tử số học và logic

Toán tử số học và logic đòi hỏi các ảnh được thực hiện theo từng điểm một tương ứng giữa hai hay nhiều ảnh (trừ phép toán NOT thực hiện trên ảnh đơn). Ví dụ, phép trừ hai ảnh sẽ cho kết quả một ảnh mới mà điểm ảnh tại tọa độ (x, y) là sự sai khác giữa các điểm ảnh tại cùng vị trí này của hai ảnh. Tốc độ thực hiện các phép toán này phụ thuộc vào phần cứng và phần mềm đang sử dụng, đó là tính toán tuần tự hay tính toán song song. Toán tử logic hoạt động giống như trên từng điểm ảnh cơ bản. Cho hai biến nhị phân a và b. Khi đó a AND b cho giá trị 1 nếu a và b đều Chương 3- Nâng cao chất lượng ảnh  

Page 102

Giáo trình xử lý ảnh số  

mang giá trị 1, ngượi lại cho giá trị 0. a OR b mang giá trị 0 nếu a và b đều mang giá trị 0, ngược lại cho giá trị 1. Nếu a là một biến nhị phân thì NOT(a) cho giá trị 1 nếu a mang giá trị 0, ngược lại cho giá trị 1.   Chúng ta chỉ đề cập đến khả năng thực hiện các phép toán logic AND, OR và NOT, bởi vì ba phép toán này là các toán tử xác định đầy đủ các tính chất của hàm. Nói cách khác, bất kỳ một phép toán logic nào cũng có thể được thực hiện bằng cách sử dụng ba phép toán cơ bản này. Khi phân chia các tóan tử trên các ảnh cấp xám, các giá trị điểm ảnh được xử lý như chuỗi các số nhị phân. Ví dụ, việc thực hiện phép toán NOT trên nền đen, 8 điểm ảnh (chuỗi gồm 8 số 0) cho ra điểm ảnh trắng (chuỗi gồm 8 số 1). Giá trị trung gian được xử lý tương tự như thế, thay đổi tất cả giá trị 1 thành giá trị 0 và ngược lại.Vì vậy, phép toán NOT biến đổi hàm tương tự như là một phép biến đổi âm bản của công thức (3.5). Phép toán AND và OR được sử dụng để làm mặt nạ; nghĩa là, để chọn các ảnh con trong một ảnh, như minh họa trong hình 3.33.

(a)

(d)

(b)

(e)

(c)

(f)

Hình 3.33. Ví dụ về toán tử logic (a) Ảnh gốc (b) Ảnh mặt nạ AND (c) Ảnh kết quả của toán tử AND trên ảnh (a) và (b) (d) Ảnh gốc (e) Ảnh mặt nạ OR (f) Ảnh kết quả của toán tử OR trên ảnh (d) và (e) (Nguồn: R.C. Gonzalez, R.E. Woods)

Chương 3- Nâng cao chất lượng ảnh  

Page 103

Giáo trình xử lý ảnh số  

Trong mặt nạ ảnh AND và OR, vùng sáng được biểu diễn là số 1 và vùng đen được biễu diễn là số 0. Bốn phép toán số học; phép cộng, phép trừ, phép nhân, phép chia. Phép trừ và phép cộng là những phép toán thường sử dụng trong việc tăng cường ảnh. Chúng xem việc chia hai ảnh đơn giản chỉ là việc nhân một ảnh với nghịch đảo của ảnh kia. 3.6.1.1 Phép trừ ảnh

Sự khác biệt giữa hai ảnh f(x, y) và h(x, y) được tính bằng công thức: g ( x, y) = f ( x, y) h(x, y) (3.38) với sự khác biệt của từng cặp điểm ảnh của các điểm ảnh tương ứng từ f và h. Phép trừ ảnh rất hữu dụng khi ta muốn biết sự khác biệt giữa các ảnh.

(a)

(b)

(c)

(d)

Hình 3.34. Ví dụ về phép trừ ảnh (a) Ảnh fractal gốc (b) Ảnh (a) sau khi đặt 4 mặt phẳng bit thấp về 0 (c) Sự khác nhau giữa (a) và (b) (d) Sự khác nhau giữa (a) và (b) sau khi cân bằng lược đồ (Nguồn: (a) Melissa D. Blinde, (b-d) R.C. Gonzalez, R.E. Woods)

Chương 3- Nâng cao chất lượng ảnh  

Page 104

Giáo trình xử lý ảnh số  

3.6.1.2 Phép trung bình ảnh

Xét ảnh có nhiễu với thành phần nhiễu g(x, y) với thành phần nhiễu η(x, y) nằm lẫn vào trong ảnh gốc f(x, y) như sau: g ( x, y) = f ( x, y) η(x, y) (3.39) trong đó, giả sử rằng tại mỗi cặp tọa độ (x, y) nhiễu là không tương quan và có

giá trị trung bình bằng 0. Chúng ta sẽ giảm nhiễu cho ảnh bằng cách thêm vào tập các ảnh nhiễu khác {gi(x,y)}, sau đó tính trung bình của các ảnh nhiễu này. Nếu nhiễu thỏa mãn hai ràng buộc trên thì ta có thể chứng minh được rằng nếu ảnh g ( x, y ) là ảnh trung bình của K ảnh nhiễu khác nhau. 1 K g ( x, y) = ∑g i ( x, y) K i =1

(3.40)

E{( g ( x, y)} = f ( x, y)

(3.41)

thì ta sẽ có:

trong đó E{( g ( x, y )}là giá trị kỳ vọng của g ( x, y ) còn σ 2 g ( x, y ) và σ 2 η( x, y ) là phương sai của g ( x, y ) và η tại tất cả các tọa độ (x, y). Độ lệch chuẩn tại các điểm trong ảnh trung bình là: σ g ( x, y ) =

1 σ K η( x, y )

(3.42)

Từ hai biểu thức (3.41) và (3.42) ta thấy rằng K càng lớn thì g ( x, y ) thì nhiễu của các giá trị điểm ảnh tại mỗi vị trí (x, y) càng giảm. Và do E{( g ( x, y)} = f ( x, y) nên g ( x, y ) sẽ tiệm cận đến f(x, y) khi số ảnh nhiễu được sử dụng trong quá trình trung bình ảnh tăng lên. Hình 3.20 là một ví dụ về trung bình ảnh.

Chương 3- Nâng cao chất lượng ảnh  

Page 105

Giáo trình xử lý ảnh số  

(a)

(b)

(c)

(d)

(e)

(f)

Hình 3.19. Ví dụ về trung bình ảnh (a) Ảnh của cặp ngân hà NGC 3314 (b) Ảnh sau khi thêm nhiễu Gauss với giá trị trung bình là 0 và một độ lệch chuẩn của 64 cấp độ xám (c-f) Các kết quả của việc trung bình hóa các ảnh nhiễu với K = 8, 16 và 128 (Nguồn: (a) NASA, (b-f) R.C. Gonzalez, R.E. Woods)

Chương 3- Nâng cao chất lượng ảnh  

Page 106

Giáo trình xử lý ảnh số  

3.6.2 Tăng cường biên ảnh Biên ảnh là một vấn đề chủ yếu trong phân tích ảnh. Một điểm ảnh được coi là biên nếu ở đó có sự thay đổi đột ngột về mức xám. Tập các điểm biên hay đường biên bao quanh ảnh. Chẳng hạn, một điểm có thể gọi là biên nếu các điểm đen có ít nhất một điểm trắng lân cận. Dựa vào biên ta có thể phân tích ảnh, phân vùng, phân lớp và nhận dạng ảnh. Để phát hiện biên ảnh thông thường người ta thường dùng hai phương pháp sau:

• Phương pháp phát hiện biên trực tiếp: phương pháp này nhằm làm nổi bật biên dựa vào sự b iến thiên về giá trị độ sáng của ảnh. Kỹ thuật chủ yếu ở đây là dựa vào đạo hàm. - Nếu lấy đạo hàm bậc nhất của ảnh ta sử dụng kỹ thuật đạo hàm Gradient - Nếu lấy đạo hàm bậc hai của ảnh ta sử dụng kỹ thuật đạo hàm Laplace • Phương pháp gián tiếp: đối với phương pháp này bằng một cách nào đó ta nếu phân vùng được ảnh thì đường ranh giới giữa các vùng đó là biên. Việc phân vùng dựa vào tính kết cấu của bề mặt ảnh.

BÀI TẬP 1. Cho một ảnh đa mức xám. Yêu cầu thực hiện các phép xử lý sau: a) Phân tích sự phân bố mức xám của ảnh b) Thực hiện sự biến đổi độ tương phản bằng các phép toán số học, giải thích kết quả thu được. c) Cho một ngưỡng để tạo ra ảnh nhị phân từ ảnh đa mức xám, giải thích quá trình thực hiện và giá trị ngưỡng đã chọn. d) Sử dụng kỹ thuật giả màu đối với ảnh này. 2. Cho một ảnh đơn giản a) Nhận xét đặc điểm của ảnh b) Áp dụng các phép toán logic để đạt được các hiệu quả sau: - Làm biến mất hình dạng đối tượng trong ảnh - Làm thay đổi mức xám của đối tượng và giữ nguyên màu nền - Giữ nguyên màu của đối tượng và thay đổi màu nền Chương 3- Nâng cao chất lượng ảnh  

Page 107

Giáo trình xử lý ảnh số  

3. Cho một ảnh được biểu diễn bởi ma trận số liệu sau: 1 1 2 2 2 1 1 1 1 9 9 9 9 9 9 1 1 9 8 0 0 8 9 1 3 9 8 0 0 8 9 1 3 9 8 1 1 9 9 4 1 9 9 9 9 9 9 1 1 1 1 3 3 1 1 1 a) Thực hiện phép dãn histogram trong khoảng [0, 36] b) Thực hiện phép san bằng histogram trong khoảng [0, 36]. So sánh hai histogram sau hai phép xử lý và nhận xét. 4. Phân tích histogram của ảnh: Cho một ảnh đa mức xám. Yêu cầu thực hiện các nhiệm vụ sau: a) Vẽ histogram của ảnh và nhận xét b) Làm thế nào để thấy rõ các chi tiết của ảnh này? Có mấy phương pháp thay đổi độ tương phản để đạt độ tương phản tốt hơn trong trường hợp này? c) Thực hiện một phương pháp biến đổi độ tương phản. Hiển thị ảnh và histogram của ảnh kết quả sau khi thực hiện d) Thực hiện một phương pháp khác với phương pháp ở trên để biến đổi độ tương phản của ảnh. Sau đó: - Hiển thị ảnh và histogram của ảnh kết quả - So sánh histogram ảnh thu được với histogram ảnh đạt được theo phương pháp ở câu c) e) Thực hiện một phép chuyển dịch thang biểu diễn mức xám của ảnh ban đầu. Nhận xét hiệu quả của phép dịch chuyển này đối với ảnh.

5. Thực hiện phép lọc trung bình đối với ảnh trên với bộ lọc H(k, l) như sau: ⎡1 1 1 ⎤ 1 ⎢ H ( k , l ) = ⎢1 1 1 ⎥⎥ 9 ⎢⎣1 1 1 ⎥⎦ Chương 3- Nâng cao chất lượng ảnh  

Page 108

Giáo trình xử lý ảnh số  

6. Thực hiện phép lọc có đáp ứng xung :

⎡ 0 H ( k , l ) = ⎢⎢ − 1 ⎢⎣ 0

−1

0 ⎤ − 1 ⎥⎥ 0 ⎥⎦

4 −1

So sánh nhận xét ảnh sau hai phép lọc ở câu 2 và câu 3. 7. Cho một ảnh số biểu diễn bởi ma trận số liệu sau: 2

2

2

2

2

2

2

5

2

6

6

6

6

5

5

5

1

7

7

6

6

5

5

5

1

7

7

1

1

8

6

4

2

9

8

8

8

8

6

4

2

9

10 10 11 12 12 3

2

9

9

10 10 14 13 3

2

2

2

2

2

3

3

3

Hãy thực hiện cân bằng histogram trong khoảng [1, 14]

Chương 3- Nâng cao chất lượng ảnh  

Page 109

Giáo trình xử lý ảnh số  

8. Cho một ảnh biểu diễn bởi ma trận số liệu sau:

a) b) c) d)

8

9

9

9 9 8 9 9

8

9

8

8 8 8 8 2

8

9

9

9 8 8 1 3

7

7

8

8 8 2 3 2

7

7

8

8 2 1 1 1

7

7

7

2 3 1 1 1

7

7

2

2 2 1 1 1

8

1

2

2 1 1 1 1

Chọn một toán tử tính Gradient của ảnh Thực hiện phát hiện biên dựa trên Gradient Thử nghiệm tạo bóng đường biên Tính Laplace của ảnh và nhận xét kết quả

Chương 3- Nâng cao chất lượng ảnh  

Page 110

CHƯƠNG 4

KHÔI PHỤC ẢNH

Chương này trình bày những vấn đề sau đây: 4.1 Giới thiệu 4.2 Một số phương pháp khôi phục ảnh 4.2.1 Ước lượng sự xuống cấp 4.2.2 Làm giảm nhiễu cộng ngẫu nhiên 4.2.2.1 Bộ lọc Wiener 4.2.2.2 Các biến thể của bộ lọc Wiener 4.2.2.3 Xử lý thích nghi 4.2.2.4 Bộ lọc thích nghi Wiener 4.2.2.5. Phục hồi ảnh dựa thích nghi dựa vào hàm rõ nhiễu 4.2.2.5 Phục hồi ảnh dựa vào thích nghi nhậy biên 4.2.3 Giảm nhòe ảnh

Giáo trình xử lý ảnh số  

4.1

Giới thiệu

Trong phục hồi khôi phục ảnh bị xuống cấp một cách nào đó và mục đích của khôi phục ảnh là giảm bớt hoặc loại bỏ sự xuống cấp. Các thuật toán cải thiện ảnh đơn giản và mang tính dựa vào kinh nghiệm để làm giảm sự xuống cấp đã được thảo luận trong chương 3. Trong chương này, chúng ta nghiên cứu các thuật toán phục hồi ảnh. Các thuật toán phục hồi ảnh thường tính toán phức tạp hơn các thuật toán cải thiện ảnh. Ngoài ra, chúng ta được thiết kế để khai thác các đặc tính chi tiết của tín hiệu và sự xuống cấp. Một môi trường điển hình cho hệ phục hồi ảnh được biểu diễn trên hình 4.1. Nếu bộ số hóa và bộ hiển thị là lý tưởng thì cường độ ảnh đầu ra f’(x, y) sẽ đồng nhất cường độ đầu vào f(x, y), không phải phục hồi tý nào. Trong thực tiễn, có nhiều loại xuống cấp khác nhau có thể xảy ra trong bộ số hóa và hiển thị. Với phục hổi ảnh ta giải quyết sự xuống cấp để làm cho ảnh đầu ra f’(x, y) gần giống như ảnh đầu vào f(x, y). f(x,y)

Bộ số hóa

Phục hồi ảnh

Bộ hiển thị

f’(x,y)

Hình 4.1. Môi trường điển hình cho phục hồi ảnh Để nghiên cứu phục hồi ảnh, ta giả thiết rằng tất cả sự xuống cấp đều xảy ra trước khi áp dụng hệ phục hồi ảnh như trên trên 4.2. Điều này cho phép ta xét toàn bộ vấn đề phục hồi ảnh trong miền không gian rời rạc (đường chấm chấm trong hình 4.2.). Ta có thể coi f(n1, n2) là ảnh số gốc, g(n1, n2) là ảnh số bị giảm chất lượng và p(n1, n2) là ảnh số đã xử lý. Mục đích của phục hồi ảnh là làm cho ảnh đã xử lý p(n1, n2) gần giống như ảnh ban đầu f(n1, n2). Không phải giả thiết cho rằng “tất cả sự xuống cấp đều xảy ra trước khi áp dụng hệ phục hồi ảnh” bao giờ cũng là hợp lý. Một ví dụ là sự xuống cấp do nhiễu cộng ngẫu nhiên trong bộ hiển thị. Trong trường hợp này, nên xử lý trước để đề phòng sự xuống cấp về sau. Tuy nhiên, với nhiều loại xuống cấp khác nhau, như nhòe trong bộ số hóa và bộ hiển thị, có thể lập mô ình là xảy ra trước khi áp dụng hệ phục hồi ảnh. Trong chương này, ta giả sử rằng ảnh gốc f(n1, n2) đã bị xuống cấp, và được đưa vào hệ phục hồi để từ ảnh đã xuống cấp g(n1, n2) phục hồi lại ảnh f(n1, n2) như thấy ở trên hình 4.2. Chương 4 – Khôi phục ảnh  

Trang 112

Giáo trình xử lý ảnh số  

Sự lựa chọn hệ phục hồi ảnh phục thuộc vào loại hình xuống cấp. Các thuật toán làm giảm nhiễu cộng ngẫu nhiên khác với các thuật toán làm giảm nhòe ảnh. Các loại hình xuống cấp ta xét trong chương này là nhiễu cộng ngẫu nhiên, nhòe và nhiễu phụ thuộc tín hiệu, như nhiễu nhân. Chọn những loại hình xuống cấp này là vì chúng thường xảy ra trong thực tiễn và được đề cập đến trong nhiều tài liệu. Ngoài việc trình bày về hệ phục hồi ảnh chuyên trị những loại hình xuống cấp nói đến trong chương này, còn đề cập đến các cách tiếp cận chung dùng cho việc khai triển các hệ làm giảm các loại xuống cấp khác. Xuyên qua toàn chương đưa ra nhiều ví dụ minh họa hiệu năng của các thuật toán khác nhau. Các ví dụ chỉ có tính chất minh họa, chứ không thể dùng để so sánh hiệu năng của các thuật toán khác nhau. Hiệu năng của thuật toán xử lý ảnh phụ thuộc vào nhiều yếu tố, như mục tiêu xử lý các loại ảnh cụ thể. Một hoặc hai ví dụ không đủ chứng minh hiệu năng của thuật toán.

4.2

Một số phương pháp khôi phục ảnh

4.2.1 Ước lượng sự xuống cấp Vì các thuật toán phục hồi ảnh được thiết kế để khai thác các đặc tính của tín hiệu và sự xuống cấp, nên sự hiểu biết tường tận bản chất của sự xuống cấp là rất quan trọng để khai triển thành công thuật toán phục hồi ảnh. Có hai cách tiếp cận để có thông tin về sự xuống cấp. Một cách tiếp cận là thu thập thông tin từ chính ảnh bị xuống cấp. Nếu ta có thể tìm ra các vùng cường độ xấp xỉ đồng đều trong ảnh, chẳng hạn bầu trời, thì có thể ước lượng phổ công suất hoặc hàm mật độ xác suất của nhiễu nền ngẫu nhiên từ sự thăng giáng cường độ trong các vùng có nền đồng đều. Một ví dụ khác như, khi ảnh bị nhoè nếu ta tìm được trong ảnh đã xuống cấp một vùng mà tín hiệu gốc đã biết, thì có thể ước lợng hàm nhoè b(n1, n2). Ký hiệu tín hiệu ảnh gốc ở một vùng đặc biệt của ảnh là f(n1, n2) và ảnh bị xuống cấp trong vùng đó là g(n1, n2), thì quan hệ gần đúng giữa g(n1, n2) và f(n1, n2) là g(n1, n2) = f(n1, n2) * b(n1, n2)

(4.1)

Theo giả thiết f(n1, n2) và g(n1, n2) đều đã biết, nên có thể được uớc lượng được b(n1, n2) từ (4.1). Nếu f(n1, n2) là đáp ứng xung δ ( n1 , n2 ) thì g(n1, n2) = b(n1, n2). Một ví dụ của trường hợp này là ảnh một ngôi sao trong bầu trời đêm.

Chương 4 – Khôi phục ảnh  

Trang 113

Giáo trình xử lý ảnh số  

Miền rời rạc f(x,y)

f(n1,n2) Sự xuống g(n1,n2) Phục cấp hồi ảnh

Bộ số hóa lý tưởng

p(n1,n2) Bộ hiển thị f’(x,y) lý tưởng

Hình 4.2. Phục hồi ảnh dựa trên giả thiết rằng tất cả sự xuống cấp đều xảy ra trước khi áp dụng phục hồi ảnh. Điều này cho phép ta xét vấn đề phục hồi ảnh trong miền không gian rời rạc. Một cách tiếp cận khác để hiểu biết về sự xuống cấp là nghiên cứu cơ chế gây ra xuống cấp. Ví dụ, xét một ảnh tương tự f(x, y) bị nhoè bởi sự dịch chuyển phẳng của máy ảnh lúc chớp. Giả thiết không có sự xuống cấp nào khác ngoại trừ nhoè vì máy ảnh chuyển động, ta có thể biểu diễn ảnh bị xuống cấp g(x , y) là:

g ( x, y ) =

1 T /2 ∫ f ( x − x0 (t ), y − y 0 (t ))dt T t = −T / 2

(4.2)

trong đó x0(t) và y0(t) theo thứ tự đại biểu cho sự tịnh tiến theo phương ngang và dọc của f(x, y) ở thời điểm t và T là thời gian chớp. Trong miền biến đổi Fourier, (4.2.2) có thể biểu diễn là: ∞

G (Ω x , Ω y ) = ∫



∫ g ( x, y ) exp(− j. Ω x x) exp( j. Ω y y ) dxdy

x = −∞ y = −∞

⎡ 1 T /2 ⎤ = ∫ ∫ ⎢ ∫ f ( x, x0 (t ), y − y 0 (t ))dt ⎥ exp(− j. Ω x x) exp( j. Ω y y ) dxdy x = −∞ y = −∞ ⎣ T t = − T / 2 ⎦ ∞



(4.3 )

Trong đó G (Ω x , Ω y )  là hàm biến đổi Fourier của g(x, y). Ước lượng (4.3) ta

nhận được G ( Ω x , Ω y ) = F (Ω x , Ω y ) . B (Ω x , Ω y )

Trong đó: B ( Ω x , Ω y ) =

Chương 4 – Khôi phục ảnh  

1 T

T /2

− jΩ ∫ e

t =−T / 2

x x0

(t )

e

− jΩ y y 0 ( t )

dt

(4.4a) (4.4b)

Trang 114

Giáo trình xử lý ảnh số  

Từ (4.4), thấy rằng nhoè vì chuyển động có thể đợc xem như một phép nhân chập f(x ,y) với b(x, y), mà biến đổi Fourier là B( Ω x , Ω y ) tính theo công thức (4.4b). Đôi khi gọi hàm b(x, y) là hàm nhoè, vì b(x, y) thờng có đặc tính thông thấp và làm nhoè ảnh. Cũng có thể gọi nó là hàm trải rộng điểm vì nó trải rộng xung. Khi không có chuyển động x0(t) = 0 và y0(t) = 0, B( Ω x , Ω y ) = 1 và g(x, y) là f(x, y). Nếu có chuyển động tuyến tính theo hướng x để x0(t) = kt và y0(t) = 0, B( Ω x , Ω y ) trong công thức (4.4) rút gọn lại.

B (Ω x , Ω y ) =

Ωx kT 2 Ωx kT 2

sin

(4.5)

Mô hình gần đúng của ảnh rời rạc g(n1, n2) là g ( n1 , n2 ) = f (n1 , n2 ) * b( n1 , n2 )

(4.6)

trong đó B( ωx , ω y ) là hàm biến đổi Fourier trong không gian rời rạc của b(n1, n2), là một dạng của B( Ω x , Ω y ) trong (4.4b). Một ví dụ khác ở đó sự xu ống cấp có thể được ước lượng từ cơ chế của nó là nhiễu hạt của phim, làm nhòe ảnh là do nhiễu xạ quang và gây ra nhiễu lốm đốm. 4.2.2 Làm giảm nhiễu cộng ngẫu nhiên

Một hình ảnh bị xuống cấp bởi nhiễu cộng ngẫu nhiên như sau:

g(n1, n2) = f(n1, n2) * v(n1, n2)

(4.7)

trong đó v(n1, n2) biểu diễn nhiễu cộng ngẫu nhiên độc lập với tín hiệu. Ví dụ về sự xuống cấp do nhiễu cộng ngẫu nhiên bao gồm nhiễu ở mạch điện tử và nhiễu lượng tử hoá biên độ. Trong tiết này ta thảo luận về một số algorit làm giảm nhiễu cộng ngẫu nhiên trong ảnh. 4.2.2.1 Bộ lọc Wiener Một trong những phương pháp đầu tiên được triển khai để làm giảm nhiễu cộng ngẫu nhiên trong ảnh là phép lọc Wiener. Nếu ta giả thiết rằng f(n1,n2) và v(n1,n2) là những mẫu độc lập tuyến tính của quá trình ngẫu nhiên

Chương 4 – Khôi phục ảnh  

Trang 115

Giáo trình xử lý ảnh số  

dừng trung vị bằng không, và phổ công suất Pt( ωx , ω y ) và Pv( ωx , ω y ) của chúng đã biết, thì có thể nhận được ước lượng tuyến tính tối ưu sai số bình phương tối thiểu của f(n1,n2) bằng cách cho g(n1,n2) qua bộ lọc Wiener mà đáp ứng tần số như sau: H (ω1 , ω2 ) =

Pf (ω1 , ω2 )

(4.8)

Pf (ω1 , ω2 ) + Pv (ω1 , ω2 )

Nếu ta thêm điều kiện ràng buộc rằng f(n1,n2) và v(n1,n2) là những mẫu của quá trình ngẫu nhiên Gauss thì bộ lọc Wiener trong công thức (4.8) là bộ ước lượng tuyến tính tối u sai số quân phơng tối thiểu của tín hiệu trong những bộ ớclợng tuyến tính và phi tuyến. Bộ lọc Wiener đợc dùng để phục hồi ảnh lần đầu tiên vào đầu thập kỷ 60. Nó cũng ảnh hởng đến sự phát triển nhiều hệ phục hồi ảnh khác. Bộ lọc Wiener trong (4.8) đợc thiết lập với giả thiết rằng f(n1,n2) và v(n1,n2) là mẫu của những quá trình trung vị bằng không. Nếu f(n1,n2) có giá trị trung vị là mf và v(n1,n2) có giá trị trung vị là mv thì thoạt tiên đem ảnh bị xuống cấp g(n1,n2) trừ đi m và mv. Sau đó cho kết quả f(n1,n2) - (m + m ) qua bộ lọc Wiener. Đầu ra bộ lọc được cộng với giá trị trung bình m của tín hiệu. Điều này đợc biểu diễn trên hình 4.3. Việc xử lý những giá trị trung vị khác không như trên hình 4.2.3 làm giảm đến tối thiểu sai số quân phương giữa f(n1,n2) và p(n1,n2) đối với các quá trình ngẫu nhiên Gauss f(n1,n2) và v(n1,n2). Nó cũng đảm bảo rằng p(n1,n2)sẽ là một ước lượng không thiên (unbiased) của f(n1,n2). Nếu mv = 0 thì mf đồng nhất với giá trị trung vị của g(n1,n2). Trong trường hợp này, có thể từ g(n1,n2) ước lượng được mf . Bộ lọc Wiener trong (4.8) là lọc pha không. Vì các phổ công suất Pf( ωx , ω y ) và Pv( ωx , ω y ) là thực và không âm nên f

f

v

f

H( ωx , ω y ) cũng là thực không âm, nhờ đó bộ lọc Wiener chỉ ảnh hưởng tới biên độ phổ nhưng không ảnh hưởng pha. Bộ lọc Wiener giữ nguyên SNR(tỉ số tín hiệu trên nhiễu) của các phần hợp thành tần số cao nhng làm giảm SNR của các phần hợp thành tần số thấp. Nếu ta cho Pf( ωx , ω y ) tiến dần tới 0 thì H( ωx , ω y ) sẽ tiến dần tới 1, cho thấy là bộ lọc có khuynh hướng giữ nguyên SNR của các phần hợp thành tần số cao. Nếu ta cho Pv( ωx , ω y ) tiến dần tới 0, H( ωx , ω y ) sẽ tiến dần tới 0, cho thấy là bộ lọc có khuynh hướng làm giảm SNR của các phần hợp thành tần số thấp. Bộ lọc Wiener dựa vào giả thiết là phổ công suất Chương 4 – Khôi phục ảnh  

Trang 116

Giáo trình xử lý ảnh số  

Pf( ωx , ω y ) và Pv( ωx , ω y ) đã biết hoặc có thể ước lượng được. Trong những bài toán thường gặp, ước lượng phổ công suất nhiễu Pv( ωx , ω y ) bằng các phương pháp đã thảo luận tương đối dễ làm, nhng ước lượng phổ công suất ảnh Pf( ωx , ω y ) thì không đơn giản. Một phương pháp được sử dụng là lấy trung bình F( ω1 ,ω2 )

2

cho nhiều ảnh f(n1,n2) khác nhau. Điều nay t ơng tự phơng pháp lấy

trung bình chu kỳ đồ (periodogram averaging) để ước lượng phổ. Một phơng pháp khác là mô hình hoá Pf( ωx , ω y ) bằng một hàm đơn giản s R f (n1 , n2 ) = ρ

n12 + n22

(4.9a)

Pf (ω1 , ω2 ) = F [R f (n1 , n2 )]

(4.9b)

với hằng số 0 < p > σ v2 ,  độ tương phản tại chỗ của g(n1,n2) coi như chủ yếu là do f(n1, n2) và độ tương phản của g(n1, n2) không giảm. Trong trường hợp đó p(n1, n2) xấp xỉ bằng g(n1, n2), trong vùng như vậy không cần xử lý gì nhiều. Nếu σ 2f > σ v2 ,  σ 2f =  σ v2 và σ 2f σ v2 các trường hợp khác

(4.29a)

Trang 129

Giáo trình xử lý ảnh số   2

n +M n +M 1 Trong đó σˆ (n1 , n 2 ) = ∑ ∑ (g (k1 , k 2 ) − mˆ f (n1 , n2 ))  ; (4.29b) ước (2M + 1) 2 k = n − M k = n − M lượng trung vị cục bộ mˆ f (n1 , n2 )   có thể nhận được từ (4.27) và σ v2 giả thiết là đã biết. 1

2 f

1

2

1

2

2

Hình 4.10. Bộ lọc h(n1, n2) khi σ 2f >> σ v2 ,  σ 2f =  σ v2 và σ 2f > σ v2 (phương sai của nhiễu) thì bộ lọc gần như δ (n1 , n 2 ) . Khi σ 2f giảm so với σ v2 , h(n1, n2) gần như của sổ hình chữ nhật.

(a)

(b)

Hình 4.11. Minh hoạ hiệu năng của một phương pháp lọc Wiener thích nghi. Sử dụng ảnh bị xuống cấp trong hình 3.5(b). (a) ảnh được xử lý bởi lọc thích nghi, với NMSE = 3,8% và mức cải thiện SNR = 7,1dB. (b) ảnh được xử lý bởi bộ lọc Wiener không gian bất biến ,với NMSE = 3,6% và mức cải thiện SNR =7,4dB.

Chương 4 – Khôi phục ảnh  

Trang 130

Giáo trình xử lý ảnh số  

Hình 4.11 minh hoạ hiệu năng thuật toán này. Hình 4.11(a) là ảnh được xử lý. Ảnh gốc và ảnh bị xuống cấp biểu diễn trên các hình 4.5(a) và (b). Sự xuống cấp tạo nên ảnh ở hình 4.5(b) là nhiễu cộng trắng Gauss. Mức cải thiện SRN là 7,4 dB. ảnh sau xử lý nhận được bằng cách sử dụng các công thức (3.27), (3.28), (3.29) với M = 2. Từ ảnh được xử lý, thấy rằng nhiễu đã được làm giảm nhiều mà không gây nhoè ảnh. Nếu sử dụng bộ lọc không thích nghi thì với mức giảm nhiễu này sẽ kèm theo nhoè ảnh ở mức có thể nhận thấy. Hình 4.11(b) là kết quả sử dụng bộ lọc Wiener không thích nghi. Hình 4.11(b) giống như hình 4.5(c). 4.2.2.5 Phục hổi ảnh thích nghi dựa vào hàm rõ nhiễu

Khi triển khai thuật toán thích nghi phục hồi ảnh trong tiết 3.2.4 không sử dụng một độ đo nào để định lượng mức nhiễu mà thị giác người xem cảm nhận được. Nếu có được độ đo này thì có thể sử dụng để triển khai một hệ phục hồi ảnh. Hàm biểu diễn độ đo đó sẽ được gọi là hàm rõ nhiễu (noise visibility function), nó phụ vào loại nhiễu và cũng phụ thuộc vào loại tín hiệu mà nó được cộng thêm vào. Nhiễu trắng và nhiễu mầu cùng mức nói chung có ảnh hưởng khác nhau tới người quan sát. Vùng ảnh nhiều chi tiết sẽ che lấp nhiễu tốt hơn vùng ảnh ít chi tiết. Có nhiều cách để định nghĩa và đo hàm độ rõ nhiễu. Ta sẽ thảo luận cách mà Anderson và Netravali sử dụng trong việc triển khai một hệ phục hồi ảnh. Giả thiết nhiễu nền gây ra sự xuống cấp là nhiễu trắng, mặc dù cách tiếp cận này cũng áp dụng được với các loại nhiễu khác. Gọi M(n1, n2) là một độ đo nào đó về chi tiết ảnh cục bộ của một ảnh gốc f(n1, n2). Hàm M(n1, n2) được gọi là hàm che lấp hay gọi là hàm mặt nạ (masking function), vì vùng nhiều chi tiết (M cao) che lấp nhiễu tốt hơn vùng ít chi tiết (M thấp). Hàm rõ nhiễu V(M) được định nghĩa để biểu diễn độ rõ tương đối của một mức nhiễu đã cho ở mức che lấp M. Cụ thể hơn, ta giả sử nhiễu với phương sai σ 12 ở M = M1 được người xem nhận thấy cũng rõ như nhiễuvới phương sai σ 22 ở M = M2, thì hàm V(M) được định nghĩa bởi: σ 12 V ( M 1 ) = σ 22 V ( M 2 )

Chương 4 – Khôi phục ảnh  

(4.30)

Trang 131

Giáo trình xử lý ảnh số  

Độ rõ nhiễu V(M) ở M = M1 càng cao thì mức nhiễu σ12 cần thiết để đạt độ rõ bằng mức nhiễu cố định σ 22 ở mức che lấp cố định M1 càng thấp. Cùng mức nhiễu nhưng ở vùng ít chi tiết (M nhỏ) thì nhìn thấy nhiễu rõ hơn, nên có thể ước đoán là hàm V(M) giảm khi M tăng. Ít ra là trên lý thuyết, có thể sử dụng (4.30) để đo hàm rõ nhiễu V(M), với kết quả chỉ chênh lệch một số tỉ lệ. Giả sử đem cộng thêm nhiễu với phương sai σ12 vào một vùng ảnh cục bộ có mức che lấp là M1. Ta có thể yêu cầu người quan sát so sánh độ rõ nhiễu trong vùng cục bộ này với một vùng ảnh khác ở đó M và M2 và mức nhiễu sử dụng là σ 2 . Cho phép người xem thay đổi σ 2 sao cho nhiễu trong cả hai vùng có độ rõ như nhau và ký hiệu giá trị σ 2 chọn được là σ 22 . Ta gọi thí nghiệm tâm vật lý (psycho-physical) này là thí nghiệm phối hợp độ rõ nhiễu (visibility matching). Từ σ 12 sử dụng trong thí nghiệm và σ 22 được người quan sát chọn, ta có thể xác định V(M2)/V(M1)

theo σ 12 / σ 22 . 

Phương trình (4.30) có thể căn cứ vào những giả thiết khác nhau. Chẳng hạn, giả thiết V(M) chỉ phụ thuộc vào M. Như vậy hàm che lấp M(n1, n2) phải được chọn sao cho khi mức nhiễu như nhau thì trong tất cả các vùng ảnh có cùng giá trị M độ rõ nhiễu phải như nhau. Cách chọn M theo đề xuất Anderson và Netravali là: M(n1,n2 ) =

n1+L

n2 +L

∑ ∑0.35 (k −n ) +(k −n ) ( f (k +1,k ) − f (k −1,k ) + f (k ,k +1) − f (k ,k ) −(4.31

k1=n1−L k2 =n2 −L

2

1

1

2

2

2

1

2

1

2

1

2

1

2

)

Trong đó f(n1, n2) là ảnh không nhiễu (hay ảnh gốc) và (2L+1) x (2L +1 ) là kích thước của vùng cục bộ sử dụng trong việc đo mức che lấp M ở điểm (n1, n2). Trong (4.31), M(n1, n2) tăng khi độ dốc theo phương ngang và phương dọc của f(n1, n2) tăng. Tác dụng của độ dốc theo phương ngang và phương dọc đến M(n1, n2) giảm theo hàm mũ khi khoảng cách Euclid giữa (n1, n2) và điểm tiến hành đo độ dốc tăng. Trong (4.30) giả định hàm rõ nhiễu được giữ nguyên khi hệ số tỉ lệ của σ 12 và σ 22 như nhau. Giả định này chỉ đúng trong một vùng nhỏ của hệ số tỉ lệ. Chương 4 – Khôi phục ảnh  

Trang 132

Giáo trình xử lý ảnh số  

Hình 4.12. Hàm rõ nhiễu V(M)

Ngoài các giả định đã đặt ra cho (4.30), vốn cũng chỉ là xấp xỉ gần đúng, có nhiều khó khăn thực tế khi dùng (4.30) để đo V(M). Trong một bức ảnh điển hình, số lượng điểm ảnh ứng với một mức M đã cho có thể ít, đặc biệt khi M lớn. Trong trường hợp như vậy, dùng thí nghiệm phối hợp với độ rõ nhiễu để đo V(M) sẽ khó khăn. Tuy vậy dựa vào (4.30) và (4.31) và thí nghiệm phối hợp độ rõ nhiễu cũng đã đo được V(M) một cách xấp xỉ. Kết quả biểu diễn trên hình 4.12. Như dự đoán, V(M) giảm khi M tăng trong một dải rộng của M. Có nhiều cách sử dụng hàm rõ nhiễu để khai triển thuật toán phục hồi ảnh. Ta sẽ khai triển một thuật toán phục hồi, có thể xem như trường hợp đặc biệt của hệ phục hồi thích nghi biểu diễn trên hình 4.9. Trong thuật toán này, bộ lọc biến đổi không gian h(n1, n2) có dạng Gauss, tính theo công thức: f ( n1 , n 2 ) = k . exp(−(n12 + n 22 ) / 2σ 2 ). w( n1 , n 2 )

(4.32)

Trong đó k và σ 2 được xác định một cách thích nghi và w(n1 , n2 ) là một cửa sổ hình chữ nhật, nó giới hạn vùng kích thước của h(n1 , n 2 ) . Để xác định k và σ 2 có một điều kiện ràng buộc là Chương 4 – Khôi phục ảnh  

Trang 133

Giáo trình xử lý ảnh số   K

L

∑ ∑ f (n , n

n11 = − K n2 = − L

1

2

) =1

(4.33)

Một điều ràng buộc khác là nhiễu trong ảnh được xử lý phải có độ rõ như nhau trên toàn ảnh. Để thỏa mãn điều kiện ràng buộc này, lưu ý rằng theo lý thuyết cơ b ản về quá trình ngẫu nhiên, khi nhiễu gây ra xuống cấp là v(n1, n2) nhiễu trắng với phương sai σ v2 , nhiễu trong ảnh được nhuộm màu với phương sai σ 2p trong đó: σ 2p = σ v2





∑ ∑ h( n , n

n1 = −∞ n2 = −∞

1

2

)

(4.34)

Nếu ta chọn h(n1 , n 2 )  trong mỗi vùng sao cho σ 2p thỏa mãn σ 2p V ( M ) = cons tan t

(4.35)

Mức nhiễu còn lại trên toàn bộ bức ảnh đã xử lý sẽ bằng nhau khi nào V(M) còn phản ánh chính xác định nghĩa trong (4.30) và V(M) cho nhiễu trắng và nhiễu màu xấp xỉ như nhau. Hằng số trong công thức (4.35) được chọn sao cho đạt được sự dung hòa giữa giảm nhiễu và gây nhòe. Nếu chọn hằng số quá lớn thì nhiễu nền giảm rất ít. Nếu chọn hằng số quá nhỏ thì giảm được nhiễu nhưng gây ra méo tín hiệu (nhòe) nhiều. Ở mỗi điểm ảnh, bộ lọc biến đổi trong không gian h(n1 , n 2 ) có thể được định nghĩa từ (4.32), (4.33), (4.34) và (4.35). Vì trong thuật

toán này các thông số k và σ 2 của bộ lọc chỉ phụ thuộc vào M, nên có thể tính sẵn k và σ 2 và lưu trữ trong một bảng như một hàm của M(n1, n2). Để phục hồi một ảnh, ta ước lượng M(n1, n2) của ảnh không nhiễu f(n1, n2) từ ảnh bị xuống cấp, và lấy k(n1, n2), σ 2 (n1 , n 2 ) từ bảng tính sẵn. ở mỗi pixel (n1, n2), bộ lọc biến đổi trong không gian h(n 1, n2) có thể được xác định từ (4.32) bằng cách sử dụng các giá trị k và σ 2 mà ta vừa xác định . Thuật toán trên đây được khai triển theo quan niệm là

trên toàn bức ảnh được xử lý độ rõ nhiễu như nhau, không phụ thuộc vào ảnh chi tiết cục bộ. Tuy vậy, đã không khống chế được một cách rõ ràng mức độ nhoè gây ra. May mắn là trong những vùng nhiều chi tiết mà ta mong muốn tín hiệu

Chương 4 – Khôi phục ảnh  

Trang 134

Giáo trình xử lý ảnh số  

càng ít nhoè càng tốt, thì M lại lớn. Như vậy V(M) nhỏ, mức nhiễu σ 2p còn lại trong ảnh bị xử lý tương đối lớn và sẽ ít nhoè.

(a)

(c)

(b)

(d)

Hình 4.13: Minh hoạ hiệu năng về thuật toán phục hồi ảnh thích nghi dựa vào hàm độ rõ nhiễu. (a) ảnh gốc 512x512 pixel; (b) ảnh bị xuống cấp bởi nhiễu trắng với SNR = 7dB Và nmse =19,8%; (c) ảnh được xử lý sử dụng hàm rõ nhiễu đạt được từ ảnh gốc với NMSE = 3,4% và mức cải thiện SNR =7,7 dB; (d) ảnh được xử lý sử dụng hàm rõ nhiễu đạt được từ ảnh gốc với NMSE = 7,0% và mức cải thiện SNR =4,5 dB. Hình 4.13 minh hoạ hiệu năng của algorit này. Hình 4.13(a) là ảnh gốc 512 x 512 pixels. Hình 4.13(b) là ảnh bị xuống cấp bởi nhiễu Gauss với SNR bằng 7dB. Hình 4.13(c) là ảnh được xử lý, mức cải thiện SNR là 7,7dB. ảnh đã xử lý nhận được bằng cách cho bộ lọc thích nghi ở từng pixel và xác định hàm che lấp M(n1, n2) từ ảnh gốc (không nhiễu). Mặc dù đã đặt ra nhiều giả định và lấy xấp xỉ khi khai triển thuật toán này, nhưng cũng đã làm giảm nhiễu đáng kể mà tín hiệu ít bị nhoè. Trong thực tế không có ảnh gốc không nhiễu để ước lượng M(n1, n2) . Nếu nhận được M(n1, n2) Chương 4 – Khôi phục ảnh  

Trang 135

Giáo trình xử lý ảnh số  

từ ảnh bị nhiễu thì hiệu năng của algorit này kém đi. Hình 4.13(c) là ảnh đã xử lý bởi algorit ứng với M(n1, n2) nhận được từ ảnh bị xuống cấp, mức cải thiện SNR là 4,5dB. Thuật toán này là một ví dụ về khai thác hàm rõ nhiễu V(M). Còn có nhiều định nghĩa khác của V(M) và nhiều cách khai thác V(M) khác được dùng để khai triển algorit phục hồi ảnh.

4.2.2.6 Phục hồi ảnh thích nghi nhậy biên Ta đã thảo luận thuật toán phục hồi thích nghi, nó thích nghi với đặc tính cục bộ của ảnh. Trong vùng cục bộ thường giả định ảnh là một mẫu của quá trình ngẫu nhiên dừng. ở vùng biên giả định này có vấn đề, vì ở đó mô hình tín hiệu không còn là một mẫu của quá trình ngẫu nhiên dừng, dầu chỉ là mô hình cục bộ. Bộ lọc dựa vào giả định này sẽ duy trì đường biên nhưng cũng để lại một lượng nhiễu lớn ở lân cận đường biên. Mặc dù trong vùng gần biên nhiễu không rõ nhở vùng cường độ đều, nhưngloại bỏ được nhiễu ở gần biên thì vẫn có lợi. Một cách tiếp cận để giảm nhiễu gần đường biên mà không làm nhoè thêm là dùng một mô hình ảnh chính xác hơn (thí dụ coi biên như một thành phần xác định) và dựa vào đó để khai triển thuật toán phục hồi ảnh. Tuy nhiên, tìm mô hình chính xác cho ảnh là một việc khó khăn và algorit phục hồi dựa vào mô hình ảnh chi tiết và chính xác thường rất phức tạp. Một cách tiếp cận khác là thoạt tiên dùng thuật toán tách biên đã thảo luận ở chương 3 và sau đó sử dụng đường biên tách được để thiết kế và thực hiện một bộ lọc thích nghi. Chẳng hạn, có thể lấy biên làm đường bao của vùng ảnh cục bộ mà trong đó ảnh được coi là dừng. Khi thiết kế bộ lọc biến đổi không gian h(n1, n2) , vùng chứa đựng h(n1, n2) có thể được chọn sao cho h(n1, n2) không bao phủ những điểm ảnh nằm trên nhiều hơn một vùng. Tuy nhiên, cách tiếp cận này yêu cầu phải xác định được đường biên rõ ràng mà tách biên khi có nhiễu tồn tại lại là điều không đơn giản. Một cánh tiếp cận khác là sử dụng một dãy bộ lọc thích nghi 1 -D, mà không thay đổi mô hình ảnh hoặc nguyên lý cơ sở dùng trong việc khai triển hệ phục hồi ảnh 2-D. Với bộ lọc 1-D định hướng theo hướng đường biên, đường biên được chừa ra còn ảnh được lọc dọc theo biên. Với các bộ lọc 1 -D khác định hướng xuyên qua đường biên thì thực hiện ít việc xử lý và biên được duy trì. Cho Ti[.], (1 ≤ i ≤ N) đại diện cho bộ lọc 1 -D, cách thiết kế giống như bộ lọc thích nghi 2-D nhưng được xác định từ một vùng 1 -D cục bộ và định hướng theo hướng thứ i. Trên thực tế, N thường chọn là 4 và bốn hướng được chọn có góc là 00, 450, 900, 1350. Ảnh bị xuống cấp Chương 4 – Khôi phục ảnh  

Trang 136

Giáo trình xử lý ảnh số  

được lọc qua một dãy liên tiếp bốn bộ lọc 1 -D, đối với từng bộ lọc này, ảnh giống như là tín hiệu 1-D. ảnh đã xử lý p(n1, n2) là:

p(n1 , n 2 ) = T4 [T3 [T2 [T1 [ g (n1 , n 2 )]]]]

(4.36)

Toán tử Ti[.] là biến đổi trong không gian. Vì ảnh lần lượt đi qua một dãy bốn bộ lọc, nên sau mỗi bộ lọc đặc tính tín hiệu và nhiễu thay đổi, phải được cập nhật trước khi đi vào bộ lọc tiếp theo. Để minh hoạ phương pháp xử lý 1 -D cho phục hồi ảnh thích nghi này, ta hãy xét ứng dụng của nó vào bộ lọc Wiener thích nghi đã nói đến ở trên. Các phương trình (4.26), (4.27) và (4.29) định rõ thuật toán phục hồi. Xét một bộ lọc biến đổi trong không gian 1-D định hướng theo hướng ngang và được thiết kế, thực hiện theo nguyên lý thuật toán phục hồi ảnh 2-D . Các phương trình về đầu ra của bộ lọc 1-D p(n1, n2) là: p1 ( n1 , n 2 ) = m f (n1 , n2 ) +

σ 2f (n1 , n 2 ) σ ( n1 , n 2 ) + σ (n1 , n 2 ) 2 f

mˆ f (n1 , n2 ) =

2 v

1

2

2 f

(n1 , n

n +M 1 ∑ g ( k1 , n 2 ) (2M + 1) k = n − M

(4.37)

1

1

⎧σˆ g2 (n1 , n2 ) − σ v2 (n1 , n 2 ) 2 σˆ f (n1 , n 2 ) = ⎨ 0 ⎩

σˆ g2 (n1 , n 2 ) =

(g (n , n ) − m

(4.38)

1

nếu σˆ g2 (n1 , n2 )   >  σ v2 (n1 , n2 ) trường hợp khác

n +M 1 ∑ ( g (k1 , n2 ) −mˆ f (k1 , n2 )) 2 (2 M + 1) k = n − M

(4.3 9a)

1

1

(4.39b)

1

Các phương trình (4.37), (4.38) và (4.39) theo thứ tự ứng với các phương trình (4.26), (4.27) và (4.29). Bộ lọc 1 -D thứ hai định hướng theo phương dọc và áp dụng cho p1 (n1 , n 2 ) , số hạng nhiễu σ v2 (n1 , n2 ) phải được cập nhật, vì bộ lọc đã làm giảm công suất nhiễu. Công suất nhiễu đã giảm có thể tính được từ bộ lọc biến đổi theo không gian 1 –D và σ v2 (n1 , n2 ) . Còn lại hai bộ lọc 1-D định hướng theo hai đường chéo, cách áp dụng cũng tương tự. Hệ các bộ lọc 1-D nối thành Chương 4 – Khôi phục ảnh  

Trang 137

Giáo trình xử lý ảnh số  

dãy có khả năng thích nghi với định hướng của đường biên ảnh. Đường biên sắc nét và làm thành một góc lớn với hướng bộ lọc thì sẽ được giữ nguyên không đổi. Nếu hướng bộ lọc gần giống hướng đường biên thì nhiễu ở gần biên sẽ được lọc bỏ. Cách tiếp cận này yêu cầu tính toán ít hơn so với thuật toán phục hồi 2-D tương ứng. Ngoài ra, cách tiếp cận này có vẻ cải thiện được hiệu năng của một vài thuật toán phục hồi thích nghi 2-D.

(a)

(b)

(c) (b) Hình 4.14: Minh hoạ hiệu năng của hệ phục hồi ảnh nhậy biên. (a) ảnh gốc 256 x 256 pixels; (b) ảnh bị xuống cấp bởi nhiễu trắng, với SNR = 6dB và NMSE = 25,1%; (c) ảnh được xử lý bởi bộ lọc thích nghi 2 -D, với NMSE = 5,2% và mức cải thiện SNR = 6,8 dB; (d) ảnh được xử lý bởi bộ lọc thích nghi 1 -D, với NMSE = 4,7% và mức cải thiện SNR =7,3dB.

Chương 4 – Khôi phục ảnh  

Trang 138

Giáo trình xử lý ảnh số  

(a)

(c)

(b)

(d)

Hình 4.15: Những đoạn mở rộng của các ảnh trên hình 4.15. (a) ảnh gốc; (b) ảnh bị xuống cấp; (c) ảnh được xử lý bởi bộ lọc thích nghi 2-D; (d) ảnh được xử lý bởi bộ lọc thích nghi 1-D; Hình 4.14 minh hoạ hiệu n ăng của cách tiếp cận 1 -D này. Hình 4.14(a) là ảnh gốc 256 x 256 pixels. Hình 3.14(b) là ảnh bị xuống cấp bởi nhiễu trắng Gauss, khi SNR = 6dB. Hình 4.14(c) là ảnh đợc xử lý bởi bộ lọc Wiener thích nghi 2 -D mức cải thiện SNR của ảnh được xử lý là 6,79 dB. Hình 3.14(d) là ảnh được xử lý bởi bốn tầng bộ lọc biến đổi trong không gian 1-D được thiết kế trên cơ sở (4.37), (4.38) và(4.39). Mức cải thiện SNR của ảnh được xử lý là 7,28 dB . Hình 4.15 biểu diễn những đoạn mở rộng của các ảnh trên hình 3.14. So sánh các hình 4.15(c) và (d) thấy rằng ảnh ở hình sau nhiễu ít hơn. Từ thảo luận trên thấy rằng còn có thể phát triển nhiều thêm thuật toán khác. Các thuật toán phục hồi ảnh thích nghi yêu cầu tính toán nhiều hơn thuật toán không thích nghi, nhưng hiệu quả tốt hơn.

Chương 4 – Khôi phục ảnh  

Trang 139

Giáo trình xử lý ảnh số  

4.2.3 Giảm nhòe ảnh Một ảnh bị xuống cấp vì nhòe có thể mô hình hóa như sau: g (n1 , n 2 ) = f (n1 , n 2 ) * b(n1 , n 2 )

(4.40)

trong (4.40), ảnh bị xuống cấp g (n1 , n2 ) là kết qủa nhân chập ảnh gốc f (n1 , n2 ) với một đáp ứng xung b(n1 , n2 ).  Chuỗi b(n1 , n2 ) được gọi là hàm phân

tán điểm (point spread function) hoặc hàm nhoè. Sự xuống cấp này có thể được mô hình hoá bằng nhân chập với hàm nhoè do các nguyên nhân như thấu kính lệch tiêu cự, máy bị rung và nhiễu loạn (turbulance) của khí quyển. Bài toán làm giảm nhoè có thể chia thành hai loại. Loại thứ nhất là giải tích chập (deconvolution), trong đó giả thiết b(n1 , n 2 ) đã biết, loại thứ hai là giải tích chập mù (blind deconvolution), trong đó b(n1 , n2 ) là không biết và phải ước lượng từ những thông tin sẵn có.

Bộ lọc ngược Khi hàm nhòe b(n1 , n2 ) đã biết, một cách tiếp cận để khử nhòe là bộ lọc ngược. Từ (4. 40): G (ω1 , ω2 ) = F (ω1 , ω2 ) * B(ω1 , ω2 ) (4.41) Từ (4.41) F (ω1 , ω2 ) =

G (ω1 , ω2 ) B (ω1 , ω2 )

(4.42)

Theo (4.42), một hệ khôi phục được f (n1 , n2 ) từ g (n1 , n 2 ) là một bộ lọc ngược, biểu diễn trên hình 3.16. Bộ lọc ngược trong hình 3.17 có khuynh hướng rất nhậy cảm với nhiễu. Khi B (ω1 , ω2 ) rất nhỏ, 1/ B (ω1 , ω2 ) rất lớn, và trong vùng tần số mà 1/ B (ω1 , ω2 ) rất lớn nhiễu nhỏ cũng nổi lên. Một phương pháp làm giảm vấn đề nhậy cảm với nhiễu là giới hạn đáp ứng tần số 1/ B (ω1 , ω2 ) ở một ngưỡng như sau.

Chương 4 – Khôi phục ảnh  

Trang 140

Giáo trình xử lý ảnh số  

1 ⎧ ⎪⎪ B (ω , ω ) 1 2 H (ω1 , ω2 ) = ⎨ B (ω1 , ω2 ) ⎪γ ⎪⎩ B (ω1 , ω2 )

1 B (ω1 , ω2 ) trường hợp khác

Nếu

(4.43)

Bộ lọc ngược 1/ B (ω1 , ω2 ) và biến thể của nó trong (3.43) có thể được thực hiện bằng nhiều cách. Ta có thể thiết kế một bộ lọc mà đáp ứng tần số gần như mong đợi bằng kỹ thuật thiết kế bộ lọc đã thảo luận trước đây, và sau đó nhân chập ảnh nhoè với bộ lọc được thiết kế. Nói cách khác, ta có thể thực hiện hệ bằng cách sử dụng biến đổi DFT và biến đổi ngược IDFT theo cách tương tự như với bộ lọc Wiener đã thảo luận ở các phần trên. Một phương pháp khác thực hiện bộ lọc ngược là sử dụng quá trình lặp ở đó ước lượng tín hiệu f (n1 , n2 ) được cập nhật sau mỗi lần lặp. Gọi fˆ ( n1 , n 2 ) là ước lượng của tín hiệu sau k lần lặp. Nếu fˆ (n1 , n 2 ) là một ước lượng tốt của f (n1 , n2 ) thì fˆ ( n1 , n 2 ) * b( n1 , n 2 ) sẽ rất gần g ( n1 , n 2 ) .  Ước lượng tín hiệu sau k + 1 lần lặp fˆ ( n1 , n 2 ) nhận được bằng cách

cộng thêm vào fˆ ( n1 , n 2 ) số hạng hiệu chỉnh gồm hằng số tỉ lệ λ nhân với hiệu giữa g ( n1 , n 2 ) và fˆ (n1 , n 2 ) * b(n1 , n 2 ) . Sử dụng λg ( n1 , n 2 ) như là ước lượng ban đầu của fˆ0 (n1 , n2 ) quy trình lặp là:

fˆ0 (n1 , n 2 ) = λg (n1 , n 2 ) fˆk +1 ( n1 , n 2 ) = fˆk ( n1 , n 2 ) + λ( g ( n1 , n 2 ) − fˆk ( n1 , n 2 ) * b( n1 , n 2 ))

(4.44)

Trong đó λ là một thông số dương và có thể dùng để điều khiển sự hội tụ của quy trình lặp. Để xem (4.44) liên quan tới bộ lọc ngược thế nào, ta biểu diễn (4.44) trong miền tần số. Fˆ0 ( n1 , n 2 ) = λG (ω1 , ω2 ) Fˆk +1 (ω1 , ω2 ) = Fˆk (n1 , n 2 ) + λ(G (ω1 , ω2 ) − Fˆk (ω1 , ω2 ) * B (ω1 , ω2 ))

(4.45)

Giải phương trình (4.45) bằng phương pháp đệ quy, ta đạt được:

Chương 4 – Khôi phục ảnh  

Trang 141

Giáo trình xử lý ảnh số  

Fˆk +1 (ω1 , ω2 ) = λ(G (ω1 , ω2 )[1 + (1 − λ(G (ω1 , ω2 )) + ... + (1 − λB(ω1 , ω2 )) k ] G (ω1 , ω2 ) = [1 − (1 − λB (ω1 , ω2 )) k +1 ] B (ω1 , ω2 ) g ( n1 , n 2 )

1   B (ω1 , ω2 )

(4.46)

f ( n1 , n 2 )

Hình 4.16. Bộ lọc ngược cho phục hồi ảnh Từ (4.46) khi k tiến tới ∞ , Fˆk +1 (ω1 , ω2 )   tiến tới G (ω1 , ω2 ) / B (ω1 , ω2 ) ,  nó là kết quả của phép lọc ngược, với điều kiện là: (1 − λB (ω1 , ω2 ) < 1

(4.47)

Trong phạm vi mà thông số λ thoả mãn (4.47), phương trình (4.44) có thể dùng để thực hiện bộ lọc ngược. Một ưu điểm của quy trình lặp là nó có thể dừng lại sau một số hữu hạn bước lặp. Kết quả nhận được sau một số hữu hạn bước lặp không hoàn toàn giống như bộ lọc ngược, nhưng trong một số trường hợp, nó kém nhậy cảm hơn với nhiễu. Hình 4.17 minh hoạ hiệu năng của bộ lọc ngược. Hình 4.17(a) là ảnh gốc 512 x 512 pixels. Hình 4.17(b) là ảnh gốc bị nhoè bởi hàm nhoè dạng Gauss kích thước của ảnh kết quả lớn hơn 512 x 512 điểm ảnh, nhưng được lồng trong cửa sổ hình chữ nhật 512 x 512 điểm. Mô hình ảnh bị xuống cấp trong trường hợp này là: g (n1 , n 2 ) = [ f (n1 , n 2 ) * b( n1 , n 2 )]w(n1 , n 2 )

(4.48)

Hình 4.17 (c) là ảnh đã xử lý bằng bộ lọc ngược. Ảnh đã xử lý p (n1 , n 2 ) được tính theo: p (n1 , n 2 ) = IDFT [G ( k1 , k 2 ) H (k1 , k 2 )]

(4.49)

Trong đó G ( k1 , k2 ) là biến đổi Fourier của g (n1 , n2 ) và H ( k1 , k2 ) nhận được từ:

Chương 4 – Khôi phục ảnh  

Trang 142

Giáo trình xử lý ảnh số  

H ( k1 , k 2 ) =

1 ω1 = 2πk1 / N , ω2 = 2πk 2 / N B(ω1 , ω2 )

(4.50)

Kích thước DFT và IDFT sử dựng là 512 x 512. Trong trường hợp không có nhiễu và B (ω1 , ω2 ) rất nhỏ thì bộ lọc ngược làm việc rất tốt mặc dù g (n1 , n2 ) trong (4.48) bị cửa sổ ảnh hưởng.

(a)

(b)

(c)

Hình 4.17. (a) Ảnh gốc 512 x 512; (b) Ảnh bị nhòe bởi hàm nhòe dạng Gauss; (c) Kết quả của bộ lọc ngược.

Chương 4 – Khôi phục ảnh  

Trang 143

CHƯƠNG 5

PHÂN TÍCH ẢNH

Chương này trình bày những vấn đề chính sau đây: 5.1 Trích chọn dấu hiệu đặc trưng của ảnh 5.2 Xương và các kỹ thuật tìm xương 5.3 Tìm biên ảnh 5.4 Phân vùng ảnh

Giáo trình xử lý ảnh

5.1 Trích chọn dấu hiệu đặc trưng của ảnh Hình ảnh sau khi đã được tăng cường chất lượng cần phải trích chọn các đặc trưng để đưa vào cơ sở dữ liệu. Đặc trưng về hình ảnh của đối tượng gồm nhiều loại, việc lựa chọn các đặc trưng phụ thuộc vào nhiều loại ảnh và kinh nghiệm của các chuyên gia. Tuy nhiên với bất kỳ một lớp ảnh nào ta có thể đưa ra một số đặc trưng quan trọng thuộc ba loại cơ bản sau: 5.1.1. Đặc trưng topo Đặc trưng này xác định một cách tổng quát các tính chất của ảnh, hình dạng chung được thể hiện trên ảnh, các gam màu và giá trị màu sử dụng… Đây là một trong những đặc trưng đơn giản và thường được sử dụng nhất trong phân tích ảnh. Chẳng hạn, trong những phim chụp X quang của bệnh nhân, giá trị của các mức xám thể hiện đặc tính của xương, những biến dạng ảnh hưởng tới sức khỏe của bệnh nhân. Trong những hình ảnh của các lò nung, giá trị của các điểm ảnh thể hiện nhiệt độ từ đó giúp phân biệt được các hợp chất khác nhau. Trong hình ảnh rada, giá trị này thể hiện các điểm chốt cho phép xác định kích thước của các đối tượng được quan sát. Với những hình ảnh đã được số hóa trên máy tính, đặc trưng topo thường được thể hiện dưới các dạng. 5.1.1.1.

Lược đồ phân bố mức xám

Lược đồ này thể hiện sự phân bố các giá trị mức xám khác nhau trong một vùng ảnh xác định. Sự biến đổi các giá trị mức xám trong lượt đồ nhanh hay chậm, nhiều hay ít cho chúng ta biết độ sáng tối, độ tương phản của hình ảnh. Ngoài ra lược phân bố mức xám này còn được sử dụng trong các phép biến đổi ảnh, tăng cường chất lượng ảnh. Lược đồ phân bố mức xám có thể lưu ở máy tính dưới dạng một ma trận hai chiều, trong đó một chiều là giá trị các mức xám có trong ảnh và một chiều là số lần xuất hiện của các điểm ảnh có cùng giá trị mức xám đó. Có thể thể hiện điều đó trên sơ đồ như hình 5.1.1. Với những hình ảnh được thể hiện với nhiều mức xám như ảnh đa màu, việc lưu trữ toàn bộ lược đồ phân bố như vậy là khá tốn kém. Có một phương pháp để giải quyết vấn đề này là ước lượng các đỉnh của lược đồ phân bố theo một hàm toán học nào đó và chỉ lưu trữ công thức biểu diễn nó.

Chương 5 – Phân tích ảnh

Trang 145

Giáo trình xử lý ảnh

Hình 5.1.1. Một ảnh tỉ lệ mức xám 8 bít và lược đồ mức xám miêu tả phân bố tần số của 256 giá trị cường độ sáng các điểm ảnh trong ảnh. 5.1.1.2. Các vùng thuần nhất Một hình ảnh có thể coi như là sự tổ hợp của các vùng ảnh khác nhau. Do đó, hình ảnh thu nhận được có thể phân thành các vùng thuần nhất nằm trong giới hạn ngưỡng nào đó về giá trị mức xám. Hơn thế nữa trong một hình ảnh, hầu hết các vật thể được thể hiện như là vùng ảnh riêng biệt nào đó, nên thao tác phân vùng trên ảnh cũng có nghĩa là đưa ra hình ảnh của các vật thể cấu thành đối tượng. Các phương pháp xử lý ảnh ở đây có thể chia thành ba lớp như sau: - Kết nối vùng: Xuất phát từ những chi tiết vùng đồng đều, kể cả từng phần tử ảnh, ghép các vùng tương tự với nhau, cho tới khi không thể ghép tiếp được nữa. - Phân rã vùng: Xuất phát từ một vùng lớn kể cả toàn ảnh, phân rã nó thành nhiều vùng khác nhau và tiếp tục cho tới khi không thể phân rã tiếp được nữa. - Phân rã và kết nối: Xuất phát từ một vùng kích thước trung bình nối các vùng tương tự với nhau và phân rã vùng còn lại. Sau đây ta nghiên cứu cụ thể từng phương pháp: a) Kết nối vùng Phương pháp này xuất phát từ một bộ các điểm kề nhau có cùng mức xám gọi là vùng cơ sở. Để ghép vùng, nhân của vùng cơ sở được nới rộng trên toàn bề mặt ảnh, mỗi bước trên một vùng 4 * 4 điểm. Xuất phát từ mỗi vùng Chương 5 – Phân tích ảnh

Trang 146

Giáo trình xử lý ảnh

nhân, vùng cơ sở được bành trướng từng điểm một. Nếu mức xám của một điểm nào đó nằm ngoài khoảng -1, +1 so với mức xám của nhân, điểm ảnh đó sẽ xem nhue nằm ngoài vùng đang xét. Chú ý rằng, các vùng cơ sở thu được có thể gối lên nhau do quá trình xử lý xuất phát từ các nhân đã xác định trước. Phương pháp trên làm việc hiệu quả khi kích thước các vùng nằm trong một phạm vi nhất định. Tuy nhiên, nó chưa chỉ ra được có bao nhiêu nhân cần phải nới rộng lúc đầu. Một cách hay hơn để chọn vùng cơ sở là sử dụng các cạnh. Các cạnh được tách bằng các phương pháp tách cạnh. Để đạt được nhiều vùng cơ sở, giá trị ngưỡng trong quá trình tách cạnh phải đủ thấp sap cho các cạnh có độ tương phản thấp vẫn tách được. Sau khi các cạnh được tách các vùng cơ sở được xác định như là những vùng khép kín. Trong quá trình khép kín vùng, các vùng tương tự kề nhau được ghép cho tới khi không còn vùng kề nào tương tự. Thuật toán ghép vùng tiêu biểu thực hiện chu trình lặp qua quá trình ghép từng cặp cùng kề nhau và chọn cặp tốt nhất. Tiểu chuẩn ghép dựa trên cơ sở tính tương tự của các vùng. Hai tiêu chuẩn chủ yếu để đo tính tương tự của hai vùng kề nhau là sự khác nhau về mức xám của các điểm dọc đường biên và hiệu các mức trung bình của hai vùng. b) Phân rã vùng Từ một vùng lớn ban đầu, phải phân chia thành nhiều vùng con, kiểm tra tính thuần nhất của chúng, nếu vùng nào không đảm bảo ta lại tiếp tục phân nó thành các vùng nhỏ hơn. Dựa vào tiêu chuẩn kiểm tra tính thuần nhất của vùng mà ta có thể chia ra hai phương pháp như sau: - Phân rã theo đỉnh điểm: Phương pháp này quyết định ngưỡng phân rã trên cơ sở lược đồ phân bố mức xám do các vùng thuần nhất chứa rất nhiều điểm ảnh có giá trị tương tự đỉnh điểm trên lược đồ được xem như một vùng tương ứng. Nếu lược đồ có nhiều đỉnh điểm thì có thể phân rã vùng theo các đỉnh điểm đó. Tuy nhiên phương pháp này cũng chỉ thích hợp cho những trường hợp có nhiều vùng thuần nhất. vì chúng cho ta lược đồ thể hiện rõ vùng cao, vùng thấp, theo đó ta tiến hành phân ngưỡng. - Phân vùng theo tiêu chuẩn phân biệt: Trong trường hợp lược đồ mức xám không thể hiện ra các vùng khác nhau ta có thể sử dụng tiêu chuẩn phân biệt để phân ngưỡng. Giả sử ta có ảnh với L mức xám. Pi là lược đồ của ảnh mức xám i được chuẩn hóa như sau: L

∑ Pi = 1 i =1

Chương 5 – Phân tích ảnh

Trang 147

Giáo trình xử lý ảnh

Giá trị trung bình và phương sai của toàn ảnh được cho bởi: L

L

i =1

i =1

mt = ∑ i * Pi và σ 2 = ∑ (i − mi ) * Pi Bây giờ giả sử rằng vùng được xác định phân loại bởi ngưỡng hình thành hai lớp C1 và C2. Những điểm có mức xám dưới k thuộc lớp C1, trên k thược lớp C2. Giả sử W1, W2 là tỉ số diện tích C1, C2 so với toàn vùng (W1+ W2=1). Giá trị trung bình và phương sai của mỗi lớp Cj được cho bởi: m j = ∑ i * Pi / W j và σ 2j = ∑ (i − m j ) 2 * Pi / W j i∈C j

i∈C j

, j = 1...2

Phương sai trong từng lớp và giữa các lớp được cho bởi: σ w2 = W1σ 12 + W2 σ 22 σ b2 = W1 (m1 − m2 ) 2 + W2 (m2 − mt ) 2 = W1W2 ( m1 − m2 ) 2

Nếu σ b2 lớn và σ w2 nhỏ, ta có ngưỡng tốt. Do σ w2 + σ b2 =1 nên cực tiểu hóa σ w2 có nghĩa là cực đại hóa σ b2 . Bởi vậy giá trị ngưỡng tối ưu K0 sẽ được xác định sao cho σ b2 đạt cực đại. Vì σ b2 không âm và bằng 0 tại W1=0 và W1=1 nên nó đạt cực đại trong khoảng (0, 1) của W1. Với phương pháp phân vùng thuần nhất như trên ta đã thu nhận được hình ảnh thể hiện duy nhất các vùng đo. Hình ảnh này được lưu trữ dưới một mảng hai chiều, trong đó: ⎡1 , nếu điểm ảnh (n, m) thuộc vùng Phần tử X (n, m) = ⎢ ⎣0 , nếu điểm ảnh (n, m) không thuộc vùng Tuy nhiên việc lữu trữ như vậy khá tốn kém ta có thể sử dụng một số phương pháp khác: - Mã loạt dài (run length code) - Cây tứ phân (quadtree code)

Chương 5 – Phân tích ảnh

Trang 148

Giáo trình xử lý ảnh

c) Biên và đường bao quanh ảnh Một hình ảnh có thể được xác định thông qua đường biên của nó. Đường biên thường được sử dụng để phân loại, nhận dạng các đối tượng. Thông thường trước khi trích chọn đường biên ảnh, ảnh thu nhận xử lý sơ bộ qua các thao tác tăng cường biên và làm trơn biên ảnh như đã trình bày ở chương trước. Trong phần này chỉ trình bày các phương pháp để dò và tách biên nhằm thu nhận một dấu hiệu đặc trưng của ảnh. Đường biên của ảnh có thể phân loại theo nhiều cách khác nhau. Trước hết có thể phân loại thô ban đầu thành hai loại ứng với hai kiểu định nghĩa 4- liên thông và 8-liên thông.

Ví dụ: X X

X

X X

X X X

X

X

Biên 4-liên thông

X

X

X

X

X X X

Biên 8-liên thông

Sau đó có thể phân loại theo các trường hợp: các đặc ddiemr biên có thẻ nằm trên vùng, nằm ngoài vùng hay nằm giữa vùng và nền. Ở đây, giới thiệu một giải thuật cho phép ta dò theo biên ảnh nhị phân đưới dạng 8-liên thông. Giải thuật xuất phát từ một điểm trên đường biên và bắt đầu dò các điểm tiếp theo bằng một đường dẫn và luôn luôn có thể chọn được một đường dẫn đóng. Trong quá trình dò giải thuật này tuân theo một qui tắc: đi dọc theo các điểm ảnh trong vùng và chọn những điểm ảnh phải nhất trong số đó.

Chương 5 – Phân tích ảnh

Trang 149

Giáo trình xử lý ảnh

Giải thuật dò biên ảnh Đầu vào: Hình ảnh nhị phân R với A là một điểm trên biên có làng giềng hướng tây không thuộc ảnh. Đầu ra: Tập hợp các điểm biên Phương pháp: Bước 1: Đặt điểm hiện thời C vào A. Kiểm tra nếu hướng hiện thời là hướng nam đặt cờ First=True Bước 2: While CA hoặc First True Do Bước 2.1: Đặt cờ Found = False Bước 2.2: While Found = False Do

o If (B=láng giềng cấp S-1) then C=B; S=S=S-2; Found = True;

o Else if (B= láng giềng cấp S) ∈ R then C=B; Found = True;

o Else if (B= láng giềng cấp S+1) ∈ R then C=B; Found = True;

o S=S+2; Bước 2.3: End While;

Bước 2.4: First = False; Bước 3: End While; Giải thuật này phải được ứng dụng mỗi lần cho mỗi lỗ hổng của ảnh và ngoài ra phải áp dụng một lần nữa cho đường biên ngoài. Với tập hợp các điểm liền thu được ta cũng có thể biểu diễn chúng bằng một số phương pháp khác nhau:

Chương 5 – Phân tích ảnh

Trang 150

Giáo trình xử lý ảnh

- Phương pháp mã xích (chain code): Với phương pháp này hướng của các vector giữa hai điểm biên lân cận được mã hóa. Thông thường người ta đưa 8 hướng khác nhau: 3

2

0

4

4

1

5

7

Trong mã xích người ta đưa ra vị trí điểm đầu theo sau là một chuỗi mã hóa các hướng véc tơ. Để tăng độ chính xác khi thể hiện người ta có thể áp dụng mã hóa với nhiều hướng hơn.

- Phương pháp đường gấp khúc: Phương pháp này sử dụng đặc trưng khi biểu diễn các biên ảnh trong máy tính là các điểm rời rạc. Nói cách khác biên ảnh là một tập hợp các đường thẳng nối các điểm biên. Do đó với một độ chính xác cho trước ta hoàn toàn có thể xấp xỉ đường biên bằng một đường gấp khúc theo giải thuật đơn giản như sau: Nối hai điểm bất kỳ trên đường biên, đường thẳng này sẽ chia đường biên thành hai đoạn. Với mỗi đoạn ta xác định điểm xa nhất đường thẳng nói nằm trên biên mà khoảng cách ngưỡng chính xác ta nối điểm đó với hai đầu đoạn thẳng và lặp lại thủ tục này cho đến khi thu nhận được một tập các điểm đại diện cho biên.

5.1.2. Đặc trưng về hình dạng Đặc trưng về hình dạng của ảnh có thể có được phân ra thành hai nhóm khác nhau:

5.1.2.1 Đặc trưng hình học Những đặc trưng này phản ánh cấu trúc vật lý của hình ảnh dựa trên các số liệu đo đạc hình ảnh cụ thể. Thông thường nó được biểu diễn thông qua một số thông số sau:

a) Chu vi ảnh: Chu vi ảnh được xác định theo công thức: Chương 5 – Phân tích ảnh

Trang 151

Giáo trình xử lý ảnh

T = ∫ x 2 (t ) + y 2 (t ) dt Trong đó x(t) và y(t) là tọa độ dòng và cột của điểm ảnh t nằm trên biên. Với chu vi của ảnh càng lớn hình ảnh được biểu diễn càng phức tạp, chứa các vùng lõm. Do đó xác định được chu vi của ảnh ta đã có thể phân loại một cách thô các đối tượng. Thông thường đặc trưng được trích chọn từ các ảnh đơn giản như ảnh chân dung. Nó giúp cho ta xác định chu vi một vùng nào đó như khuôn mặt.

b) Diện tích ảnh: Với các hình ảnh thuộc cùng một lớp thể hiện cùng một kiểu đối tượng, nhiều khi diện tích ảnh trở thành một đặc trưng khá quan trọng giúp để phân biệt các mẫu dạng. Để xác định diện tích vùng ảnh có thể áp dụng nhiều phương pháp. Với những hình ảnh đơn giản ta có thể áp dụng các công thức toán học để xác định. Ngược lại với những hình ảnh phức tạp nhiều góc cạnh ta phải áp dụng phương pháp lưới ô vuông để xác định diện tích. c) Bán kính ảnh: Rmin và Rmax là khoảng cách nhỏ nhất và lớn nhất từ tâm của ảnh tới đường biên. Đôi khi tỷ lệ Rmax/Rmin cũng được tính toán để xác định độ lệch tâm và độ dãn dài của đối tượng. d) Các góc ảnh: Góc ảnh được biểu diễn như một vị trí trên đường biên, mà tại đó biên ảnh bị thay đổi hướng. Các vị trí góc ảnh như vậy có thể sử dụng như các điểm điều khiển, nhằm tái tạo lại hình ảnh của đối tượng. e) Tính đối xứng của ảnh: Với những hình ảnh mang tính chất đối xứng chỉ cần lưu trữ các đặc trưng của một nữa ảnh, sau đó nhờ phép biến đổi đối xứng để thu lại ảnh ban đầu. Để xác định được một hình ảnh có tâm đối xứng hay không, điều quan trọng nhất là xác định được tâm hoặc trục đối xứng. 5.1.2.2 Đặc trưng độ lệch cơ sở Rất nhiều hình ảnh khi được thu nhận được đều có thể biểu diễn về hướng của nó so với trục chính. Với một hình ảnh thể hiện trên một vùng R chứa N điểm ảnh, ta có thể đưa ra các thông số đặc trưng như sau:

a) Tâm của vùng: Điểm ảnh là tâm của vùng có tọa độ n, m được định nghĩa như sau: n=

1 ∑ ∑ n và N ( n ,m )∈R

m=

1 ∑∑m N ( n ,m )∈R

Trong đó (n, m) là tọa độ của một điểm bất kỳ trong vùng. Chương 5 – Phân tích ảnh

Trang 152

Giáo trình xử lý ảnh

b) Hướng ảnh: Hướng của ảnh được định nghĩa như là góc hợp giữa trục của ảnh với trục chính. 5.1.2.3 Đặc trưng về kết cấu Kết cấu thể hiện các mẫu cấu trúc bề mặt của đối tượng như gỗ, sắt, cát, cỏ…. Kết cấu nói chung được biểu diễn bởi việc lặp các phần tử kết cấu cơ sở. Một phần tử kết cấu cơ sở chứa vài điểm ảnh mà vị trí của nó có thể phân bố theo một qui luật hoặc ngẫu nhiên. Kết cấu trong tự nhiên thông thường mang tính chất ngẫu nhiên, trong khi các kết cấu nhân tạo thì có thể đoán nhận được. Với hình ảnh được xử lý trong máy tính, đặc trưng về kết cấu thường được chia làm hai loại chính: Đặc trưng về thống kê và đặc trưng cấu trúc.

a) Đặc trưng thống kê: Kết cấu trong tự nhiên mang tính chất ngẫu nhiên do đó nó phù hợp với việc trích chọn các đặc trưng thống kê. Các đặc trưng như độ min, hướng của ảnh được đánh giá bởi việc sử dụng những kỹ thuật lọc tuyến tính. Biến đổi ảnh được áp dụng để phân biệt các kiểu địa hình như sa mạc, núi, song…. Phép phân tích phổ Fourier có thể áp dụng trong việc phát hiện và phân lớp các loại vi khuẩn trong cơ thể bởi việc so sánh mẫu kết cấu của ảnh chụp X quang người bệnh và người bình thường. Thêm nữa, độ thô ráp của hình ảnh cũng có thể được thể hiện bởi mật độ các điểm ảnh biên. Mật độ các điểm ảnh biên được tính toán số trung bình của các điểm ảnh biên trong một vùng. b) Đặc trưng cấu trúc: Đặc trưng dạng này chỉ cấu trúc nguyên dạng của loại vật liệu được thể hiện trên ảnh. Cấu trúc này được tách ra bởi việc nhóm một số các điểm ảnh có những đặc tính liên kết nhất định được thể hiện lặp trong hình ảnh. Cấu trúc nguyên dạng có thể xác định qua mức xám, hình dạng, tính đồng nhất, kích thước và hướng của nó. Hình ảnh thể h iện kết cấu một cách rõ ràng được thể hiện bởi sự phân bố có qui luật của các cấu trúc nguyên dạng. Ngược lại sự phân bố mang tính chất ngẫu nhiên biểu diễn ảnh có kết cấu mờ nhạt. Cụ thể ta có thể xác định qua một số tiêu chuẩn như sau: - Mật độ biên - Độ dài của các cấu trúc nguyên dạng có liên kết Độ chênh lệch tương đối của các vùng của cấu trúc nó được thể hiện như là độ lệch về giá trị mức xám của một điểm ảnh với các điểm ảnh lân cận của nó. Trong những ảnh có một đỉnh chóp nó thể hiện như là điểm ảnh ở trung tâm. Tuy nhiên trong những ảnh có nhiều đỉnh thì đặc trưng này khó xác định mà thay thế ta có thể xác định số lượng các đỉnh điểm trong ảnh. Tùy theo từng loại ảnh Chương 5 – Phân tích ảnh

Trang 153

Giáo trình xử lý ảnh

nhất định, mà một số các đặc trưng trên có thể được sử dụng để mô tả hình ảnh. Các đặc trưng đó được đưa vào máy tính hoặc thông qua hệ giao diện người máy hoặc sử dụng các chức năng của hệ thống để tự xác định.

5.2

Xương và các kỹ thuật tìm xương

5.2.1 Giới thiệu Xương được coi như hình dạng cơ bản của một đối tượng, với số ít các điểm ảnh cơ bản. Ta có thể lấy được các thông tin về hình dạng nguyên bản của một đối tượng thông qua xương. Một định nghĩa xúc tích về xương dựa trên tính continuum (tương tự như hiện tượng cháy đồng cỏ) được đưa ra bởi Blum (1976) như sau: Giả thiết rằng đối tượng là đồng nhất được phủ bởi cỏ khô và sau đó dựng lên một vòng biên lửa. Xương được định nghĩa như nơi gặp của các vệt lửa và tại đó chúng được dập tắt.

a) Ảnh gốc

b) Ảnh xương

Hình 5.2.1. Ví dụ về ảnh và xương Kỹ thuật tìm xương luôn là chủ đề nghiên cứu trong xử lý ảnh những năm gần đây. Mặc dù có những nỗ lực cho việc phát triển các thuật toán tìm xương, nhưng các phương pháp được đưa ra đều bị mất mát thông tin. Có thể chia thành hai loại thuật toán tìm xương cơ bản:

• Các thuật toán tìm xương dựa trên làm mảnh • Các thuật toán tìm xương không dựa trên làm mảnh Chương 5 – Phân tích ảnh

Trang 154

Giáo trình xử lý ảnh

5.2.2 Tìm xương dựa trên làm mảnh 5.2.2.1 Sơ lược về thuật toán làm mảnh Thuật toán làm mảnh ảnh số nhị phân là một trong các thuật toán quan trọng trong xử lý ảnh và nhận dạng. Xương chứa những thông tin bất biến về cấu trúc của ảnh, giúp cho quá trình nhận dạng hoặc vectơ hoá sau này. Thuật toán làm mảnh là quá trình lặp duyệt và kiểm tra tất cả các điểm thuộc đối tượng. Trong mỗi lần lặp tất cả các điểm của đối tượng sẽ được kiểm tra: nếu như chúng thoả mãn điều kiện xoá nào đó tuỳ thuộc vào mỗi thuật toán thì nó sẽ bị xoá đi. Quá trình cứ lặp lại cho đến khi không còn điểm biên nào được xoá. Đối tượng được bóc dần lớp biên cho đến khi nào bị thu mảnh lại chỉ còn các điểm biên. Các thuật toán làm mảnh được phân loại dựa trên phương pháp xử lý các điểm là thuật toán làm mảnh song song và thuật toán làm mảnh tuần tự. Thuật toán làm mảnh song song, là thuật toán mà trong đó các điểm được xử lý theo phương pháp song song, tức là được xử lý cùng một lúc. Giá trị của mỗi điểm sau một lần lặp chỉ phụ thuộc vào giá trị của các láng giềng bên cạnh (thường là 8-láng giềng) mà giá trị của các điểm này đã được xác định trong lần lặp trước đó. Trong máy có nhiều bộ vi xử lý mỗi vi xử lý sẽ xử lý một vùng của đối tượng, nó có quyền đọc từ các điểm ở vùng khác nhưng chỉ được ghi trên vùng của nó xử lý. Trong thuật toán làm mảnh tuần tự các điểm thuộc đối tượng sẽ được kiểm tra theo một thứ tự nào đó (chẳng hạn các điểm được xét từ trái qua phải, từ trên xuống dưới). Giá trị của điểm sau mỗi lần lặp không những phụ thuộc vào giá trị của các láng giềng bên cạnh mà còn phụ thuộc vào các điểm đã được xét trước đó trong chính lần lặp đang xét. Chất lượng của thuật toán làm mảnh được đánh giá theo các tiêu chuẩn được liệt kê dưới đây nhưng không nhất thiết phải thoả mãn đồng thời tất cả các tiêu chuẩn.

• Bảo toàn tính liên thông của đối tượng và phần bù của đối tượng • Sự tương hợp giữa xương và cấu trúc của ảnh đối tượng • Bảo toàn các thành phần liên thông Chương 5 – Phân tích ảnh

Trang 155

Giáo trình xử lý ảnh

• Bảo toàn các điểm cụt • Xương chỉ gồm các điểm biên, càng mảnh càng tốt • Bền vững đối với nhiễu • Xương cho phép khôi phục ảnh ban đầu của đối tượng • Xương thu được ở chính giữa đường nét của đối tượng được làm mảnh • Xương nhận được bất biến với phép quay. 5.2.2.2 Một số thuật toán làm mảnh Trong phần này điểm qua một số đặc điểm, ưu và khuyết điểm của các thuật toán đã được nghiên cứu.

• Thuật toán làm mảnh cổ điển là thuật toán song song, tạo ra xương 8 liên thông, tuy nhiên nó rất chậm, gây đứt nét, xoá hoàn toàn một số cấu hình nhỏ. • Thuật toán làm mảnh của Toumazet bảo toàn tất cả các điểm cụt không gây đứt nét đối tượng. Tuy nhiên, thuật toán có nhược điểm là rất chậm, rất nhạy cảm với nhiễu, xương chỉ là 4-liên thông và không làm mảnh được với một số cấu hình phức tạp • Thuật toán làm mảnh của Y.Xia dựa trên đường biên của đối tượng, có thể cài đặt theo cả phương pháp song song và tuần tự. Tốc độ của thuật toán rất nhanh. Nó có nhược điểm là gây đứt nét, xương tạo ra là xương giả (có độ dày là 2 phần tử ảnh). • Thuật toán làm mảnh của N.J.Naccache và R.Shinghal. Thuật toán có ưu điểm là nhanh, xương tạo ra có khả năng khôi phục ảnh ban đầu của đối tượng. Nhược điểm chính của thuật toán là rất nhạy với nhiễu, xương nhận được phản ánh cấu trúc của đối tượng thấp. • Thuật toán làm mảnh của H.E.Lu P.S.P Wang tương đối nhanh, giữ được tính liên thông của ảnh, nhưng lại có nhược điểm là xương tạo ra là xương 4-liên thông và xoá mất một số cấu hình nhỏ.

Chương 5 – Phân tích ảnh

Trang 156

Giáo trình xử lý ảnh

• Thuật toán làm mảnh của P.S.P Wang và Y.Y.Zhang dựa trên đường biên của đối tượng, có thể cài đặt theo phương pháp song song hoặc tuần tự, xương là 8-liên thông, ít chịu ảnh hưởng của nhiễu. Nhược điểm chính của thuật toán là tốc độ chậm. • Thuật toán làm mảnh song song thuần tuý nhanh nhất trong các thuật toán trên, bảo toàn tính liên thông, ít chịu ảnh hưởng của nhiễu. Nhược điểm là xoá hoàn toàn một số cấu hình nhỏ, xương tạo ra là xương 4-liên thông. 5.2.3 Tìm xương không dựa trên làm mảnh Để tách được xương của đối tượng có thể sử dụng đường biên của đối tượng. Với điểm p bất kỳ trên đối tượng, ta bao nó bởi một đường biên. Nếu như có nhiều điểm biên có cùng khoảng cách ngắn nhất tới p thì p nằm trên trục trung vị. Tập tất cả các điểm như vậy lập thành trục trung vị hay xương của đối tượng. Việc xác định xương được tiến hành thông qua hai bước:

• Bước thứ nhất, tính khoảng cách từ mỗi điểm ảnh của đối tượng đến điểm biên gần nhất. Như vậy cần phải tính toán khoảng cách tới tất cả các điểm biên của ảnh. • Bước thứ hai, khoảng cách ảnh đã được tính toán và các điểm ảnh có giá trị lớn nhất được xem là nằm trên xương của đối tượng. 5.2.3.1. Khái quát về lược đồ Voronoi Lược đồ Voronoi là một công cụ hiệu quả trong hình học tính toán. Cho hai điểm Pi, Pj là hai phần tử của tập Ω gồm n điểm trong mặt phẳng. Tập các điểm trong mặt phẳng gần Pi hơn Pj là nửa mặt phẳng H(Pi, Pj) chứa điểm Pi và bị giới hạn bởi đường trung trực của đoạn thẳng PiPj. Do đó, tập các điểm gần Pi hơn bất kỳ điểm Pj nào có thể thu được bằng cách giao n-1 các nửa mặt phẳng H(Pi, Pj): V(Pi) = ∩ H(Pi, Pj) i≠j (i= 1,...,n)

(5.2.1)

a) Định nghĩa 5.2.1 [Đa giác/Sơ đồ Voronoi] Sơ đồ Voronoi của Ω là hợp của tất cả các V(Pi) Vor(Ω) = ∪ V(Pi) Pi∈Ω (là một đa giác) Chương 5 – Phân tích ảnh

(5.2.2) Trang 157

Giáo trình xử lý ảnh

b) Định nghĩa 5.2.2 [Đa giác Voronoi tổng quát] Cho tập các điểm Ω, đa giác Voronoi của tập con U của Ω được định nghĩa như sau: V(U) = {P| ∃v ∈ U, ∀w ∈ Ω \ U : d(P,v) < d(P,w)} = ∪ V(Pi) Pi ∈ U

(5.2.3)

5.2.3.2. Trục trung vị Voronoi rời rạc a) Định nghĩa 5.2.3 [Bản đồ khoảng cách - Distance Map] Cho đối tượng S, đối với mỗi (x, y)∈S, ta tính giá trị khoảng cách map(x, y) với hàm khoảng cách d(.,.) như sau:

∀(x, y)∈S: map(x, y) = min d[(x, y), (xi, yi)]

(5.2.4)

trong đó (xi, yi) ∈ B(S) - tậpi các điểm biên của S Tập tất cả các map(x, y), kí hiệu là DM(S), được gọi là bản đồ khoảng cách của S.

Chú ý: Nếu hàm khoảng cách d(.,.) là khoảng cách Euclide, thì phương trình (5.2.4) chính là khoảng cách ngắn nhất từ một điểm bên trong đối tượng tới biên. Do đó, bản đồ khoảng cách được gọi là bản đồ khoảng cách Euclide EDM(S) của S. Định nghĩa trên được dùng cho cả hình rời rạc lẫn liên tục. b) Định nghĩa 5.2.4 [Tập các điểm biên sinh] Cho map(x, y) là khoảng cách ngắn nhất từ (x, y) đến biên (theo định nghĩa 5.2.3).

Ta

định

nghĩa:

map-1(x,

y)

=

{p|

p

∈B(S),

d(p,

(x, y)):=map(x, y)} Khi đó tập các điểm biên sinh ^B(S) được định nghĩa bởi: ^B(S) = ∪map-1(x, y), (x, y)∈ S

(5.2.5)

Do S có thể chứa các đường biên rời nhau, nên ^B(S) bao gồm nhiều tập con, mỗi tập mô tả một đường biên phân biệt: ^B(S)={B1(S),..BN(S)}

Chương 5 – Phân tích ảnh

(5.2.6)

Trang 158

Giáo trình xử lý ảnh

c) Định nghĩa 5.2.5 [Trục trung vị Voronoi rời rạc (DVMA)] Trục trung vị Voronoi rời rạc được định nghĩa là kết quả của sơ đồ Voronoi bậc nhất rời rạc của tập các điểm biên sinh giao với hình sinh S : DVMA(^B(S)) = Vor(^B(S)) ∩ S

(5.2.7)

5.2.3.3. Xương Voronoi rời rạc d) Định nghĩa 5.2.6 [Xương Voronoi rời rạc - DiscreteVoronoi Skeleton] Xương Voronoi rời rạc theo ngưỡng T, kí hiệu là SkeDVMA(^B(S),T) (hoặc Ske(^B(S),T)) là một tập con của trục trung vị Voronoi: SkeDVMA(^B(S),T)= {(x,y)| (x,y)∈DVMA(^B(S)), Ψ(x,y) > T}

(5.2.8)

Ψ: là hàm hiệu chỉnh. Dễ thấy nếu ngưỡng T càng lớn thì càng thì số lượng điểm tham gia trong xương Vonoroi càng ít (Hình 5.2.2).

a

b

Hình 5.2.2. Xương Voronoi rời rạc ảnh hưởngd của các hàm hiệu chỉnh khác nhau. (a) Ảnh nhị phân. (b) Sơ đồ Voronoi. (c) Hiệu chỉnh bởi hàm Potential, T=9.0. (d) Hiệu chỉnh bởi hàm Potential, T=18.0 5.2.3.4. Thuật toán tìm xương Trong mục này sẽ trình bày ý tưởng cơ bản của thuật toán tìm xương và mô tả bằng giả ngôn ngữ.

Tăng trưởng: Việc tính toán sơ đồ Voronoi được bắt đầu từ một điểm sinh trong mặt phẳng. Sau đó điểm sinh thứ hai được thêm vào và quá trình tính toán tiếp tục với đa giác Voronoi đã tìm được với điểm vừa được thêm vào đó. Cứ như thế, quá trình tính toán sơ đồ Voronoi được thực hiện cho đến khi không còn Chương 5 – Phân tích ảnh

Trang 159

Giáo trình xử lý ảnh

điểm sinh nào được thêm vào. Nhược điểm của chiến lược này là mỗi khi một điểm mới được thêm vào, nó có thể gây ra sự phân vùng toàn bộ các đa giác Voronoi đã được tính.

Chia để trị: Tập các điểm biên đầu tiên được chia thành hai tập điểm có kích cỡ bằng nhau. Sau đó thuật toán tính toán sơ đồ Voronoi cho cả hai tập con điểm biên đó. Cuối cùng, người ta thực hiện việc ghép cả hai sơ đồ Voronoi trên để thu được kết quả mong muốn. Tuy nhiên, việc chia tập các điểm biên thành hai phần không phải được thực hiện một lần, mà được lặp lại nhiều lần cho đến khi việc tính toán sơ đồ Voronoi trở nên đơn giản. Vì thế, việc tính sơ đồ Voronoi trở thành vấn đề làm thế nào để trộn hai sơ đồ Voronoi lại với nhau. Thuật toán sẽ trình bày ở đây là sự kết hợp của hai ý tưởng ở trên. Tuy nhiên, nó sẽ mang nhiều dáng dấp của thuật toán chia để trị. Hình 5.2.3 minh hoạ ý tưởng của thuật toán này. Mười một điểm biên được chia thành hai phần (bên trái: 1- 6, bên phải: 7-11) bởi đường gấp khúc δ, và hai sơ đồ Voronoi tương ứng Vor(SL) và Vor(SR). Để thu được sơ đồ Vornonoi Vor(SL ∪ SR), ta thực hiện việc trộn hai sơ đồ trên và xác định lại một số đa giác sẽ bị sửa đổi do ảnh hưởng của các điểm bên cạnh thuộc sơ đồ kia. Mỗi phần tử của δ sẽ là một bộ phận của đường trung trực nối hai điểm mà một điểm thuộc Vor(SL) và một thuộc Vor(SR). Trước khi xây dựng δ, ta tìm ra phần tử đầu và cuối của nó. Nhìn vào hình trên, ta nhận thấy rằng cạnh δ1 và δ5 là các tia. Dễ nhận thấy rằng việc tìm ra các cạnh đầu và cuối của δ trở thành việc tìm cạnh vào tα và cạnh ra tω.

Chương 5 – Phân tích ảnh

Trang 160

Giáo trình xử lý ảnh

δ1

3



7

CH(SL

1

11

6

CH(SR

4

9 10

2 5

tω δ5

8

Hình 5.2.3. Minh hoạ thuật toán trộn hai sơ đồ Voronoi Sau khi đã tìm được tα và tω, các điểm cuối của tα được sử dụng để xây dựng phần tử đầu tiên của δ (δ1 trong hình trên). Sau đó thuật toán tìm điểm giao của δ với Vor(SL) và Vor(SR). Trong ví dụ trên, δ đầu tiên giao với V(3). Kể từ đây, các điểm nằm trên phần kéo dài δ sẽ gần điểm 6 hơn điểm 3. Do đó, phần tử tiếp theo δ2 của δ sẽ thuộc vào đường trung trực của điểm 6 và điểm 7. Sau đó điểm giao tiếp theo của δ sẽ thuộc và Vor(SL); δ bây giờ sẽ đi vào V(9) và δ2 sẽ được thay thế bởi δ3. Quá trình này sẽ kết thúc khi δ gặp phần tử cuối δ5. Trên đây chỉ là minh hoạ cho thuật trộn hai sơ đồ Voronoi trong chiến lược chia để trị. Tuy nhiên, trong thuật toán sẽ trình bày ở đây thì sự thực hiện có khác một chút. Tập các điểm ảnh không phải được đưa vào ngay từ đầu mà sẽ được quét vào từng dòng một. Giả sử tại bước thứ i, ta đã thu được một sơ đồ Voronoi gồm i1 hàng các điểm sinh Vor(Si-1). Tiếp theo, ta quét lấy một hàng Li các điểm ảnh từ tập các điểm biên còn lại. Thực hiện việc tính sơ đồ Voronoi Vor(Li) cho hàng này, sau đó trộn Vor(Si-1) với Vor(Li). Kết quả ta sẽ được một sơ đồ mới, và lại thực hiện việc quét hàng Li+1 các điểm sinh còn lại v.v.. Quá trình này sẽ kết thúc khi không còn điểm biên nào để thêm vào sơ đồ Voronoi. Do Vor(Li) sẽ có dạng răng lược (nếu Li có k điểm thì Vor(Li) sẽ gồm k-1 đường thẳng đứng), nên việc trộn Vor(Si-1) với Vor(Li) có phần đơn giản hơn.

Chương 5 – Phân tích ảnh

Trang 161

Giáo trình xử lý ảnh

v5

p8



p6

á

v4

v3

p4

v6

Các điểm thuộc Si-1

p9

p1

p2

v2

p7

p10 δ

v1 tα p5

p3

i

Hình 5.2.4. Minh hoạ thuật toán thêm một điểm biên vào sơ đồ Voronoi Giải thuật trên có thể được mô tả như sau:

Procedure VORONOI (*Si: Tập các điểm của i dòng quét đầu tiên, 0 là chu tuyến của E, C⊥= là chu tuyến đối ngẫu tương ứng. Khi đó: (i) Nếu C là chu tuyến trong thì in(Qi,C) ∀i (i=1,....,m) (ii) Nếu C là chu tuyến ngoài thì in(Pi,C⊥) ∀i (i=1,...,n) g) Bổ đề 3.2 [Phần trong/ngoài của chu tuyến]

Giả sử E ⊆ ℑ là một đối tượng ảnh và C là chu tuyến của E. Khi đó: (i) Nếu C là chu tuyến ngoài thì ∀x ∈ E sao cho x∉C, ta có in(x,C)

Chương 5 – Phân tích ảnh

Trang 172

Giáo trình xử lý ảnh

(ii) Nếu C là chu tuyến trong thì ∀x ∈ E sao cho x∉C, ta có out(x,C) h) Định lý 3.1 [Tính duy nhất của chu tuyến ngoài]

Giả sử E ⊆ ℑ là một đối tượng ảnh và CE là chu tuyến ngoài của E. Khi đó CE là duy nhất. 5.3.3.3 Thuật toán dò biên tổng quát

Biểu diễn đối tượng ảnh theo chu tuyến thường dựa trên các kỹ thuật dò biên. Có hai kỹ thuật dò biên cơ bản. Kỹ thuật thứ nhất xét ảnh biên thu được từ ảnh vùng sau một lần duyệt như một đồ thị, sau đó áp dụng các thuật toán duyệt cạnh đồ thị. Kỹ thuật thứ hai dựa trên ảnh vùng, kết hợp đồng thời quá trình dò biên và tách biên. Ở đây ta quan tâm cách tiếp cận thứ hai. Trước hết, giả sử ảnh được xét chỉ bao gồm một vùng ảnh 8-liên thông ℑ, được bao bọc bởi một vành đai các điểm nền. Dễ thấy ℑ là một vùng 4-liên thông chỉ là một trường riêng của trường hợp trên. Về cơ bản, các thuật toán dò biên trên một vùng đều bao gồm các bước sau: • Xác định điểm biên xuất phát • Dự báo và xác định điểm biên tiếp theo • Lặp bước 2 cho đến khi gặp điểm xuất phát Do xuất phát từ những tiêu chuẩn và định nghĩa khác nhau về điểm biên, và quan hệ liên thông, các thuật toán dò biên cho ta các đường biên mang các sắc thái rất khác nhau. Kết quả tác động của toán tử dò biên lên một điểm biên ri là điểm biên ri+1 (8-láng giềng của ri). Thông thường các toán tử này được xây dựng như một hàm đại số Boolean trên các 8-láng giềng của ri. Mỗi cách xây dựng các toán tử đều phụ thuộc vào định nghĩa quan hệ liên thông và điểm biên. Do đó sẽ gây khó khăn cho việc khảo sát các tính chất của đường biên. Ngoài ra, vì mỗi bước dò biên đều phải kiểm tra tất cả các 8-láng giềng của mỗi điểm nên thuật toán thường kém hiệu quả. Để khắc phục các hạn chế trên, thay vì sử dụng một điểm biên ta sử dụng cặp điểm biên (một thuộc ℑ, một thuộc ℑ ), các cặp điểm này tạo nên tập nền vùng, kí hiệu là NV và phân tích toán tử dò biên thành 2 bước: Chương 5 – Phân tích ảnh

Trang 173

Giáo trình xử lý ảnh

• Xác định cặp điểm nền vùng tiếp theo. • Lựa chọn điểm biên Trong đó bước thứ nhất thực hiện chức năng của một ánh xạ trên tập NV lên NV và bước thứ hai thực hiện chức năng chọn điểm biên. Thuật toán dò biên tổng quát + Bước 1: Xác định cặp nền-vùng xuất phát + Bước 2: Xác định cặp nền-vùng tiếp theo + Bước 3: Lựa chọn điểm biên vùng + Bước 4: Nếu gặp lại cặp xuất phát thì dừng, nếu không quay lại bước 2.

Việc xác định cặp nền-vùng xuất phát được thực hiện bằng cách duyệt ảnh lần lượt từ trên xuống dưới và từ trái qua phải rồi kiểm tra điều kiện lựa chọn cặp nềnvùng. Do việc chọn điểm biên chỉ mang tính chất quy ước, nên ta gọi ánh xạ xác định cặp nền-vùng tiếp theo là toán tử dò biên. a) Định nghĩa 5.3.6 [Toán tử dò biên]

Giả sử T là một ánh xạ như sau: T:

NV → NV (b,r) a (b’,r’)

Gọi T là một toán tử dò biên cơ sở nếu nó thoả mãn điều kiện: b’,r’ là các 8-láng giềng của r. Giả sử (b,r) ∈ NV; gọi K(b,r) là hàm chọn điểm biên. Biên của một dạng ℑ có thể định nghĩa theo một trong ba cách: • Tập những điểm thuộc ℑ có mặt trên NV, tức là K(b,r)= r • Tập những điểm thuộc ℑ có trên NV, tức là K(b,r)= b • Tập những điểm ảo nằm giữa cặp nền-vùng, tức là K(b,r) là những điểm nằm giữa hai điểm b và r. Cách định nghĩa thứ ba tương ứng mỗi cặp nền-vùng với một điểm biên. Còn đối với cách định nghĩa thứ nhất và thứ hai một số cặp nền-vùng có thể có chung một điểm biên. Bởi vậy, quá trình chọn điểm biên được thực hiện như sau: i:= 1; (bi,ri):= (bo,ro); While K(bi,ri)K(bn,rn) and i≤8 do Begin

Chương 5 – Phân tích ảnh

Trang 174

Giáo trình xử lý ảnh

(bi+1,ri+1)= T(bi,ri); i:= i+1; End; Điều kiện dừng

Cặp nền-vùng thứ n trùng với cặp nền vùng xuất phát: (bn,rn)= (bo,ro) b) Xác định cặp nền – vùng xuất phát Cặp nền vùng xuất phát được xác định bằng cách duyệt ảnh lần lượt từ trên xuống dưới và từ trái sang phải điểm đem đầu tiên gặp được cùng với điểm trắng trước đó (theo hướng 4) để tạo nên cặp nền vùng xuất phát. c) Xác định cặp nền vùng tiếp theo

Đầu vào: pt, dir Ví dụ: (3, 2) 4 Point orient []= {(1,0);(1;-1);(0;-1);(-1;-1);(-1;0);(-1,1);(0,1);(1,1)}; //Hàm tìm hướng có điểm đen gần nhất BYTE GextNextDir(POINT pt, BYTE dir) { BYTE pdir= (dir + 7)%8; do{ if(getpixel(pt. x+orient [pdir]. x,pt.y+orient [pdir]. y))==BLACK) return pdir; pdir = (pdir + 7) %8; }while(pdir ! = dir); return. ERR; //Điểm cô lập } //Gán giá trị cho bước tiếp theo pdir = GetNextDir(pt, dir); if(pdir==ERR) //Kiểm tra có là điểm cô lập không? return. ERR; //Điểm cô lập pt. x = pt. x + orient [pdir]. x; pt. y = pt. y + orient [pdir]. y ;

Chương 5 – Phân tích ảnh

Trang 175

Giáo trình xử lý ảnh

5.3.4 Phương pháp phát hiện biên dựa vào trung bình cục bộ 5.3.4.1 Biên và độ biến đổi về mức xám Như đã trình bày ở trên, trong thực tế người ta thường dùng hai phương pháp pháp hiện biên cơ bản là: Phát hiện biên trực tiếp và gián tiếp. Phần này đề cập đến kỹ thuật mới dựa vào trung bình cục bộ trên cơ sở đánh giá độ chênh lệch về giá trị mức xám của điểm ảnh so với các điểm lân cận do đó kết hợp được ưu điểm của cả hai khuynh hướng trực tiếp và gián tiếp.

Đối với các ảnh màu theo mô hình nào đó đều có thể chuyển sang mô hình gồm 3 thành phần mầu R, G, B. Sau đó dễ dàng chuyển các ảnh màu sang dạng ảnh đa cấp xám. Chẳng hạn: Gray = ( R + G + B ) / 3 Việc xử lý, thao tác trên các ảnh xám có một ưu điểm là dễ xử lý hơn các ảnh màu mà vẫn giữ được các đặc tính của ảnh. Các ảnh trắng đen tuy dễ xử lý nhất nhưng sẽ bị mất nhiều chi tiết sau khi chuyển đổi. Một cách lý tưởng đồ thị biến thiên mức xám của điểm ảnh khi qua biên phải có dạng: Mức xám

0

x

Trong thực tế dạng đồ thị này chỉ gặp trong các ảnh trắng đen (ảnh xám có hai màu), còn với các ảnh thực thì đồ thị của nó có dạng: Mức xám

0

x

Khó khăn cho việc phân tích các ảnh thực là ở chỗ do sự biến thiên về mức xám của điểm ảnh không phải chỉ được thể hiện theo một hướng duy nhất mà phải xét theo cả tám hướng của các điểm ảnh láng giềng, tại các vùng biên và lân cận biên sự biến thiên mức xám của các điểm ảnh thường không đột ngột mà trải Chương 5 – Phân tích ảnh

Trang 176

Giáo trình xử lý ảnh

qua một khoảng biến thiên không đều nhưng có tốc độ biến thiên nhanh. Chúng ta có thể xác định được các đường biên như thế này bằng kỹ thuật Laplace nhưng như ở trên đã nói kỹ thuật này rất nhạy cảm với nhiễu mà nhiễu hầu như lại là vấn đề mà ở trong bức ảnh nào cũng có. Ngoài ra, trong thực tế khi dò biên cho các ảnh xám tùy theo mục đích xử lý sau này mà người ta có thể muốn lấy biên của tất cả các đối tượng trong ảnh hoặc chỉ một số đối tượng chính trong ảnh. Các kỹ thuật đạo hàm do sử dụng các mặt nạ là các ma trận nhân chập nên khó điều chỉnh độ chi tiết của ảnh biên thu được. Muốn làm được điều này lại phải tính toán lại các giá trị của các phần tử trong ma trận theo các công thức nhất định, rất phức tạp và tốn kém. Không những thế ảnh thu được sau khi lọc không làm mất đi được tất cả các điểm không thuộc đường biên mà chỉ làm nổi lên các điểm nằm trên biên và muốn nhận dạng được các đối tượng thì ta còn phải xử lý thêm một vài bước nữa thì mới thu được ảnh biên thực sự. Có thể nhận thấy là các thuật toán dò biên truyền thống mà chúng ta hay dùng vẫn chưa đạt được sự hoàn thiện như mong muốn [3,8]. 5.3.4.2 Phát hiện biên dựa vào trung bình cục bộ

Ý tưởng chính của thuật toán được đề xuất là: Xác định tất cả các điểm nằm trên biên không theo hướng tìm kiếm và sử dụng các ma trận lọc, thông qua việc so sánh độ chênh lệch về mức xám của nó so với mức xám chung của các điểm ảnh lân cận (mức xám nền). Trước hết giá trị xám trung bình của các điểm ảnh nằm trong phạm vi của ma trận 3×3 hoặc 5×5 có tâm là điểm ảnh đang xét sẽ được tính toán. Nếu như độ chênh lệch mức xám giữa điểm đang xét với giá trị xám trung bình thỏa mãn lớn hơn một mức tối thiểu δ1 nào đó (PTB+ δ1< P) thì chúng ta sẽ coi nó là điểm biên và ghi nhận lại, còn các điểm không thỏa mãn điều kiện trên sẽ được coi là điểm nền. •1

N=5

a) Ma trận điểm ảnh trước khi lọc b) Ma trận điểm ảnh sau khi lọc Hình 5.3.4. Ma trận điểm ảnh trước và sau lọc Chương 5 – Phân tích ảnh

Trang 177

Giáo trình xử lý ảnh

Thuật toán có thể được mô tả như sau: for (i=0; i< biHeight; i++) for (j=0; j< biWidth; j++) { tt_GrayScale=0; for (ii=i-1; ii Int(Ciq-1) + T(Ciq-1) hoặc w(oq) > Int(Cjq-1) + T(Cjq-1).

Xét w(oq) > Int(Ciq-1) + T(Ciq-1). Do các cạnh được xem xét nằm trong thứ tự không giảm của trọng số, w(oq) ≤ w(ok), . Vì vậy việc hợp nhất sẽ không xảy ra với thành phần này, nghĩa là, Ci = Ciq-1. Trường hợp cho w(oq) > Int(Cjq-1) + T(Cjq-1) là tương tự. ™ Định lí 1

Phân vùng S được tạo bởi thuật toán có sử tính chất so sánh vùng D được định nghĩa trong phần 2.2.1 không quá mịn theo định nghĩa 1. Chứng minh: Theo định nghĩa 1, để phân vùng S quá mịn thì phải có một số cặp vùng nào đó mà D = 0. Thế thì phải có ít nhất một cạnh giữa một cặp các vùng như vậy được xem xét ở trong bước 3 và không gây ra sự hợp vùng nào.

Giả sử oq = (vi, vj) là cạnh đầu tiên theo thứ tự sắp xếp. Trong trường hợp này, thuật toán thì không thể hợp vùng Ciq-1 với Cjq-1 nghĩa là w(oq) > Mint(Ciq-1, Cjq-1). Theo bổ đề 1, chúng ta thấy hoặc Ci = Ciq-1 hoặc Cj = Cjq-1. Như vậy, ta có w(oq) > Mint(Ci, Cj) hay nói cách khác D đúng (D = 1) cho Ci và Cj. Điều này mâu thuẫn, vậy định lý được chứng minh. ™ Định lí 2

Phân vùng S tạo bởi thuật toán và sử dụng tính chất phân vùng D định nghĩa ở trong phần 5.4.4.2 mục a) không quá thô theo định nghĩa 2. Chứng minh: Trong trường hợp S quá thô thì có một tinh chỉnh thích hợp T mà không quá mịn. Xem xét cạnh có trọng số tối thiểu e nằm trong vùng bất kỳ C S nhưng kết nối hai vùng riêng biệt A, B T. Lưu ý, theo định nghĩa của

tinh chỉnh thì A ⊂ C và B ⊂ C. Do T không phải là quá mịn nên hoặc w(e) > Int(A) + T(A) hoặc w(e)> Int(B) + T(B). Chương 5 – Phân tích ảnh

Trang 203

Giáo trình xử lý ảnh

Theo tính chất D, bất kì một cạnh kết nối nào từ A tới các vùng con khác của C có trọng số tối thiểu bằng w(e) đều lớn hơn cạnh có trọng số tối đa trong cây bao trùm tối thiểu MST(A, E). Do đó, thuật toán phải xem xét tất cả các cạnh trong cây bao trùm tối thiểu MST(A, E) trước khi xem xét bất kỳ cạnh nào nối A với vùng con khác của C. Vì vậy, để xây dựng được C, thuật toán phải xây dựng A và khi xây dựng C thì phải hợp vùng A với vùng con khác của C. Nhưng theo giả thuyết, ta có B

T, B

C và w(e) > Int(A) + T(A) hoặc

w(e)> Int(B) + T(B) nên không thể hợp vùng A với bất kì vùng con nào để tạo ra C hay nói cách khác không có vùng C nào như vậy, điều này mâu thuẫn. Vậy định lý được chứng minh. ™ Định lí 3

Phân vùng được tạo bởi thuật toán 1 không phụ thuộc vào việc sắp xếp các cạnh theo thứ tự không giảm của trọng số. Chứng minh: Bất kì một thứ tự sắp xếp nào cũng có thể bị thay đổi bởi một sắp xếp khác bẳng cách đổi chổ các phần tử liên kề. Điều đó cho thấy việc đổi chổ thứ tự sắp xếp của hai cạnh liền kề có cùng trọng số thì thứ tự sắp xếp không giảm của các cạnh vẫn không thay đổi. Do đó, kết quả được tạo ra bởi thuật toán cũng không thay đổi.

Giả sử e1, e2 là hai cạnh có cùng trọng số liền kề trong dãy không giảm dần của trọng số. Rõ ràng khi hai cạnh cùng kết nối hai vùng khác nhau hoặc cùng nằm trong một vùng thì thứ tự cạnh được sắp xếp là không quan trọng. Điều quan trọng chúng ta cần xem xét là khi e1 kết nối giữa hai vùng A, B và e2 kết nối giữa một trong hai vùng trên, chẳng hạn B, với một số vùng C khác. Đầu tiên, giả sử e1 gây ra một hợp nhất khi được xem xét trước e2 khi đó w(e1) ≤ Mint(A, B). Khi e2 được xem xét trước e1, nếu e2 sẽ không gây ra sự hợp vùng thì e1 vẫn sẽ gây ra hợp vùng, còn nếu e2 sẽ gây ra một hợp vùng và tạo ra một vùng B C mới có Int(B C) = w(e2) = w(e2). Vì vậy, w(e1) ≤ MInt(A, B C) hay nói cách khác e1 cũng sẽ gây ra một hợp vùng. Mặt khác, giả thiết rằng e1 không gây ra một hợp vùng khi xem xét trước e2 thì w(e1) > Mint(A, B) hay w(e1) > Int(A) + T(A) hoặc w(e1) > Int(B) + T(B). Nếu w(e1) > Mint(A, B) thì dù e2 được xem xét như thế nào cũng không quan trọng bởi e2 không liên quan tới A. Khi w(e1) > Int(B) + T(B), nếu e2 được xem xét trước thì nó có thể không gây ra một hợp vùng vì w(e2) = w(e1) và do đó w(e2) > Mint(B, C) .Và vì vậy khi xem xét e1 sau e2 chúng ta vẫn có w(e1) > Mint(A, B) nghĩa là e1 không gây ra hợp vùng. Chương 5 – Phân tích ảnh

Trang 204

Giáo trình xử lý ảnh

5.4.9.4

Độ phức tạp tính toán

Thời gian thực hiện của thuật toán này được chia làm hai phần: ™ Một là thời gian cần thiết để sắp xếp dãy các cạnh theo thứ tự không giảm

của trọng số (Bước 1). Đối với dãy số nguyên thì điều này có thể được thực hiện trong thời gian tuyến tính và có nhiều phương pháp sắp xếp có thể thực hiện trong thời gian O(m logm) với m là số lượng cạnh. ™ Hai là thời gian thực hiện bước 2 – 4. Để kiểm tra được hai đỉnh có cùng

một thành phần hay không chúng tôi sử dụng hàm set-find trên mỗi đỉnh để lưu lại số hiệu thành phần mà đỉnh đó đang phụ thuộc vào. Để trộn hai thành phần lại với nhau, chúng tôi chỉ việc hiệu chỉnh các biến set-find của một trong hai tập đỉnh. MInt được tính trong một hằng số thời gian nếu biết được Int và kích thước của mỗi thành phần. Int cũng được tính trong một hằng thời gian cho mỗi phép hợp, vì cạnh nhỏ nhất trong cây bao trùm tối thiểu của mỗi thành phần là nguyên nhân gây ra phép hợp. Có được điều này là do bổ đề 1 nói rằng nguyên nhân gây ra phép hợp chính là cạnh có trọng số nhỏ nhất giữa hai thành phần được hợp. Kích thước của thành phần sau khi trộn bằng tổng kích thước của hai thành phần trước khi trộn. Vậy độ phức tạp tính toán từ bước 2 đến bước 4 là O(m α(m)) trong đó α là hàm Ackerman nghịch đảo, còn m là số cạnh của đồ thị. 5.4.9.5

Thực hiện thuật toán

Đầu tiên chúng ta hãy xem xét màu sắc của hình ảnh. Màu sắc của hình ảnh được xử lý thành ba hình ảnh đơn sắc riêng biệt. Như các cách tiếp cận lí thuyết đồ thị khác để phân vùng hình ảnh, chúng tôi định nghĩa một đồ thị vô hướng G = (V, E), nơi mà mỗi điểm ảnh pi tương ứng với mỗi đỉnh vi V. Cạnh E được xây dựng bằng cách kết nối các đỉnh lân cận theo nguyên tắc 8 liền kề. Điều này sẽ tạo thành một đồ thị có m = O(n), vì vậy với ảnh có n điểm ảnh thì thời gian thực hiện của thuật toán phân vùng ảnh là O(n logn). Thuật toán sử dụng trọng số của cạnh dựa trên sự khác nhau về cường độ của các điểm ảnh tạo nên cạnh kết nối đó, w(vi,vj) = | I(pi) - I(pj) | với I(pi) là cường độ của điểm ảnh pi.

Chương 5 – Phân tích ảnh

Trang 205

Giáo trình xử lý ảnh

Thuật toán sẽ sử dụng bộ lọc Gaussian để làm mịn ảnh trước khi tính toán trọng số của các cạnh. Ở đây, nó sẽ sử dụng Gaussian với = 0.8, để không tạo ra bất kì thay đổi nào trên ảnh nhưng vẫn giúp loại bỏ được nhiễu. Đối với ảnh màu, chúng tôi sử dụng thuật toán này ba lần, mỗi lần cho một trong các màu đỏ, xanh lá cây và xanh da trời, và tạo ra ba bộ phân vùng. Cụ thể, chúng tôi đặt hai điểm ảnh lân cận trong cùng một vùng khi chúng xuất hiện trong cùng một vùng cho cả các phân vùng của ba màu. Hoặc có thể chạy thuật toán một lần cho một đồ thị nơi mà trọng số của cạnh là sự chênh lệch giữa các điểm ảnh trong một số không gian màu. Tuy nhiên, qua thực nghiệm, chúng tôi nhận thu được kết quả tốt hơn bằng cách kết hợp các phân vùng ảnh cho mỗi màu lại với nhau như đã trình bày ở trên. Mỗi lần chạy tham số của thuật toán, giá trị của k được sử dụng để tính toán cho ngưỡng T. Còn nhớ, chúng tôi sử dụng công thức T(C) = k/ |C|, với |C| là số thành phần trong C. Như vậy, k thành lập một quy mô quan sát hiệu quả, trong đó trường hợp k lớn sẽ ưu tiên cho các thành phần lớn hơn. Chúng tôi sử dụng hai tham số khác nhau để cài đặt cho các ví dụ trong phần này tùy thuộc vào độ phân giải của hình ảnh. Ví dụ, những hình ảnh 128x128 của các đối tượng trong cơ sở dữ liệu COIL, chúng tôi sử dụng k =150. Còn các ảnh 320x240 hoặc lớn hơn, chẳng hạn như ảnh đường phố và các cầu thủ bóng chày, chúng tôi sử dụng k = 300. Ảnh đầu tiên trong Hình 5.4. cho thấy khung cảnh của một đương phố. Lưu ý rằng có biến đổi đáng kể trong dốc cỏ dẫn đến hàng rào này. Nó là loại mẫu mà thuật toán của chúng tôi được thiết kế để xử lý.

Hình 5.4. Khung cảnh con đường và kết quả phân vùng ảnh tạo bởi thuật toán ( = 0.8, k = 300).

Ảnh thứ hai cho thấy kết quả phân vùng, mỗi vùng sẽ được tô bằng một màu ngẫu nhiên. Sáu thành phần lớn được tìm thấy bởi thuật toán này là: ba trong số các khu vực phía sau hàng rào, độ dốc cỏ, các van và đường bộ. Phần còn Chương 5 – Phân tích ảnh

Trang 206

Giáo trình xử lý ảnh

thiếu ở góc dưới phía trái của con đường là một vùng có sự khác biệt rõ rệt trong màu ảnh mà từ đó phần vùng này được tính toán. Lưu ý rằng các van cũng không thống nhất về màu sắc, do hiệu ứng phản xạ, nhưng đây là những khuếch tán đủ để chúng được xem là những biến thể nội bộ và được gộp vào một vùng duy nhất. Ảnh đầu tiên trong Hình 5.5 cho thấy hai cầu thủ bóng chày. Cũng như ví dụ trước, có một vùng cỏ với biến đổi đáng kể. Đồng phục của các cầu thủ cũng có những biến đổi đáng kể do nếp gấp của vải. Ảnh thứ hai là kết quả phân vùng. Sáu thành phần lớn được tìm thấy bởi thuật toán: bức tường phía sau, biểu tượng Mets, một khu vực rộng lớn cỏ, đồng phục của hai cầu thủ, và một vùng nhỏ phía dưới cầu thủ thứ hai. Vùng cỏ rộng lớn bao gồm một phần của bức tường do sự biến thể tương đối lớn trong khu vực, và thực tế là có sự thay đổi chậm dài cường độ giữa cỏ và tường. Ranh giới này tương tự như ranh giới tạo bởi nếp gấp trên đồng phục của các cầu thủ.

Hình 5.5. Khung cảnh trận bóng chày (ảnh 432x294), kết quả phân vùng bởi thuật toán ( = 0.8, k=300).

Hình 5.6. cho thấy kết quả của thuật toán cho một khung cảnh trong nhà, nơi mà các chi tiết và cấu trúc lớn là quan trọng.

Chương 5 – Phân tích ảnh

Trang 207

Giáo trình xử lý ảnh

Hình 5.6. Khung cảnh trong nhà (ảnh 320x240), và kết quả phân vùng bởi thuật toán ( = 0.8, k = 300).

Lưu ý rằng phân vùng bảo tồn được những khu vực nhỏ như thẻ tên người mang và những gì bên sau cửa sổ, trong khi vẫn tạo ra các vùng lớn cho những khu vực có biển đổi lớn ống dẫn điều hòa gần đầu bức ảnh, quần áo và đồ nội thất. Hình ảnh cũng cho thấy, đôi lúc ranh giới của những vùng nhỏ cũng được tìm thấy, ví dụ như rìa của áo khoác hoặc áo sơ mi. Vùng này được tạo ra do một hoặc hai khu vực rộng các điểm ảnh nằm giữa hai vùng lân cận có cùng màu sắc và cường độ. Điều này phổ biến ở bất kì phương pháp phân vùng nào dựa vào lưới đồ thị. Vùng này có thể được loại bỏ nếu muốn, bằng cách loại bỏ vùng dài mỏng có cường độ hoặc màu sắc gần với mức trung bình hoặc vùng lân cận. 5.4.10 Phân vùng ảnh dựa trên biểu diễn và xử lý đa phân giải 5.4.9.1 Nguyên tắc chung

Ảnh được biểu diễn đa phân giải dựa trên cấu trúc chóp (cây tứ phân hoặc bộ lọc). Trên cơ sở đó xây dựng cây liên kết trên cơ sở cây tứ phân theo chỉ tiêu phân vùng ảnh. Dùng cây liên kết để tiến hành phân vùng ảnh, ở đó mỗi nhánh của cây đi từ gốc (chổ cắt) đến lá cây cho phép xác định vùng ảnh của ảnh ban đầu. 5.4.9.2 Chóp liên kết

Chóp liên kết được xây dựng trên cơ sở cây tứ phân biểu diễn đa phân giải. Cây được biểu diễn như là một đồ thị G(V, E); Chương 5 – Phân tích ảnh

Trang 208

Giáo trình xử lý ảnh

trong đó V = {v(i, j , h}; (0,0) ≤ (i, j ) ≤ (2 n −h ,2 n −h ); h ∈ [0, n] là tập các đỉnh

của đồ thị, h la chiều cao của cây và E = {e(i, j , h} là tập các cạnh của đồ thị. Khi đó với mỗi đỉnh của cây ta có các cặp cạnh quan hệ giữa các đỉnh khác của cây như sau: v(i, j , h), v(2i − 1, 2 j − 1, h − 1)

v(i, j , h), v(2i + 1, 2 j − 1, h − 1)

v(i, j , h), v(2i − 1, 2 j , h − 1)

v(i, j , h), v(2i + 1, 2 j , h − 1)

v(i, j , h), v(2i − 1, 2 j + 1, h − 1)

v(i, j , h), v(2i + 1, 2 j + 1, h − 1)

v(i, j , h), v(2i − 1, 2 j + 2, h − 1)

v(i, j , h), v(2i + 1, 2 j + 2, h − 1)

v(i, j , h), v(2i, 2 j − 1, h − 1)

v(i, j , h), v(2i + 2, 2 j − 1, h − 1)

v(i, j , h), v(2i, 2 j , h − 1)

v(i, j , h), v(2i + 2, 2 j , h − 1)

v(i, j , h), v(2i, 2 j + 1, h − 1)

v(i, j , h), v(2i + 2, 2 j + 1, h − 1)

v(i, j , h), v(2i, 2 j + 2, h − 1)

v(i, j , h), v(2i + 2, 2 j + 2, h − 1)

v(i, j , h) =

1 2 2 ∑ ∑ v( 2i + n, 2 j + m, h − 1) 16 n = −2 m =−2

5.4.9.3 Thuật toán phân vùng ảnh dựa trên chóp liên kết biểu diễn đa phân giải Đầu vào: Cho ảnh cần phân vùng, ràng buộc kích thước 2n x 2n Đầu ra: Cây liên kết trên cơ sở cây tứ phân biểu diễn đa phân giải (chóp tứ phân) Phương pháp:

Bước 1: - Xây dựng cây tứ phân biểu diễn đa phân giải - Xây dựng cây liên kết trên cơ sở cây tứ phân Bước 2: Bước lặp t

Chương 5 – Phân tích ảnh

Trang 209

Giáo trình xử lý ảnh

- Duyệt các nút con của cây liên kết ở tất cả các mức, mỗi nút con chọn một nút cha có giá trị gần nó nhất để thiết lập liên kết mới ở bước t - Tính giá trị các nút cha theo mối liên kết mới (nút không có nút con được gán giá trị 0) - Điều kiện dừng: Nếu cây liên kết ổn định (V(t), E(t))=(V(t-1), E(t-1)) thì dừng Ngược lại thì lặp bước t+1. Bước cuối: Thực hiện phân vùng ảnh theo cây liên kết tìm được. Cắt cây (từ gốc) hoặc từ một mức nào đó và mỗi nhánh của cây từ chổ cắt và đến các lá cho phép xác định một vùng ảnh ở mức 0 (lá)

CÂU HỎI ÔN TẬP 1. Thế nào là vùng ảnh ? Mục đích của phân vùng ảnh là gì ? 2. Thế nào là phân vùng ảnh theo ngưỡng biên độ ? Cho ví dụ ? 3. Thế nào là phân vùng ảnh theo miền đồng nhất ? Cho ví dụ ? 4. Trình bày phương pháp tách cây tứ phân để phân vùng ảnh ? 5. Trình bày phương pháp hợp để phân vùng ảnh ? 6. Trình bày phương pháp tổng hợp (tách và hợp) để phân vùng ảnh ? 7. Thế nào là phân vùng ảnh dựa vào kết cấu?

Chương 5 – Phân tích ảnh

Trang 210

CHƯƠNG 6

NÉN ẢNH

Chương này trình bày những vấn đề sau đây: 6.1 Tổng quan về nén dữ liệu ảnh 6.2 Phương pháp nén ảnh RLC 6.3 Phương pháp nén ảnh Huffman 6.4 Phương pháp nén ảnh LZW

Huffman

RLC

Thống kê

LZW

Từ điển

Mô hình

Tĩnh

Thích nghi

NÉN DỮ LIỆU = MÔ HÌNH + MÃ HÓA

Giáo trình xử lý ảnh

6.1

Tổng quan về nén dữ liệu ảnh

6.1.1 Khái niệm về nén ảnh Nén ảnh là một khoa học của mã hóa các loại ảnh kỹ thuật số để làm giảm số bít được yêu cầu biểu diễn một ảnh. Mục đích của việc làm này là làm giảm bộ nhớ và giá thành khi truyền. Như vậy có thể nói, nén dữ liệu ảnh là biến đổi dòng thông tin ảnh thành từ mã nhằm giảm độ dư thừa thông tin. Các độ dư thừa thông tin bao gồm dư thừa thông tin về không gian và thời gian, độ dư thừa phổ và dư thừa do độ cảm thụ. Dung lượng thông tin bao gồm lưu trữ và truyền (tốc độ dòng bít). Nén dữ liệu nhằm làm giảm lượng thông tin “dư thừa” trong dữ liệu gốc và do vậy, lượng thông tin thu được sau khi nén thường nhỏ hơn dữ liệu gốc rất nhiều. Với dữ liệu ảnh, kết quả thường là 10:1. Một số phương pháp còn cho kết quả cao hơn. Theo kết quả nghiên cứu được công bố gần đây tại Viện Kỹ thuật Georfie, kỹ thuật nén fratal cho tỉ số nén là 30 trên 1. Ngoài thuật ngữ “nén dữ liệu”, do bản chất của kỹ thuật này nó còn có một số tên gọi khác như : giảm độ dư thừa, mã hóa ảnh gốc. Từ hơn hai thập kỷ nay, có rất nhiều kỹ thuật nén đã được công bố trên các tài liệu về nén và các phần mềm nén dữ liệu đã xuất hiện ngày càng nhiều trên thương trường. Tuy nhiên, chưa có phương pháp nén nào được coi là phương pháp vạn năng (Universal) vì nó phụ thuộc vào nhiều yếu tố và bản chất của dữ liệu gốc. Trong chương này, chúng ta không thể hy vọng xem xét tất cả các phương pháp nén. Hơn thế nữa, các kỹ thuật nén dữ liệu chung đã được trình bày trong nhiều tài liệu chuyên ngành. Ở đây, chúng ta chỉ đề cập các phương pháp nén có đặc thù riêng cho dữ liệu ảnh. Tỷ lệ nén là một trong các đặc trưng quan trọng nhất của mọi phương pháp nén. Tuy nhiên, về cách đánh giá và các kết quả công bố trong các tài liệu cũng cần quan tâm xem xét. Nhìn chung, người ta định nghĩa tỷ lệ cơ bản của phương pháp nén. Nhiều khi tỷ lệ nén cao cũng chưa thể nói phương pháp đó hiệu quả hơn các phương pháp khác, vì còn các chi phí như thời gian, không gian và thậm chí cả độ phức tạp tính toán nữa. Thí dụ như nén phục vụ trong truyền dữ liệu: vấn đề đặt ra là hiệu quả nén có tương hợp với đường truyền không. Cũng cần phân biệt dữ liệu với nén băng truyền. Mục đích chính của nén là giảm lượng thông tin dư thừa và dẫn tới giảm kích thước dữ liệu. Tuy vậy, đôi khi quá trình Chương 6 – Nén ảnh

Trang 212

Giáo trình xử lý ảnh

nén cũng làm giảm băng truyền tín hiệu số hóa thấp hơn so với truyền tín hiệu tương tự. a) Phân loại ảnh theo thời gian Ảnh tĩnh (still image) là ảnh tự nhiên thu nhận (chụp), ảnh đồ họa (vẽ), có dư thừa không gian và độ dư thừa về cảm thụ. Ảnh động (motion image) bao gồm ảnh video, ảnh động chuyên dụng, hoạt hình, biến thiên theo thời gian; có các loại dư thừa về không gian, thời gian, phổ và dư thừa do độ cảm thụ. b) Các tham số chất lượng nén ảnh • Tỷ lệ nén: -

Tỷ số : CR = Kích thước dữ liệu ban đầu / Kích thước dữ liệu sau nén. (chẳng hạn như tỉ lệ 40:1)

-

Tỉ số bit: Nb= Số bít sau khi nén / Tổng số điểm ảnh.

-

Tốc độ dòng bít (đối với ảnh động): bit/s

• Chất lượng nén: -

Nén có mất mát thông tin (lossless)

-

Nén không mất mát thông tin (lossy): MSE, SNR

• Độ phức tạp: -

Về thời gian nén: nén thời gian thực / không thời gian thực.

-

Về không gian bộ nhớ.

Nén ảnh được thực hiện bằng cách loại bỏ những dư thừa trong ảnh. Những dư thừa có thể là không gian, quang phổ hay không gian tạm thời. • Dư thừa không gian là tương quan giữa những vùng điểm ảnh gần kề nhau • Dư thừa quang phổ là tương quan giữa những mức màu khác nhau Chương 6 – Nén ảnh

Trang 213

Giáo trình xử lý ảnh

• Dư thừa tạm thời là tương quang giữa những khung khác nhau trong một chuỗi ảnh. c) Nén dữ liệu = Tạo mô hình + sự mã hóa Nói chung, nén dữ liệu là việc lấy một dòng các ký hiệu và chuyển chúng thành các từ mã. Nếu việc nén hiệu quả, dòng dữ liệu kết quả sẽ nhỏ hơn dữ liệu ban đầu. Việc quyết định đưa ra một mã xác định cho một ký hiệu hoặc một tập các ký hiệu dựa trên một mô hình. Một mô hình một cách đơn giản chính là cách thu thập dữ liệu, các qui tắc xử lý các ký hiệu đầu vào và quyết định từ mã nào được đưa ra. Một chương trình sử dụng mô hình để xác định xác suất xuất hiện của các ký hiệu và tìm từ mã tương ứng trong bộ mã hóa để đưa ra. Tạo mô hình và mã hóa là hai công việc hoàn toàn khác nhau. Có phương pháp mã hóa tiêu biểu như là : “ mã hóa Huffman”, “phương pháp mã hóa loạt dài”, “ phương pháp mã hóa LZW”,. v.v. Mỗi phương pháp này đều cần tới một mô hình để có thể nén được dữ liệu. Ví dụ: sơ đồ đơn giản của chương trình nén dùng phương pháp mã hóa Huffman có thể vẽ như sau: Dữ liệu đầu vào

Các ký hiệu

Mô hình

Thống kê

Mã hóa

Từ mã

Dữ liệu đầu ra

Hình 6.1. Sơ đồ nén dùng phương pháp mã hóa Huffman d) Tạo mô hình Nếu chúng ta coi quá trình nén dữ liệu là một chiếc ô tô, thì việc mã hóa là các bánh xe, còn tạo mô hình là động cơ. Điều đó nói lên tầm quan trọng của việc tạo một mô hình khi nén. Bất chấp tính hiệu quả của bộ mã hóa, nếu chúng ta không có một mô hình với xác suất hợp lý thì không thể bàn tới chuyện nén dữ liệu. Nén dữ liệu không mất mát thông tin thường được cài đặt sử dụng một trong hai mô hình: mô hình thống kê và mô hình từ điển. Mô hình thống kê, mỗi lần Chương 6 – Nén ảnh

Trang 214

Giáo trình xử lý ảnh

đọc vào là mã hóa từng ký hiệu đơn lẻ dựa trên xác suất xuất hiện của ký hiệu đó. Mô hình dựa trên từ điển sử dụng một mã đơn lẽ thay thế cho một chuỗi các ký tự. Trong chương trình nén dùng mô hình dựa trên từ điển, việc mã hóa được đặt thành thứ yếu, trong khi vai trò của mô hình rất quan trọng. e) Sự mã hóa Sau khi tìm được mô hình, số bit cần thiết để mã hóa một ký hiệu đã được xác định, chúng ta cần phải xác định cách mã hóa để mã hóa các ký hiệu bằng một số bit như đã dự kiến trong mô hình. Giải quyết việc mã hóa sao cho hiệu quả nhất là vấn đề được các chuyên gia ngành nén quan tâm đầu tiên. Hai phương pháp làm việc tương đối tốt là phương pháp mã hóa Shanno-Fano và phương pháp mã hóa Huffman. Đây là hai phương pháp sinh ra các từ mã có độ dài bit thay đổi cho các ký hiệu khi biết bảng xác suất xuất hiện của chúng. Hạn chế của hai phương pháp này là ở chỗ, mỗi từ mã sinh ra đều có một số nguyên bits. Nếu entropy của một ký hiệu nào đó là 2.5 thì mã Huffman cho ký hiệu đó phải là 2 hoặc là 3 bits, chứ không thể là 2.5 bits. Vì hạn chế này hai phương pháp mã hóa trên chì là gần đúng. Tuy vậy dù sao hai phương pháp này cũng có một số ưu điểm như là chạy nhanh, dễ cài đặt và quan trọng hơn là phù hợp với tốc độ máy tính. 6.1.2 Phân loại dư thừa dữ liệu Như trên đã nói, nén nhằm mục đích giảm kích thước dữ liệu bằng cách loại bỏ dư thừa dữ liệu. Việc xác định bản chất các kiểu dư thừa dữ liệu rất có ích cho việc xây dựng các phương pháp nén dữ liệu khác nhau. Nói một cách khác, các phương pháp nén dữ liệu khác nhau là do sử dụng các kiểu dư thừa khác nhau. Người ta coi có 4 kiểu dư thừa chính : - Sự phân bố ký tự: Trong một dãy ký tự,có một số ký tự có tần suất xuất hiện nhiều hơn so với các dãy khác. Do vậy, ta có thể mã hóa dữ liệu một cách cô đọng hơn. Các dãy ký tự có tần suất cao được thay bởi một từ mã nhị phân với số bít nhỏ; ngược lại các dãy có tần suất xuất hiện thấp sẽ được mã hóa bởi từ mã có nhiều bít hơn. Đây chính là bản chất của phương pháp mã hóa từ hóa Huffman. Sự lặp lại của các ký tự:

Chương 6 – Nén ảnh

Trang 215

Giáo trình xử lý ảnh

Kỹ thuật nén dùng trong trường hợp này là thay dãy lặp đó bởi dãy mới gồm hai thành phần: số lần lặp và kí hiệu dùng để mã. Phương pháp mã hóa kiểu này có tên là mã hóa loạt dài RLC (Run Length Coding). Những mẫu sử dụng tần suất: Có thể có dãy ký hiệu nào đó xuất hiện với tần suất tương đối cao. Do vây, có thể mã hóa bởi ít bít hơn. Đây là cơ sở của phương pháp mã hóa kiểu từ điển do Lempel-Ziv đưa ra và có cải tiến vào năm 1977, 1978 và do đó có tên gọi là phương pháp nén LZ77,LZ78. Năm 1984, Tery Welch đã cải tiến hiệu quả hơn và đặt tên là LZW (Lempel-Ziv-Welch). Độ dư thừa vị trí: Do sự phụ thuộc lẫn nhau của dữ liệu, đôi khi biết được ký hiệu (giá trị) xuất hiện tại một vị trí, đồng thời có thể đoán trước sự xuất hiện của các giá trị ở các vị trí khác nhau một cách phù hợp. Chằng hạn, ảnh biểu diễn trong một lưới hai chiều, một số điểm ở hàng dọc trong một khối dữ liệu lại xuất hiện trong cùng vị trí ở các hàng khác nhau. Do vậy, thay vì lưu trữ dữ liệu, ta chỉ cần lưu trữ vị trí hàng và cột. Phương pháp nén dựa trên sự dư thừa này gọi là phương pháp mã hóa dự đoán. 6.1.3 Phân loại phương pháp nén ảnh Có nhiều cách phân loại các phương pháp nén khác nhau. Cách thứ nhất dựa vào nguyên lý nén. Cách này phân các phương pháp nén thành hai họ lớn: nén không mất mát thông tin và nén có làm mất mát thông tin. Nén có mất mát thông tin chấp nhận làm mất đi một phần tính chính xác để đổi lấy việc đạt được một tỉ lệ nén rất cao. Nén mất mát thông tin đã chứng tỏ hiệu quả của nó khi được áp dụng để nén các hình ảnh được số hóa. Do đặc tính tự nhiên, dạng biểu diễn số hóa của các đại lượng tự nhiên này không thật hoàn hảo, vì thế tư tưởng về một đầu ra và đầu vào không tương ứng một cách chính xác là hoàn toàn có thể chấp nhận được. Phần lớn các kỹ thuật nến có mất mát thông tin có thể điều chỉnh mức độ chính xác, độ chính xác càng cao thì tỷ lệ nén càng thấp (tỷ lệ nén ở đây tình bằng số phần trăm co lại của dữ liệu đầu vào sau khi bị nén). Nén không mất mát thông tin bao gồm các kỹ thuật đảm bảo sinh ra một bản sao chính xác của dòng dữ liệu đầu vào sau một chu trình nén/ giải nén. Họ này bao gồm các phương pháp mà sau khi giải nén ta không thu được dữ liệu như bản gốc. Phương pháp này lợi dụng tính chất của mắt người, chấp nhận một số vặn Chương 6 – Nén ảnh

Trang 216

Giáo trình xử lý ảnh

xoắn trong ảnh khi khôi phục lại. Tất nhiên, các phương pháp này chỉ có hiệu quả khi mà độ vặn xoắn chấp nhận được bằng mắt thường hay với dung sai nào đấy. Như vậy: • Nén không mất mát thông tin là các phương pháp mã hóa dữ liệu. • Nén mất mát thông tin là phương pháp nén dựa trên ghép biến đổi ảnh: mãi tới gần đây, khi giá của CHIP giảm mạnh, các kỹ thuật nén chấp nhận mất mát thông tin được cài đặt và sử dụng rỗng rãi cho các loại máy tính. Lý do chủ yếu là vì các thuật toán này đòi hỏi nhiều công việc tính toán phức tạp. Sự khác nhau cơ bản giữa hai họ kỹ thuật nén là nén mất mát thông tin chấp nhận một sự sai sót nhỏ về mặt chính xác để nén thông tin. Nén mất mát thông tin hay được sử dụng để lưu trữ dữ liệu tương tự dưới số hóa, mà chủ yếu là các file ảnh.

Hình 6.2. Sơ đồ về quá trình nén và giải mã ảnh Cách phân loại thứ hai dựa vào cách thức thực hiện nén. Theo cách này, người ta cũng phân thành hai họ: - Phương pháp không gian (Spatial Data Compression): Các phương pháp thuộc họ này thực hiện nén bằng các tác động trực tiếp lên việc lấy mẫu của ảnh trong miền không gian. - Phương pháp sử dụng biến đổi (Transform Coding): gồm các phương pháp tác động lên sự biến đổi của ảnh gốc mà không tác động trực tiếp như họ trên. Có một cách phân loại khác nữa, cách phân loại thứ ba, dựa vào triết lý của sự mã hóa. Cách này cũng phân các phương pháp nén thành hai họ: - Các phương pháp nén thế hệ thứ nhất: Gồm các phương pháp mà mức độ tính toán là đơn giản, thí dụ việc lấy mẫu, gán từ mã,.v.v. - Các phương pháp nén thế hệ thứ hai: dựa vào độ bão hòa của tỷ lệ nén. Chương 6 – Nén ảnh

Trang 217

Giáo trình xử lý ảnh

a) Các phương pháp mã hóa cơ bản không mất mát thông tin • Mã loạt dài (RLE): dùng số đếm để thay thế các điểm going nhau lặp lại. • Mã hóa Shannon – Fano: dùng các cụm bit có độ dài thay đổi để mã hóa. • Mã Huffman: sử dụng các đặc điểm mã hóa của Shanno-Fano với ý tưởng là ký hiệu có khả năng xuất hiện nhiều từ mã ngắn. • Mã Lemple-Ziv: dựa trên việc xây dựng và tra từ điển • Mã dự đoán: dựa trên quá trình tạo điểm tuần tự và luật dự đoán. b) Các phép biến đổi áp dụng trong nén ảnh • Phép biến đổi Cosin rời rạc (DCT): biểu diễn các giá trị điểm ảnh trên miền tần số, tập trung năng lượng vào một hệ số, DCT áp dụng trong các chuẩn JPEG và MPEG. - Phép biến đổi Cosin rời rạc DCT hai chiều : X [u , v] =

4ε k ε l M .N

M −1 N −1

⎛ π (2k + 1)u ⎞ ⎛ π (2l + 1)v ⎞ ⎟ cos⎜ ⎟ 2M ⎠ ⎝ 2N ⎠

∑∑ x(k , l ) cos⎜⎝ k =0 l =0

với x(k,l) là ma trận các khối điểm ảnh có kích thước 8 x 8, phép biến đổi cosin hai chiều được thực hiện lần lượt theo hàng sau đó theo cột, đều là các phép biến đổi một chiều. - Phép biến đổi Cosin rời rạc DCT một chiều : 2ε l M −1 ⎛ π (2k + 1)u ⎞ X (u ) =

M

∑ k =0

với ε k = 1 / 2 khi k = 0

x(k ) cos⎜ ⎝

εvà k =1

2M

⎟ ⎠

với k còn lại.

- Entropy của thông điệp S : 1 H ( S ) = ∑pi log 2 pi i với pi là xác suất xuất hiện của kí hiệu Si trong S. Chương 6 – Nén ảnh

Trang 218

Giáo trình xử lý ảnh

• Phép biến đổi Wavelet rời rạc (DWT): sử dụng các bộ lọc thông dải xử lý phân tích đa phân giải trong phép DWT. • Phép biến đổi dựa trên hình học Fractal (phép biến đổi Fractal): sử dụng các phép biến đổi hình học. 6.1.4 Sơ đồ của quá trình nén ảnh dựa trên phép biến đổi ảnh ¶ nh gèc

¶ nh nÐn BiÕn ®æi thuËn

L- î ng tö hãa

B¶ng l- î ng tö

M· hãa

B¶ ng m· hãa

¶ nh gi¶i nÐn ¶ nh nÐn Gi¶i m·

B¶ng m· hãa

L- î ng tö hãa ng- î c

BiÕn ®æi ng−îc

B¶ng l- î ng tö

Hình 6.3. Sơ đồ nén và giải nén ảnh của một hệ thống nén ảnh tĩnh 6.1.5 Ví dụ về phương pháp nén ảnh theo chuẩn JPEG • Chuẩn JPEG (Joint Photographic Experts Group): chuẩn quốc tế về nén ảnh tĩnh. • Trình tự công nghệ nén ảnh JPEG: Phép biến đổi Cosin DCT rời rạc, sắp xếp zigzag, lượng tử hóa, mã hóa dữ liệu. • Giải thuật cơ bản của chuẩn JPEG là phép biến đổi Cosin rời rạc DCT và mã hóa. • Phương thức thực hiện mã hóa: -

Mã tuần tự (Sequence DCT)

Chương 6 – Nén ảnh

Trang 219

Giáo trình xử lý ảnh

-

Mã lũy tiến (Progressive DCT)

-

Mã không mất mát thông tin (Sequential Lossless)

-

Mã phân cấp (Hierachical progressive)

a) Sơ đồ nén và giải nén ảnh JPEG

Hình 6.4. Sơ đồ nén ảnh JPEG

Hình 6.5. Sơ đồ giải nén ảnh JPEG

Chương 6 – Nén ảnh

Trang 220

Giáo trình xử lý ảnh

b) Các công đoạn nén ảnh JPEG

Hình 6.6. Sơ đồ các giai đoạn cơ bản nén ảnh JPEG

c) Ví dụ nén ảnh JPEG

Chất lượng ảnh JPEG và tỷ số nén : 0.25 - 0.5 bpp : Trung bình 0.5 - 0.75 bpp : Khá tốt 0.75 - 1.5 bpp : Tốt

Chương 6 – Nén ảnh

Trang 221

Giáo trình xử lý ảnh

6.2

Phương pháp nén ảnh mã độ dài thay đổi (RLC)

RLC là một kỹ thuật nén ảnh lợi dụng những dư thừa không gian. Đối với mã độ dài thay đổi một chiều, một độ dài thay đổi được định nghĩa như số lượng của những thành phần điểm ảnh liên tiếp có giá trị. Ảnh có thể được mã hóa sử dụng cặp (độ dài thay đổi, mã mức xám). Phương pháp mã hóa loạt dài lúc đầu được phát triển dành cho ảnh số 2 mức: mức đen (1), và mức trắng (0) như các văn bản trên nền trắng, trang in, các bản vẽ kỹ thuật. Nguyên tắc của phương pháp là phát hiện một loạt các bít lặp lại, thí dụ như một loạt các bít 0 nằm giữa hai bít 1, hay ngược lại, một loạt bít 1 nằm giữa hai bít 0. Phương pháp này chỉ có hiệu quả khi chiều dài dãy lặp lớn hơn một ngưỡng nào đó. Dãy các bít lặp gọi là loạt hay mạch (run). Tiếp theo, thay thế chuỗi đó bởi một chuỗi mới gồm 2 thông tin: chiều dài chuỗi và bít lặp (ký tự lặp). Như vậy, chuỗi thay thế sẽ có chiều dài ngắn hơn chuỗi cần thay. Cần lưu ý rằng, đối với ảnh, chiều dài của chuỗi lặp có thể lớn hơn 255. Nếu ta dùng 1 byte để mã hóa thí sẽ không đủ. Giải pháp được dùng là tách các chuỗi đó thành hai chuỗi: một chuỗi có chiều dài 255, chuỗi kia là số bít còn lại. Phương pháp RLC được sử dụng trong việc mã hóa lưu trữ các ảnh Bitmap theo dạng PCX, BMP. Phương pháp RLC có thể chia thành 2 phương pháp nhỏ: phương pháp dùng chiều dài tứ mã cố định và phương pháp thích nghi như kiểu mã Huffman. Giả sử các mạch gồm M bits. Để tiện trình bày, đặt M = 2m – 1. Như vậy mạch cũ được thay bởi mạch mới gồm m bits. Với cách thức này, mọi mạch đều được mã hóa bởi từ mã có cùng độ dài. Người ta cũng tính được, với M = 15, p = 0,9, ta sẽ có m = 4 và tỷ số nén là 1,95. Với chiều dài cố định, việc cài đặt thuật toán là đơn giản. Tuy nhiên, tỷ lệ nén sẽ không tốt bằng chiều dài biến đổi hay gọi là mã RLC thích nghi. Định nghĩa cơ sở của RLC được bắt đầu trong một thuật toán đã thiết kế tốt đạt được vấn đề phát sinh từ khả năng sau: 1) Một độ dài thay đổi được nhận dạng bởi 3 bit cuối có trọng số lớn nhất đặt bằng 1. Năm bít thấp của nó cung cấp một bộ đếm lặp từ 0 đến 31.

Chương 6 – Nén ảnh

Trang 222

Giáo trình xử lý ảnh

2) Nếu một giá trị điểm ảnh có độ dài thay đổi là 0 thì nó có thể được mã hóa như sau: a) Nếu 3 bit cuối đặt bằng 1,…. 224, thì mã của nó là (11100000, giá trị điểm ảnh), độ dài thay đổi 0 được sinh ra bởi giá trị điểm ảnh. b) Nếu không, nó được mã hóa như giá trị điểm ảnh.

(a)

Ảnh gốc

(b) ảnh sau khi giải mã (c) ảnh sau khi giải mã nén RLC mất mát thông nén Huffman mất mát tin thông tin

Hình 6.7. Một minh họa về nén mất mát thông tin sử dụng nén mã loạt dài thay đổi (RLC) và mã Huffman.

6.3

Phương pháp nén ảnh Huffman

6.3.1 Ý tưởng Phương pháp mã hóa Huffman tạo ra các mã với độ dài bit khác nhau cho các ký hiệu. Ký hiệu với xác suất xuất hiện càng cao thì mã tương ứng càng ngắn. Các từ mã Huffman có tính chất “UNIQUE PREFIX” nghĩa là: từ mã ngắn không bao giờ là phần đầu (prefix) của từ mã dài hơn. Nhờ tính chất này mà đoạn văn bản được mã hóa bằng phương pháp mã hóa Huffman có thể được giải mã chính xác. Việc giải mã các mã Huffman thông thường được tiến hành dựa trên một cây nhị phân, gọi là cây mã Huffman. Phương pháp mã hóa Huffman là phương pháp dựa vào mô hình thông kê. Dựa vào dữ liệu gốc, người ta tính tần suất xuất hiện của các ký tự. Việc tính tần suất được thực hiện bởi cách duyệt tuần tự tệp gốc từ đầu đến cuối. Việc xử lý ở đây tính theo bit. Trong phương pháp này người ta gán cho các ký tự có tần suất cao một từ mã ngắn, các ký tự có tần suất thấp từ mã dài. Nói một cách khác, các ký tự có tần suất càng cao được gán mã càng ngắn và ngược lại. Rõ ràng với cách thức này, ta đã làm giảm chiều dài trung bình của từ mã hóa bằng cách dùng Chương 6 – Nén ảnh

Trang 223

Giáo trình xử lý ảnh

chiều dài biến đổi. Tuy nhiên, trong một số tình huống khi tần suất là rất thấp, ta có thể không được lợi một chút nào, thậm chí còn bị thiệt một ít bít. Thuật toán bao gồm 2 giai đoạn chính: - Giai đoạn thứ nhất: tính tần suất của các ký tự trong dữ liệu gốc: duyệt tệp gốc một cách tuần tự từ đầu đến cuối để xây dựng bảng mã. Tiếp sau đó là sắp xếp lại bảng mã theo thứ tự tần suất giảm dần. - Giai đoạn thứ hai: mã hóa: duyệt bảng tần suất từ cuối lên đầu để thực hiện ghép 2 phần tử có tần suất xuất hiện thấp nhất thành một phần tử duy nhất. Phần tử này có tần suất bằng tổng 2 tần suất thành phần. Tiến hành cập nhật lại bảng và đương nhiên loại bỏ 2 phần tử đã xét. Quá trình được lặp lại cho đến khi bảng chỉ có một phần tử. Quá trình này gọi là quá trình tạo cây mã Huffman vì việc tập hợp được tiến hành nhờ một cây nhị phân 2 nhánh. Phần tử có tần suất thấp ở bên phải, phần tử kia ở bên trái. Với cách tạo cây này, tất cả các bit dữ liệu/ký tự là nút lá; các nút trong là các nút tổng hợp. Sau khi cây đã tạo xong, người ta tiến hành gán mã cho các nút lá. Việc mã hóa rất đơn giản: mỗi lần xuống bên phải ta thêm 1 bit “1” vào từ mã; mỗi lần xuống bên trái ta thêm một bit “0”. Tất nhiên có thể làm ngược lại, chỉ có giá trên mã thay đổi còn tổng chiều dài là không đổi. Cũng chính do lý do này mà cây có tên gọi là cây mã Huffman như trên đã gọi. Quá trình giải nén tiến hành theo chiều ngược lại khá đơn giản. Người ta cũng phải dựa vào bảng mã tạo ra trong giai đoạn nén (bảng này được giữ lại trong cấu trúc của tệp nén cùng với dữ liệu nén). Thí dụ, với một tệp dữ liệu mà tần suất các ký tự cho bởi.

Chương 6 – Nén ảnh

Trang 224

Giáo trình xử lý ảnh

Bảng tần suất Ký tự Tần suất

Bảng tần suất theo thứ tự giảm dần Ký tự

Tần suất

Xác suất

“1”

152

“0”

1532

0.2770

“2”

323

“6”

602

0.1088

“3”

412

“,”

536

0.0969

“4”

226

“”

535

0.0967

“5”

385

“3”

112

0.0746

“6”

602

“5”

385

0.0696

“7”

92

“2”

323

0.0585

“8”

112

“-”

315

0.0569

“9”

87

“4”

226

0.0409

“0”

1532

“+”

220

0.0396

“,”

536

“1”

152

0.0275

“+”

220

“8”

112

0.0203

“-”

315

“7”

92

0.0167

“”

535

“9”

87

0.0158

Lưu ý rằng, trong phương pháp Huffman, mã của ký tự là duy nhất và không mã nào là phần bắt đầu của mã khác. Vì vậy, khi đọc tệp nén từng bit từ đầu đến cuối ta có thể duyệt cây mã cho đến một lá, tức là ký tự đã được giải nén. Bảng từ mã gán cho các kí tự bởi mã Huffman “0”

10

“-”

0110

“6”

010

“4”

11110

“.”

001

“+”

11011

“”

000

“1”

111111

“3”

1110

“8”

111110

“5”

1100

“7”

110101

“2”

0111

“9”

110100

Thuật toán xây dựng cây mã Huffman như sau: Chương 6 – Nén ảnh

Trang 225

Giáo trình xử lý ảnh

a) Thuật toán xây dựng cây mã Huffman Bước 1: Hai nút tự do với trọng số bé nhất được chọn. Bước 2: Tạo một nút cha của hai nút chọn được trong bước 1. Trọng số của nút cha được gán bằng tổng trọng số của hai nút con. Bước 3: Nút cha được thêm vào danh sách các nút tự do và hai nút con thì bị xóa khỏi danh sách nút tự do. Bước 4: Một trong hai nhánh cây mới tạo ra được gán bit 0, nhánh còn lại gán bit 1 (thông thường chúng ta qui ước nhanh cây vơi trọng số lớn được gán bit 0 và nhanh cây với trọng số bé được gán bit 1) Các bước trên được lặp lại cho đến khi chỉ còn lại một nút tự do. Nút tự do này được gọi là gốc của cây. b) Ví dụ áp dụng thuật toán xây dựng cây mã Huffman Ví dụ 1: áp dụng giải thuật tạo cây trên bảng tần suất xuất hiện của các ký hiệu sau: 15 7 6 6 5 A

B

C

D

E

Đầu tiên từ bảng ta tạo được danh sách năm nút tự do. Năm nút này sẽ là năm nút lá được gắn dần dần vào cây. Lần lặp đầu tiên xác định ra hai nút tự do có trọng số bé nhất là D và E (vai trò của C và D là như nhau). Hai nút này được gắn vào một nút cha. Nút cha có trọng lượng 11. Các nút D và E sau đó được xóa khỏi danh sách các nút tự do, trong khi nút cha của chúng được bổ sung vào danh sách này. Hết lần lặp thứ nhất, chúng ta biết được bit LSB (less significant bit) trong mã của D và E. D được gán bit 0 còn E được gán bit 1 (từ nay về sau ta qui ước như vậy). Trong lần lặp thứ 2 thì hai nút B và C được chọn ra. Hai nút này tạo ra một nút mới có trọng số 13, và B và C được xóa khỏi danh sách các nút tự do. Trong lần lặp tiếp theo, hai nút có trọng số bé nhất là các nút cha của cặp B/C và D/E. Chúng được nhóm với nhau tạo thành một nút cha mới có trọng lượng 24, đồng thời các con bị xóa khỏi danh sách các nút tự do. Tại thời điểm này chúng ta đã có hai bit trong từ mã của các ký hiệu B, C, D, E và chưa có bit nào cho từ mã của A. Chương 6 – Nén ảnh

Trang 226

Giáo trình xử lý ảnh

Cuối cùng, trong lần lặp chót, chỉ còn hai nút tự do. Nút cha với trọng số 24 cùng với nút A tạo ra một nút cha mới có trọng số 39. Khi hai nút con bị xóa khỏi danh sách nút tự do, danh sách chỉ còn lại có một nút. Và cây đã được dựng xong. Tại thời điểm này cây có dạng như hình 6. 8. 1

0 39 0

1 24

0

1

0

13

1 11

15

7

6

6

5

A

B

C

D

E

Hình 6.8. Cây Huffman Để xác định mã cho một ký hiệu nào đó, chúng ta phải đi từ nút lá tương ứng đến gốc của cây mã Huffman, ghi nhớ các bit mới mỗi khi đi qua một nút cha. Danh sách các bit thu được đem đảo ngược cho ta từ mã của ký hiệu. Theo cách ấy ta có bảng từ mã các ký hiệu trong ví dụ sau: A 1 B

000

C

001

D

010

E

011

Để ý thấy rằng, các từ mã đều có tính chất là: “từ mã ngắn không bao giờ là phần đầu của một từ mã dài hơn”. Từ mã của ký hiệu có tần suất xuất hiện cao hơn (chẳng hạn A) ngắn hơn từ mã của ký hiệu có tần suất xuất hiện thấp (chẳng hạn E). Công việc chính là xây dựng hai hàm CompressFile (…) và ExpandFile(…) phục vụ cho việc nén và giải nén. Chương 6 – Nén ảnh

Trang 227

Giáo trình xử lý ảnh

Để xây dựng cây mã Huffman ta dùng một cấu trúc mô phỏng cây trên máy tính. Mỗi nút trên cây chứa một vài mẫu thông tin: thứ nhất là trọng số tương ứng với nút; thứ hai là các con trỏ tới hai nút con, một tương ứng với bit 0, một tương ứng với bit 1. Cuối cùng các nút là có giá trị của ký hiệu tương ứng với nút là đó. Từ sự phân tích trên, ta xây dựng cấu trúc nút như sau: typedef struct tree_node{ unsigned int count; unsigned int saved_count; int child_0; int child_1; } NODE; Thông tin về giá trị của mỗi nút là không cần mô tả tường minh vì rằng các cấu trúc node được lưu trữ trong một mảng (ARRAY) gồm 524 nút. Các nút có chỉ số thấp được coi như là các nút lá, và các nút có chỉ số cao trở thành các nút bên trong (những nút có hai nút con). Thông tin về giá trị của nút là được mã hóa dựa trên vị trí của nút trang mảng. Trong chương trình này chúng ta sử dụng tới 257 ký hiệu. 256 ký hiệu đầu là các ký tự của bảng mã ASCII với các giá trị tương ứng từ 0 đến 255. Ký hiệu thứ 257 có giá trị 256 được dùng để làm cờ báo kết thúc (End-of-stream). Đây là mã cuối cùng được đưa ra file kết xuất. Tất nhiên cũng còn có những biện pháp khác giải quyết việc khi nào chúng ta đến điểm kết thúc file chẳng hạn như dùng ngay độ dài file, tuy nhiên các biện pháp đó đều có những hạn chế so với phương pháp mà ta đưa ra ở trên. Với 257 ký hiệu chúng ta tính được kích thước lớn nhất có thể có của cây mã Huffman. Nếu tất cả 257 ký hiệu được sử dụng hết, ta sẽ có 256 nút bên trong cây. Điều đó có nghĩa là ta phải cấp phát bộ nhớ cho 513 cấu trúc nút. Hơn thế nữa chúng ta cần dùng thêm một nút nữa phục vụ cho việc so sánh khi xây dựng cây. Như vậy có thể tính được, chương trình cần phải cấp phát bộ nhớ cho một mảng 514 nút.

c) Đếm các ký hiệu Để xây dựng cây, đầu tiên chúng ta tính tần số tương đối của các ký hiệu. Trong chương trình, chúng ta khởi tạo một mảng 256 số nguyên long và Chương 6 – Nén ảnh

Trang 228

Giáo trình xử lý ảnh

tính số lần xuất hiện của mỗi ký hiệu trong file, từ đầu đến cuối. Vị trí con trỏ file đầu vào được ghi lại mỗi khi bộ đếm khởi động và được khôi phục khi nó làm xong. Tất cả công việc này được thực hiện trong hàm count_bytes(); Ban đầu chúng ta dùng các số long 32 bits để đếm số lần xuất hiện. Nhưng sau đó phải chia tỷ lệ các số đếm này để sao cho các số đếm có thể biểu diễn bằng các số nguyên một Byte. Các số đếm này sau đó được chuyển cho trọng số của 257 nút đầu tiên. Có một vài lý do để chia tỷ lệ các số đếm, đó là: giới hạn trọng số của các nút là số nguyên 8 bits. Do đó ta có thể hạn chế các phép tính số học với các số nguyên 16 bits không dấu. Điều này giúp cho chương trình chạy nhanh hơn một chút và có thể giảm chi phí lưu trữ mảng các nút. Điều đó cũng hạn chế kích thước tối đa của từ mã Huffman, đảm bảo rằng mã phù hợp với các số nguyên 16 bits không dấu. Toàn bộ các công việc trong phần này được thực hiện với hàm Scale_count();

d) Lưu các số đếm Để cho chương trình giải nén chính xác dòng bits được mã hóa sẽ nhận được, nó cần phải có một bản sao của cây mã Huffman giống hệt như cây đã được dùng để mã hóa. Điều này có nghĩa là thông tin về cây phải được chuyển tới đầu file kết xuất để cho chương trình giải nén có thể đọc được nó trước khi nó bắt đầu đọc các từ mã Huffman. Có một vài cách lưu thông tin về cây mã Huffman ở đây, chúng ta sẽ lần lượt phân tích từng cách một để chọn ra cách hay nhất. Cách 1: Cách đơn giản nhất để chương trình giải nén lấy được thông tin về cây mã Huffman là lưu toàn bộ mảng cấu trúc nút. Phương pháp này làm việc tốt và không mấy khó nhọc trong việc lưu cây cũng như đọc cây đó. Tuy nhiên hạn chế lớn nhất của phương pháp này chính là việc phải lưu một khối lượng dữ liệu quá lớn (khoảng 4K byte) vào file đã nén, một điều khó được chấp nhận khi mà chúng ta đang phải tiết kiệm từng bit trong quá trình nén. Cách 2: Thay vì lưu toàn bộ cây, chúng ta chỉ lưu số đếm của các ký hiệu. Phương pháp này đòi hỏi chúng ta bỏ thêm ít công sức khi xây dựng

Chương 6 – Nén ảnh

Trang 229

Giáo trình xử lý ảnh

lại cây từ các số đếm, nhưng cái hay của nó là chỉ tốn 256 byte để lưu thông tin về cây. Cách 3: Dễ thấy rằng trong phương pháp thứ 2 vẫn còn một chút lãng phí khi mà có nhiều ký hiệu có số đếm là 0 (Các ký hiệu đó không xuất hiện trong file). Phương pháp thứ ba này hạn chế bớt việc lưu những con số 0 vô vị ấy đi. Cách thức như sau: Đầu file (header) đã nén chưa các loạt số đếm, theo sau là một cờ báo kết thúc (terminator). Một loạt bao gồm giá trị của ký hiệu đầu tiên trong loạt, tiếp theo là ký hiệu cuối cùng của loạt, và sau đó là số đếm của các ký hiệu trong loạt lần lượt từ ký hiệu đầu đến ký hiệu cuối. Việc xây dựng các loạt được thực hiện cho đến khi hết tất cả các số đếm khác 0 của các ký hiệu. Khi đó ta đưa ra số 0 như là cờ báo kết thúc. Cần chú ý phân biệt cờ báo kết thúc này và giá trị 0 (nếu là như vậy) của loạt đầu tiên.

6.3.2 Xây dựng cây mã Huffman Sau khi các số đếm của các ký hiệu đã được xác định, công việc tiếp theo cần phải thực hiện là xây dựng cây mã Huffman. Công việc này được thực hiện trong hàm build_tree(). Vì rằng tất cả trường hợp cực đoan (như tràn ô nhớ, tràn dấu phẩy động,…) đã được xem xét và giải quyết trước đó, nên việc xây dựng cây chỉ đơn giản là lặp lại việc kết hợp hai nút tự do có trọng số bé nhất tạo ra một nút bên trong có trọng lượng bằng tổng trọng lượng của hai nút. Khi chỉ còn lại một nút tự do việc xây dựng cây hoàn thành, và nút tự do cuối cùng này là nút gốc của cây. Khi hàm buid_tree() bắt đầu khởi động, tất cả 257 nút bên dưới đã có trọng số (số đếm). Một giá trị trọng số khác 0 có nghĩa là nút hoạt động. buid_tree() cũng khởi tạo một nút đặc biệt được sử dụng cho trong khi so sánh. Nút 513, không bao giờ sử dụng, được khởi tạo với giá trị của trọng số là 65535. Đó là giá trị mà trọng số của một nút bình thường không thể nào vượt qua được. Khi tìm hai nút tự do có trọng số bé nhất, chương trình sẽ bắt đầu từ nút 513 này (bởi vì rằng các nút khác nằm phía dưới nút này). Cuối cùng, trước khi việc so sánh bắt đầu, một chỉ số chỉ đến một nút còn chưa được sử dụng (đầu tiên theo thứ tự từ bé đến lớn). Mỗi lần lặp buid_tree() cố gắng tìm ra hai nút tự do có trọng số bé nhất. Nếu chỉ còn thấy có một nút, khi đó cây được xây dựng xong và việc lặp kết thúc. Nếu vẫn còn đủ hai nút, một nút mới trên cây được tạo ra, nút mới này có chỉ số tham chiếu là chỉ số của nút đầu tiên còn chưa được sử dụng. Chương 6 – Nén ảnh

Trang 230

Giáo trình xử lý ảnh

Và sau đó chỉ số này được tăng lên 1. Hai con trỏ của nút mới được gán các giá trị là chỉ số tham chiếu của hai nút con, còn trọng số của nó bằng tổng trọng số của hai nút con. Sau đó hai nút con được đánh dấu như là nút không hoạt động (bằng cách gán lại trọng số của chúng là 0). Ngoài ra, trong cấu trúc nút còn có một thành phần chưa được bàn luận tới, đó là saved_count. Khi một nút bị loại khỏi danh sách các nút hoạt động bằng cách để cho trọng số của nút về 0, khi đó ta lưu lại giá trị của trọng số này vào saved_count. Việc dùng saved_count có nhiều thuận tiện khi chúng ta thực hiện gỡ rồi chương trình.

a) Tiến trình rút gọn: Gồm những bước sau: 1. Đặt M = N và giả thiết có một mảng V cỡ N-2 2. Lặp 3. P(M-1) = p(M) + p(M-1) 4. Xác định khối loc, trong vị trí M-1 đầu tiên của mảng p có: P(M-1)>p(loc) 5. Đặt temp = p(M-1) 6. Chuyển giá trị từ p(loc) tới p(M-20 xuống dưới bằng một vị trí đi lên M-1. 7. Đặt temp trong p(loc) 8. Lưu vùng này trong mảng v: V(N-2-i) = loc 9. Giảm M = M-1 10. Kết thúc vòng lặp Ví dụ: Có khả năng xuất hiện là p{0.25,0.25,0.125,0625,0.0625,0.0625,0.0625} ⎡ 2⎤ ⎢1 ⎥ ⎢ ⎥ ⎢ 4⎥ V =⎢ ⎥ ⎢ 3⎥ ⎢6 ⎥ ⎢ ⎥ ⎣5 ⎦

Chương 6 – Nén ảnh

Trang 231

Giáo trình xử lý ảnh

1

0.25

0.25

0.25

0.25

0.25

0.5

0.5

2

0.25

0.25

0.25

0.25

0.25

0.25

0.5

3

0.125

0.125

0.25

0.25

0.25

0.25

4

0.125

0.125

0.125

0.125

0.25

5

0.0625

0.125

0.125

0.125

6

0.0625

0.0625

0.125

7

0.0625

0.0625

8

0.0625 Hình 6.9. Sơ đồ những bước rút gọn

b) Tiến trình mở rộng: Gồm những bước sau: ⎡0⎤ ⎡ H (1) ⎤ ⎢1⎥ ⎢ H ( 2) ⎥ ⎥ ⎢ ⎥ ⎢ ⎢0⎥ ⎢ H (3) ⎥ 1. Ban đầu có mảng H: H = ⎢ ⎥ = ⎢ ⎥ ⎢.⎥ ⎢ . ⎥ ⎢.⎥ ⎢ . ⎥ ⎥ ⎢ ⎥ ⎢ ⎣0 ⎦ ⎣ H ( N ) ⎦

(Chú ý rằng thành phần thứ 2 của véc tơ H là 1, còn lại là 0) Véc tơ V = [v[1], v[2],...., v[N − 2]] được tính toán trong tiến trình rút T

2. 3.

4. 5. 6. 7. 8.

gọn. Đặt M = 2 và i = 1 Lưu thành phần tại vị trí V[i] trong H tại một vùng trung gian (tạm thời) Temp = H(V[i]) Chuyển tất cả những thành phần dưới H(V[i]) tới vị trí trước. Chèn 0 vào vị trí cuối. Chép Temp tới vị trí thứ M trong H Dịch H[M] sang trái 1 bít H[M+1] = H[M]+1 Tăng M và i lên 1

Chương 6 – Nén ảnh

Trang 232

Giáo trình xử lý ảnh

9. Nếu i= 8 chuyển 8 bit cuối cùng về file xuất và giảm Len đi 8 9. Nếu chưa kết thúc file thì đi đến bước 3 10. Truyền những bit còn lại trong thanh ghi aux tới file xuất Thứ tự đối với việc giải mã ta phải gom phần đầu file xuất. Phần đầu có thể gồm độ dài thực sự của file. Chú ý rằng độ đài hiện thời có thể lớn hơn hoặc bằng độ dài thực. 6.3.3 Sử dụng cây mã Huffman Sau khi cây mã Huffman đã được dựng xong, vấn đề cần phải bàn đến tiếp theo là việc sử dụng cây. Chúng ta phân biệt hai trường hợp: a) Trường hợp sử dụng cây mã Huffman khi giải nén Bắt đầu từ nút gốc, mỗi lần đọc một bit từ dòng dữ liệu đầu vào, căn cứ vào giá trị của bit này là 0 hay là 1 mà nút tiếp theo được trỏ bởi child_0 hay la child_1. Nếu nút tiếp theo này có chỉ số tham chiếu nhỏ hơn hay bằng 256 nghĩa là ta đã đi đến một nút lá nào đấy. Nếu ký hiệu này là End-of-Stream, điều đó có nghĩa file đã được giải nén xong, trái lại ký hiệu tương ứng của nút là được đưa vào file kết xuất. Toàn bộ công việc này được thực hiện trong một hàm expand_node(). b) Trường hợp sử dụng cây mã Huffman khi nén Để thuận tiện trong quá trình mã hóa, khi mà cây đã được dựng xong ta tính luôn từ mã của các ký hiệu và ghi chúng vào một bảng mã codes. Công việc này đã được nói tới trong ví dụ 1, minh họa thuật toán tạo cây mã Huffman. Và như vậy, mỗi khi đọc vào một ký hiệu chúng ta chỉ việc đưa từ mã của nó ra file kết xuất. Khi đến cuối file đầu vào, End-of-Stream được đưa ra. Công việc chuyển từ cấu trúc cây thành mã của các ký hiệu được thực hiện trong convert_tree_to_code().

c) Giải mã Giải mã 1 file sử dựng mã Huffman gồm những bước sau: 1. Đặt Len = 0, flength=0, aux = 0 Len là một biến đếm số bit được giải mã Flength là một biến đếm để so sánh với độ dài thực của file Aux là một thanh ghi 4 byte chứa những bit được giải mã 2. Lặp những bước sau cho tới khi flength > true_length 2.1 Chuyển 1 byte tới thanh ghi ch 2.2 . Lặp những bước sau 8 lần Chương 6 – Nén ảnh

Trang 234

Giáo trình xử lý ảnh

2.2.1 Dịch thanh ghi aux sang trái 1 bit 2.2.2 Chuyển bit có trọng số lớn nhất của ch tới vị trí có trọng số thấp nhất của aux 2.2.3 Dich sang trái 1 bit ch 2.2.4 Tăng Len lên 1 2.2.5 Tăng flength lên 1 2.2.6 Kiểm tra aux với tất cả mã Huffman có flength = Len Nếu tìm thấy: - Sao chép mảng gray tương ứng tơi file xuất - Đặt aux = 0 - Đặt Len = 0 2.2.7 Kết thúc lặp 3. Kết thúc lặp

6.4

Phương pháp nén ảnh LZW

6.4.1. Giới thiệu

Một trong những thuật toán nổi tiếng cải biên từ LZ78 là LZW. Welch trình bày thuật toán LZW trong bài báo “ A Technique for High- Performance Data Compression” trong tạp chí IEEE computer (năm 1984). Thuật toán này nhanh chóng được cài đặt thành chương trình và chạy khá hiệu quả. Có thể kể ra đây chương trình nén COMPRESS chạy trên UNIX là một trong những ứng dụng sớm nhất của thuật toán này. Phương pháp nén từ điển dựa trên việc xây dựng từ điển lưu các chuỗi ký tự có tần suất lặp lại cao và thay thế bằng từ mã tương ứng mỗi khi gặp lại chúng. Giải thuật LZW hay hơn các giải thuật trước nó ở kỹ thuật tổ chức từđiển cho phép nâng cao tỉ lệ nén. Giải thuật nén LZW được sử dụng cho tất cả các loại file nhị phân. Nó thường được dùng để nén các loại văn bản, ảnh đen trắng, ảnh màu, ảnh đa mức xám… và là chuẩn nén cho các dạng ảnh GIF và TIFF. Mức độ hiệu quả của LZW không phụ thuộc vào số bít màu của ảnh. 6.4.2. Phương pháp

Giải thuật nén LZW xây dựng một từ điển lưu các mẫu có tần suất xuất hiện cao trong ảnh. Từđiển là tập hợp những cặp từ vựng và nghĩa của nó. Trong đó, từ vựng sẽ là các từ mã được sắp xếp theo thứ tự nhất định. Nghĩa là một chuỗi con trong dữ liệu ảnh. Từđiển được xây dựng đồng thời với quá trình đọc dữ liệu. Chương 6 – Nén ảnh

Trang 235

Giáo trình xử lý ảnh

Sự có mặt của một chuỗi con trong từđiển khẳng định rằng chuỗi đó đã từng xuất hiện trong phần dữ liệu đã đọc. Thuật toán liên tục “tra cứu” và cập nhật từđiển sau mỗi lần đọc một ký tựở dữ liệu đầu vào. Do kích thước bộ nhớ không phải vô hạn và để đảm bảo tốc độ tìm kiếm, từđiển chỉ giới hạn 4096 ở phần tử dùng để lưu lớn nhất là 4096 giá trị của các từ mã. Như vậy độ dài lớn nhất của từ mã là 12 bits (4096 = 212). Cấu trúc từ điển như sau: Thuật toán LZW coi từ điển như là một bảng các xâu, ánh xạ các xâu ký tự đầu vào thành các mã đơn. Mặc dù bảng rất lớn nhưng chúng ta không phải lưu lại bảng mã này trong file đầu ra. Bảng được tạo ra theo những cơ chế giống nhau trên cả bộ nén lẫn giải nén. Có thể mô tả thuật toán LZW dưới dạng siêu ngữ như sau: 0 0

1

1







255

255

256

256

257

257

Clear Code (End Of Information)

Chuỗi Chuỗi …



4095

… Chuỗi

• 256 từ mã đầu tiên theo thứ tự từ 0…255 chữa các số nguyên từ 0…255. Đây là mã của 256 kí tự cơ bản trong bảng mã ASCII. • Từ mã thứ 256 chứa một mã đặc biệt là “mã xóa” (CC – Clear Code). Mục đích việc dùng mã xóa nhằm khắc phục tình trạng số mẫu lặp trong ảnh lớn hơn 4096. Khi đó một ảnh được quan niệm là nhiều mảnh ảnh, và từ điển là một bộ từ điển gồm nhiều từ điển con. Cứ hết một mảnh ảnh người ta lại gửi một mã xóa để báo hiệu kết thúc mảnh ảnh cũ, bắt đầu mảnh ảnh mới đồng thời khởi tạo lại từ điển cho mảnh ảnh mới. Mã xóa có giá trị là 256. • Từ mã thứ 257 chứa mã kết thúc thông tin (EOI – End Of Information). Mã này có giá trị là 257. Như chúng ta đã biết, một file ảnh GIF có thể chứa nhiểu ảnh. Mỗi một ảnh sẽ được mã hóa riêng. Chương trình giải mã

Chương 6 – Nén ảnh

Trang 236

Giáo trình xử lý ảnh

sẽ lặp đi lặp lại thao tác giải mã từng ảnh cho đến khi gặp mã kết thúc thông tin thì dừng lại. • Các từ mã còn lại (từ 258 đến 4095) chứa các mẫu thương lặp lại trong ảnh. 512 phần tử đầu tiên của từ điển biểu diễn bằng 9 bit. Các từ mã từ 512 đến 1023 biểu diễn bởi 10 bit, từ 1024 đến 2047 biểu diễn bởi 11 bit và từ 2048 đến 4095 biểu diễn bởi 12 bit. Ví dụ minh họa cơ chế nén của LZW Cho chuỗi đầu vào là “ABCBCABCABCD” (Mã ASCII của A là 65, B là 66, C là 67). Từ điển ban đầu gồm 256 kí tự cơ bản. Đầu vào

Đầu ra

A(65)

Thực hiện A đã có trong từ điển => Đọc tiếp

B(66)

65

Thêm vào từ điển mã 258 đại diện cho chuỗi AB

C(67)

66

Thêm vào từ điển mã 259 đại diện cho chuỗi BC

B

67

Thêm vào từ điển mã 260 dại diện cho chuỗi CB

C A

BC đã có trong từ điển => Đọc tiếp 259

B

Thêm vào từ điển mã 261 đại diện cho chuỗi BCA AB đã có trong từ điển => Đọc tiếp

C

258

Thêm vào từ điển mã 262 đại diện cho chuỗi ABC

A

67

Thêm vào từ điển mã 263 đại diện cho chuỗi CA

B

AB đã có trong từ điển => Đọc tiếp

C

ABC đã có trong từ điển = > Đọc tiếp

D

262

Thêm vào từ điển mã 263 đại diện cho chuỗi ABCD

Chuỗi đầu ra sẽ là: 65 – 66 – 667 – 259 – 258 – 67 – 262 Đầu vào có kích thước : 12x8 = 96 bits. Đầu ra có kích thước là : 4x8 + 3x9 = 59 bits Tỉ lệ nén là 96 : 59 ≅ 1,63 Thuật toán - Giá trị cờ INPUT = TRUE khi vẫn còn dữ liệu đầu vào và ngược lại. - Chức năng của các hàm : + Hàm InitDictionary(): hàm này có chức năng khởi tạo từ điển. Đặt giá trị cho 256 phần tử đầu tiên. Gán mã xóa (Clear Code) cho phần tử thứ 256 và mã kết thúc thông tin (End Of Information) cho phần tử thứ 257. Xóa giá trị tất cả các phẩn tử còn lại.

Chương 6 – Nén ảnh

Trang 237

Giáo trình xử lý ảnh

+ Hàm Output(): gửi chuỗi bit ra file. Chuỗi này có độ dài là 9,10,11 hoặc 12 tùy thuộc vào vị trí trong từ điển của từ mã gửi ra. Các chuỗi bit này được nối tiếp vào với nhau. + Hàm GetNextChar(): trả về kí tự từ chuỗi kí tự đầu vào. Hàm này cập nhật giá trị của cờ INPUT xá định xem còn dữ liệu đầu vào nữa hay không. + Hàm AddtoDictionary(): sẽ được gọi khi có một mẫu mới xuất hiện. Hàm này sẽ cập nhật mẫu này vào phần tử tiếp theo trong từ điển. Nếu từ điển đã đầy nó sẽ gửi ra mã xóa (Clear Code) và gọi đến hàm InitDictionary() để khởi tạo lại từ điển. + Hàm Code(): trả về từ mã ứng với một chuỗi.

Hình 6.10. Sơ đồ thuật toán nén LZW. Tư tưởng của đoạn mã trên có thể hiểu như sau: nếu còn dữ liệu đầu vào thì tiếp tục đọc. Một chuỗi mới sẽ được tạo ra từ chuỗi cũ (chuỗi này ban đầu trống, chuỗi này phải là chuỗi đã tồn tại trong từ điển) và kí tự vừa đọc vào. Sau đó kiểm tra xem chuỗi mới đã có trong từ điển chưa. Mục đích của công việc này là hi vọng kiểm tra xem chuỗi có số kí tự lớn nhất đã tồn tại trong từ điển. Nếu tồn tại ta lại tiếp tục đọc một kí tự tiếp theo và lặp lại công việc. Nếu chưa có trong từ điển, thì gửi chuỗi cũ ra ngoài và thêm chuỗi mới vào từ điển. Có thể xem lại phần ví dụ để hiểu rõ hơn. Giải nén dữ liệu nén bằng LZW

Giải thuật giải nén gần như ngược lại với giải thuật nén. Với giải thuật nén, một từ mã ứng với một chuỗi sẽ được ghi ra tệp khi chuỗi ghép bởi chuỗi Chương 6 – Nén ảnh

Trang 238

Giáo trình xử lý ảnh

trên với kí tự vùa đọc chưa có mặt trong từđiển. Người ta cũng cập nhật ngay vào từđiển từ mã ứng với chuỗi tạo bởi chuỗi cũ với kí tự vừa đọc. Kí tự này đồng thời là kí tự đầu tiên trong chuỗi tương ứng với từ mã sẽ được ghi ra tiếp theo. Đây là điểm mấu chốt cho phép xây dựng thuật toán giải nén. Thuật toán được mô tả như sau :

While(GetnextCode != EOI) do Begin if FIRST_CODE then /*Mã đầu tiên của mỗi mảnh ảnh*/ Begin OutBuff(code); OldStr := code; End; If code = CC then /*Mã xóa*/ Begin InitDictionary(); FIST_CODE = TRUE; End; NewStr := DeCode(code); OutBuff(NewStr); OldString = OldStr + FirstChar(NewStr); AddtoDictionary(OldStr); OldString := NewStr; End; + Giá trị cờ FIRST_CODE = TRUE chỉ mã vừa đọc là mã đầu tiên của mỗi mảnh ảnh. Mã đầu tiên có cách xử lí hơi khác so với các mã tiếp theo. + Mã CC báo hiệu hết một mảnh ảnh. Mã EOF báo hiệu hết toàn bộ thông tin ảnh. + Chức năng của các hàm: - GetNextCode(): hàm này đọc thông tin đầu vào (dữ liệu nén) trả về mã tương ứng. Chúng ta nhớ lại rằng, dữ liệu nén gồm chuỗi các từ mã nối tiếp nhau. Ban đầu là 9 bit, sau đó tăng lên 10 bit rồi 11, 12 bit. Nhiệm vụ của hàm này không phải đơn giản. Để biết được tại thời điểm hiện thời, từ mã dài bao nhiêu bit ra phải luôn theo dõi từ điển và cập nhật độ dài từ mã tại các phần tử thứ 512,1024, 2048. - OutBuff(): hàm này gửi chuỗi giá trị đã giải mã ra vùng nhớ đệm. - DeCode(): hàm này tra cứu từ điển và trả về chuỗi kí tự tương ứng với từ mã. - FirstChar(): lấy kí tự đầu tiên của một chuỗi. Kí tự vừa xác định nối tiếp vào chuỗi kí tự cũ (đã giải mã ở bước trước) ta được chuỗi kí tự có mặt trong từ điển khi nén. Chuỗi này sẽ được thêm vào từ điển giải nén.

Chương 6 – Nén ảnh

Trang 239

Giáo trình xử lý ảnh

- OutPut(): gửi chuỗi bít ra file. Chuỗi bít này có độ dài là 9, 10, 11 hoặc 12 tùy thuộc vào vị trí trong từ điển của từ mã gửi ra. Các chuỗi bit này được nối tiếp vào với nhau. Trường hợp ngoại lệ và cách xử lý

Đối với giải thuật LZW tồn tại một trường hợp được sinh ra nhưng chương trình giải nén có thể không giải mã được. Giả sử c là một ký tự, S là một chuỗi có độ dài lớn hơn 0. Nếu mã k của từ điển chứa giá trị là cS. Ngay sau đó k’ được dùng thay thế cho cSc. Trong chương trình giải nén, k’ sẽ xuất hiện trước khi nó được định nghĩa. Rất may là từ mã vừa đọc trong trường hợp này bao giờ cũng có nội dung trùng với tổ hợp của từ mã cũ với kí tự đầu tiên của nó. Điều này giúp cho quá trình cài đặt chương trình khắc phục được trường hợp ngoại lệ một cách dễ dàng.

CÂU HỎI ÔN TẬP 1. Viết một chương trình nén và giải nén theo phương pháp RLC. 2. Viết một chương trình nén và giải nén theo phương pháp Huffman. 3. Viết một chương trình nén và giải nén theo phương pháp LZW.

Chương 6 – Nén ảnh

Trang 240

TÀI LIỆU THAM KHẢO

1. Rafael C. Gonzalez, Richard E. Woods, Steven L. Eddins, Digital Image Processing Using MATLAB, 2nd Edition, Gatesmark Publishing, 2009. 2. Wilhelm Burger, Mark J. Burge, Principles of Digital Image Processing, Addison-Wesley Publishing Company, USA 2009. 3. Richard Szeliski, Computer Vision: Algorithms and Applications, Springer Publishing, New York, 2010. 4. Đỗ Năng Toàn, Phạm Việt Bình, Giáo Trình Xử Lý Ảnh Số, Khoa Công Nghệ Thông Tin, Đại Học Thái Nguyên, 2007. 5. Nguyễn Quang Hoan, Giáo Trình Xử Lý Ảnh, Học Viện Bưu Chính Viễn Thông, Hà Nội, 2006.

Tài liệu tham khảo

Trang 241