Xử lý ảnh bằng phương pháp Morphology

Mục Lục Chương 1: Khái Niệm Cơ Bản. 4 Lịch sử hình thành. [1] 4 Lý thuyết tập hợp được sử dụng. . 4 Phép toán Dilation và Erosion. . 6 Phép toán Opening và Closing. . 9 Phép toán . . 10 Chương 2: Các Công Cụ Bổ Sung. . 13 Trích biên (Boundary extraction) 13 Tô miền (Region filling). 13 Trích các thành phần liên thông. 14 Tìm bao lồi (Convex hull). . 16 Làm mỏng (Thinning). . 16 Làm dày (Thickening). . 19 Lấy khung (Skeletons). 20 Cắt xén (Pruning). . 24 Chương 3: Phương Pháp Morphology Cho Ảnh Xám. 27 Khái niệm về ảnh xám . 27 Phép Dilation cho ảnh xám. 27 Phép Erosion cho ảnh xám. 28 Phép Opening và Closing cho ảnh xám . 30 Một số ứng dụng của morphology trên ảnh xám. 32 Chương 4: Ứng Dụng Chạy Thử 41 Tài Liệu Tham Khảo . 44 Chương 1: Khái Niệm Cơ Bản. Lịch sử hình thành. [1] Khái niệm Morphology trong xử lý ảnh số khởi nguồn từ một ngành của sinh học, nghiên cứu về hình thể và cấu trúc của động thực vật. Đây là một công cụ giúp rút trích các thành phần trong ảnh nhị phân, biễu diễn và mô tả chúng dưới dạng các vùng hoặc dạng như các đường biên, xương và bao lồi. Kỹ thuật morphology cũng được áp dụng trên ảnh xám cho các công đoạn tiền/hậu xử lý ảnh (pre or post processing). Các phép toán đầu tiên trong Morphology được phát triển vào những năm 1964 bởi Georges Matheron (1930 - 2000) và Jean Serra (1940) tại trường đại học École des Mines de Paris, Pháp. Matheron là tiến sĩ hướng dẫn của Jean, họ cố gắng xác định số lượng đặc tính của khoáng sản thông qua “thin cross section” và công việc cho ra kết quả là một phương pháp tiếp cận mới, cũng như sự tiến bộ trong hình học tích phân và tô pô. Từ đó đến hết năm 1970, Morphology xử l{ cơ bản với các ảnh nhị phân, tạo ra các phép toán và kĩ thuật như: Hit-or-miss, Dilation, Erosion, Opening, Closing . Từ giữa 1970 đến giữ 1980, Morphology xử lý thêm ảnh xám và có nhiều kết quả khả quan trong việc tạo ra các phép toán mới như Morphology Gradients

pdf44 trang | Chia sẻ: lvcdongnoi | Lượt xem: 5914 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Xử lý ảnh bằng phương pháp Morphology, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP. HỒ CHÍ MINH KHOA TOÁN – TIN HỌC PHƯƠNG PHÁP MORPHOLOGY Đề Tài Môn Xử Lý Ảnh Giáo Viên Hướng Dẫn: TS. Phạm Thế Bảo Nhóm Thực Hiện: Vũ Văn Trọng Nghĩa 0811098 Nguyễn Hồng Quy 0811137 Bùi Quang Vinh 0811198 Nguyễn Hoàng Quốc 0811300 Tp. Hồ Chí Minh, tháng 12 năm 2010 2 Lời Nói Đầu Nhóm làm đề tài chúng tôi xin mạn phép dành những dòng đầu tiên để tỏ lòng cảm ơn, cũng những sự kính trọng đối với thầy Phạm Thế Bảo, người đã dìu dắt nhóm chúng tôi những bước đi chập chững đầu tiên. “Chúng em cám ơn thầy và chúc thầy dồi dào sức khoẻ”. Đây là báo cáo của nhóm chúng tôi về phương pháp Morphology, chúng được chúng tôi trình bày trong 3 phần chính đó là: Cơ Sở Lý Thuyết, Các Công Cụ Bổ Sung, Trên Ảnh Xám. Cuối cùng, để minh hoạ cho việc sử dụng phương pháp này, chúng tôi có viết mã chương trình để chạy thử nghiệm. Chương trình này dung để đếm những đối tượng có hình tròn trong một bức ảnh trắng đen. Ở đây chúng tôi chỉ mới dừng lại ý tưởng thực hiện bài toán này và chứng minh cho người đọc thấy { tưởng có vẻ đúng. Chúng tôi xin dành bài báo cáo sau về bài toán này tường minh và hoàn thiên hơn. Song song bên cạnh cái làm được, chúng tôi cũng làm những thứ chưa được. Chúng tôi chưa tìm hiểu nhiều phương pháp mới hơn nhưng cùng cho ra kết quả như những phép toán trong phương pháp này. Tuy vậy, với những phần chúng tôi tìm hiểu và liên hệ ra ngoài, chúng tôi đã tích cực làm rõ và so sánh với phép toán trong phương pháp Morphology. Nhóm Làm Đề Tài 3 Mục Lục Chương 1: Khái Niệm Cơ Bản. ........................................................................................................................ 4 Lịch sử hình thành. [1] ................................................................................................................................ 4 Lý thuyết tập hợp được sử dụng. ............................................................................................................... 4 Phép toán Dilation và Erosion. ................................................................................................................... 6 Phép toán Opening và Closing. ................................................................................................................... 9 Phép toán . ................................................................................................................. 10 Chương 2: Các Công Cụ Bổ Sung. ................................................................................................................. 13 Trích biên (Boundary extraction). ............................................................................................................. 13 Tô miền (Region filling). ............................................................................................................................ 13 Trích các thành phần liên thông. .............................................................................................................. 14 Tìm bao lồi (Convex hull). ......................................................................................................................... 16 Làm mỏng (Thinning). ............................................................................................................................... 16 Làm dày (Thickening). ............................................................................................................................... 19 Lấy khung (Skeletons). .............................................................................................................................. 20 Cắt xén (Pruning). ..................................................................................................................................... 24 Chương 3: Phương Pháp Morphology Cho Ảnh Xám. .................................................................................. 27 Khái niệm về ảnh xám............................................................................................................................... 27 Phép Dilation cho ảnh xám. ...................................................................................................................... 27 Phép Erosion cho ảnh xám. ...................................................................................................................... 28 Phép Opening và Closing cho ảnh xám. .................................................................................................... 30 Một số ứng dụng của morphology trên ảnh xám. .................................................................................... 32 Chương 4: Ứng Dụng Chạy Thử .................................................................................................................... 41 Tài Liệu Tham Khảo ....................................................................................................................................... 44 4 Chương 1: Khái Niệm Cơ Bản. Lịch sử hình thành. [1] Khái niệm Morphology trong xử lý ảnh số khởi nguồn từ một ngành của sinh học, nghiên cứu về hình thể và cấu trúc của động thực vật. Đây là một công cụ giúp rút trích các thành phần trong ảnh nhị phân, biễu diễn và mô tả chúng dưới dạng các vùng hoặc dạng như các đường biên, xương và bao lồi. Kỹ thuật morphology cũng được áp dụng trên ảnh xám cho các công đoạn tiền/hậu xử lý ảnh (pre or post processing). Các phép toán đầu tiên trong Morphology được phát triển vào những năm 1964 bởi Georges Matheron (1930 - 2000) và Jean Serra (1940) tại trường đại học École des Mines de Paris, Pháp. Matheron là tiến sĩ hướng dẫn của Jean, họ cố gắng xác định số lượng đặc tính của khoáng sản thông qua “thin cross section” và công việc cho ra kết quả là một phương pháp tiếp cận mới, cũng như sự tiến bộ trong hình học tích phân và tô pô. Từ đó đến hết năm 1970, Morphology xử l{ cơ bản với các ảnh nhị phân, tạo ra các phép toán và kĩ thuật như: Hit-or-miss, Dilation, Erosion, Opening, Closing…. Từ giữa 1970 đến giữ 1980, Morphology xử lý thêm ảnh xám và có nhiều kết quả khả quan trong việc tạo ra các phép toán mới như Morphology Gradients… Lý thuyết tập hợp được sử dụng. Số hóa một ảnh từ không gian thực 2D là động tác lấy mẫu mặt phẳng 2D ấy trên một lưới 2 chiều, với tọa độ x và y lần lượt là các số nguyên trong tập . Như vậy ta có một ánh xạ hàm ảnh giữa giá trị độ sang của điểm ảnh và tọa độ . Nếu giá trị độ sáng của ảnh là số nguyên, ta có định nghĩa về một hàm ảnh với tọa độ và giá trị độ sáng đều nguyên. Cho A là 1 tập con trong . Nếu là phần tử của A thì ta viết ngược lại chúng ta viết là . Tập hợp mà không có phần tử nào là tập hợp rỗng kí hiệu . Hội cả 2 tập hơp A và B là tập hợp , tương tự hợp của A và B là tập . Hai tập hợp A, B rời nhau nếu như . Phần bù của tập hợp A là những phần tử không thuộc A kí hiệu bởi . Hiệu giữa tập hợp A và B là những phần tử thuộc A nhưng không thuộc B, kí hiệu . 5 Phản xạ của tập hợp B kí hiệu là . Tịnh tiến tập A theo điểm kí hiệu là . Bảng liệt kê các toán tử trong Matlab Toán Tử Biểu Thức Matlab A&B A|B -A A&~B Các toán tử logic trong ảnh nhị phân (NOT, AND, XOR, OR) Hình 1-1: minh họa các phép toán trên tập hợp. Hình 1-2: minh họa phép tịnh tiến và phản xạ 6 Hình 1-3: minh họa các phép toán luận lý Phép toán Dilation và Erosion. 1. Nhân tạo hình (Structuring Element). [2] Là một tập hợp nhỏ được dùng để dò tìm hay tương tác với hình được cho, theo ông Georges Matheron, đặc điểm đặc trưng của đối tượng dựa vào cách ta đoán hay nhìn nhận nó. Từ đó ta chọn nhân tạo ảnh tùy thuộc vào { đồ của những phép toán Morphology muốn đạt được. Có 2 yếu tố chính cần lưu tâm khi ta chọn nhân tạo ảnh: i. Hình dạng của nó: hình tròn, hình vuông… ii. Kích cỡ của nó: 3X3, 5X5 … Cứ mỗi nhân tạo ảnh, ta xác định một cái tâm (origin). Trong Matlab,chương trình giả định rằng điểm ở giữa là tâm. 2. Phép toán Dilation. Phép toán Dilation là thao tác giãn nỡ/phình to các đối tượng ảnh đơn sắc A và B là hai tập hợp con trong , thực hiện phép toán Dilation trong A theo B, kí hiệu là và được xác định như sau . Trong Matlab, ta có hàm Dilation như sau: . Ví dụ về cách sử dụng hàm . Hình 1-4: minh họa nhân tạo ảnh 7 chính là nhân tạo hình. Trong Matlab, chương trình cũng cung cấp cho ta nhiều nhân tạo hình khác nhau, để biết thêm chi tiết gõ . Trong thực tế, người ta chọn những nhân tạo ảnh sao cho , tức là sử dụng những nhân tạo ảnh có các phần tử trong nhân tạo ảnh đối xứng qua chính tâm của nó. Bên cạnh đó, với việc ta lê những cái tâm của nhân tạo ảnh đi khắp và tìm những điểm nào mà thì ta có thể hiểu như với là những khu vực mà thỏa . Có thể xem hình minh họa dưới đây: Hình 1-5: đối tượng cần phình A và nhân tạo ảnh B Hình 1-6: minh họa quét các khắp A 3. Phép toán Erosion. Phép toán Erosion là thao tác xói mòn/co hẹp các đối tượng ảnh đơn sắc. A và B là hai tập hợp con trong , thực hiện phép toán Erosion trong A theo B, kí hiệu là và được xác định như sau . Tương tự, trong Matlab ta cũng có hàm Erosion như sau: và cách sử dụng hàm này như sau: Hình 1-7: kết quả đạt được 8 Để minh họa cách thức phép toán hoạt động có thể xem hình phía dưới với và tương tự như ví dụ ở phép toán Dilation. 4. Nhận xét i. Hai thuật toán Erosion và Dilation có mối tương quan với nhau: Thật vậy ta có suy ra suy ra tức là hay ta có điều sau . Từ đó, ta kết luận: Mặc khác ta cũng có: Chọn ta có điều phải chứng minh. ii. Tính chất cần lưu { là khi ta chọn những mặt nạ khác nhau thì kết quả thu được cũng khác nhau. Hình 1-8: minh họa kết quả của phép toán Hình 1-9: sự tương quan giữa 2 phép toán 9 Hình 1-10: phép toán với 2 nhân tạo ảnh khác nhau Hình 1-11: phép toán với 2 nhân tạo ảnh khác nhau Phép toán Opening và Closing. 1. Phép toán Openning. Phép toán Opening của hình theo nhân tạo hình kí hiệu là: . Theo một định nghĩa khác tương đương dựa vào hình học ta có: . Tác dụng của phép toán Opening là loại bỏ những đối tượng không đủ lớn để chứa nhân tạo hình (góc), làm trơn biên, tách rời mấu liên kết với những đối tượng lớn và loại bỏ nhánh con. Trong Matlab hàm hỗ trợ phép toán này là . Một số tính chất đáng lưu tâm: i. ii. với thì iii. 2. Phép toán Closing. Phép toán Closing của hình theo nhân tạo hình kí hiệu là: . Hình 1-12 10 Tương tự trên về mặt hình học ta cũng có định nghĩa tương đương: Tác dụng của phép toàn này là làm trơn biên, nối liền những mẫu rời nhau, lắp đầy các lỗ nhỏ. Trong Matlab hàm để xử dụng là imclose. Ngoài ra ta còn có một số tính chất cần lưu tâm sau đây: i. ii. với thì iii. 3. Nhận xét. i. Có thể so sánh cảm giác ràng nếu như Opening làm trơn biên ở phía trong thì Closing làm trơn biên ở phía ngoài. ii. Giữa hai phép toán Opening và Closing có hai mối tương quan: . Thật vậy, ta có: Phép toán . 1. Giới thiệu. Phép toán là một trong những phép toán cơ bản nhất của Morphology được phát triển bởi chính 2 cha đẻ của Morphology là Matheron (1975) và Serra (1982). Khi mới được tạo ra, nó chỉ có thể xử dụng cho ảnh nhị phân, sau đó được phát triển thêm cho ảnh xám tuy nhiên điều này phức tạp. Thật vậy, chỉ có duy nhất một lý thuyết (theoretical framework) được phát triển cho ảnh xám bởi Naegel Hình 1-13: phép toán Hình 1-14: phép toán Closing 11 et al. (2007). Hiện nay, thuật toán này đã được phát triển để dùng cho hình đa biến ngẫu nhiên (multivariate images) [3]. 2. Vấn đề chính. Công dụng của là tìm vị trí của một vài hình thù (shapes) trong tập hợp của những hình thù (set of shapes) mà ta còn có thể gọi nó là “template matching”. Ta tổng quát hóa cho và đặt và thì công thức trên trở thành: . Do và còn do sự tương quan giữa 2 phép toán Opening, Closing nên ta cũng có điều sau đây: . Dựa vào định nghĩa của phép toán trên, ta lưu { trong việc chọn như sau: . Đồng thời, để hiểu rõ hơn về thuật toán này, chúng ta có thể tạm hiểu các thức hoạt động của nó là “kiểm tra xem có giống đối tượng cần tìm có giống không và kiểm tra luôn có không giống đối tượng tìm kiếm hay nói cách khác kiểm tra xem có giống phần bên ngoài của đối tượng không”. Để dễ hiểu hơn ta nhìn hình minh họa phía dưới. Hình 1-16: đang tìm vị trí qua 2 phép toán Erosion và Dilation Hình 1-15: minh họa ý tưởng 12 Hàm sử dụng phép toán trong Matlab là , để biết thêm chi tiết gõ lệnh . Hình 1-17: ảnh mẫu và kết quả 13 Chương 2: Các Công Cụ Bổ Sung. Trích biên (Boundary extraction). Biên là phần phân ra rạch ròi giữa những phần tử thuộc đối tượng và không thuộc đối tượng. Theo đó, { tưởng trích biên dễ dàng có được là thu nhỏ đối tượng một chút, sau đó lấy những phần từ nào thuộc vào đối tượng nhưng không thuộc vào phần đối tượng đã thu nhỏ. Thuật toán trích biên được xác định như sau: , trong đó là kí hiệu của biên đối tượng cần xét. Tô miền (Region filling). Phép toán này dùng để tô một miền A bị chận bởi . Thuật toán này bắt đầu từ một điểm cho trước và này nằm trong . Phép toán xác định qua: Và thuật toán này dừng nếu thỏa: . Nhận xét: do ta chỉ tô miền A bị chận bởi nên số lượng pixel trong miền tô hữu hạn là số . Mặc khác, ta cũng có do . Vì thế, ta có điều sau: Vậy nên giả sử với thì , thì và do miền tô bị chận cho nên , thuật toán tới đây dừng. Hình 2-1: bên trái là đối tượng, bên phải đường màu trắng là biên Hình 2-2: cách thức hoạt động 14 Trích các thành phần liên thông. Trích thành phần liên thông Thuật toán được xác định như sau: Tương tự như cách thức hoạt động của thuật toán tô miền , thuật toán cũng dừng khi . Hiện để trích thành phần liên thông, chúng ta còn có thuật toán Label Segmentation. Để tiện so sánh, ta sẽ tìm hiểu về thuật toán Label Segmentation. [4] i. Bước 1: những điểm ảnh là nền đánh dấu là 0, ngược lại đánh dấu là . ii. Bước 2: lần lượt xét từng điểm ảnh thuộc đối tượng cần xét từ góc trên bên trái xuống góc dưới bên phải. Hình 2-3: tô miền Hình 2-4: thuật toán tô miềm 15 Nếu chưa được đánh dấu và những hàng xóm của nó cũng vậy thì dán nhãn mới. Nếu chưa được đánh dấu và một trong những hàng xóm của nó được đánh dấu thì dán nhãn của hàng xóm cho nó. Nếu được đánh dấu khác nhãn của 1 trong những hàng xóm của nó thì ghi nhận vào bảng equality table. i. Bước 3: cập nhật lại bảng equatity table, và lần chạy thứ hai, cập nhật lại nhãn. Mathematical morphology Connected component labeling  Sử dụng phép toán Dilation và tập hợp giao nhau  Dựa vào kích thước và hình dạng của những phần góc (hold) ta muốn lấy, cần khởi tạo nhân tạo ảnh.  Sử dụng kĩ thuật đánh dấu  Cần ít nhất 2 lần quét toàn bộ bức ảnh Hình 2-5: sau khi chạy xong bước 1 Hình 2-6: chạy xong bước 3 và lập lại thuật toán thêm lần nữa để ta có bảng bên phải 16 Tìm bao lồi (Convex hull). Miền được gọi là tập lồi nếu như có đường thẳng nối 2 điểm nằm trong . Bao lồi nhỏ nhất là tập lồi nhỏ nhất chứa . Ý tưởng cơ bản để tìm ra bao lồi nhỏ nhất là đếm những hàng xóm của từng điểm ảnh của đối tượng, điểm nào có số lượng hàng xóm bằng 3 thì đánh dấu lại, lặp lại cho đến khi không còn tìm ra điểm ảnh nào có số hàng xóm nhiều hơn 3. Từ đó, thuật toán tìm bao lồi như sau: với . Thuật toán dừng ở và bao lồi . Ta cần lưu { đều sau thì ta có . Thật vậy do . Sự tồn tại của bao lồi theo định nghĩa sau: Gọi là tập hợp con của không gian thực , được chứa trong ít nhất một tập lồi (ví dụ như cả không gian ). Giao của những tập lồi chứa đều là tập lồi chứa . Gọi giao của tất cả những tập chứa X là bao lồi nhỏ nhất của . Trong thực tế, khi dùng phép toán này vẫn chưa tìm ra được bao lồi nhỏ nhất, nhưng ta có thể lấy tối ưu bằng cách tìm cực ở phía trên/dưới, bên trái/phải rồi loại bỏ những phần nằm ngoài đường thẳng vuông góc từ trên xuống đi qua cực. Làm mỏng (Thinning). Phép toán này giúp làm gọn vật thể bởi bộ nhân tạo ảnh cho trước sử dụng nền tảng của phương pháp hit – or – miss đã trình bày trên. Định nghĩa phép toán : Nếu ta chọn nhân tạo hình có dạng : Hình 2-7: màu xám là đối tượng tìm, màu đỏ là lần tìm thứ nhất, xanh lá, xanh dương, đen lần lượt là các lần tìm thứ hai, ba tư. Hợp của tất cả ta có bao lồi nhỏ nhất. 17 Với là hình xoay (phiên bản xoay) một góc alpha nào đó của . Khi này phép làm mỏng được định nghĩa: Với thuộc khoảng [ 1,8] và thuộc . Khi thì sẽ quay lại giá trị 1. Phép toán sẽ lặp lại cho tới khi kết quả vế trái không còn thay đổi nữa giữa khi lần lượt dùng hết bộ ( đến ) kết quả không thay đổi. Trong bộ nhân tạo ảnh trên thì ta không ta không quan tâm đến những phần được đánh dấu “X”,trên matlab thì những phần “X” luôn bằng 0 ngay cả khi lấy phần bù. Vd: Nhận xét 1: phép toán luôn có tính dừng. Đặt Vậy : Do vậy , (*) Xét: Hình 2-8 18 với . Đặt : = . Vậy Tương tự với . Với = hữu hạn , nếu dấu bằng xảy ra thì phép toán sẽ dừng, ta chỉ xét trường hợp dấu bằng không xảy ra tức là dãy giảm ngặt và . Vậy khi thì Khi số pixel bằng 0 bài toán dừng. Kết Luận: bài toán luôn có tính dừng. Nhận xét 2: phép toán dừng lại khi A không thỏa tính chất sau : Trong số pixel là 8-kề của một pixel tồn tại 3 pixel là 8-kề lẫn nhau. Xét công thức : Giả sử sao cho . Suy ra: . Vậy: Giả sử sao: , , .... , Vậy: . Điều này có nghĩa phép toán dừng lại. Vậy để A phải không thỏa các điều chung của là điều kiện trình bày ở nhận xét 2. Trong bộ công cụ toolboxs của matlab hổ trợ phép hàm mỏng trong hàm . Với inf là giá trị mà tại điểm mà ảnh không thể làm mỏng hơn nữa . khi thì kết quả vẫn không thay đổi so với trạng thái làm mỏng tối đa (chỉ áp dụng với bộ nhân tạo ảnh trên). 19 Làm dày (Thickening). Trái ngược với phép toán , là phép toán làm dày đối tượng được định nghĩa qua biểu thức sau Trong đó là mặt nạ phù hợp cho . Và tương tự với phép , mặt nạ có thể là một chuỗi các mặt nạ Do đó: Ta thấy thực chất chỉ là phép với .Ta biểu diễn lại công thức trên như sau: Hình sau sẽ mô tả cách hoạt dộng của biểu thức trên: Lưu {: Nếu dựa vào công thức trên thì ta chỉ thu được kết quả là hình (d). Để có được hình (e) ta phải thực hiện thêm một bước hậu xử lý xóa những điểm không liên thông nữa. Sau đây là một hàm mô tả việc xóa những điểm không liên thông trong một hình : Hình 2-10: (a) lúc ban đầu A (b) phần bù của A (c) kết quả với phần bù của A (d) tiếp tục lấy phần bù của (c) (e) kết quả sau khi lấy thành phần liên thông Hình 2-9: (từ trái sang) ảnh ban đầu, g2, ginf 20 Thư viên matlab cho ta sẵn hàm để làm dày đối tượng trong ảnh. Sau đây là vd minh họa : Lấy khung (Skeletons). 1. Định nghĩa – công dụng. Xương là một biểu diễn dạng đường của một đối tượng, trong đó: i. Đường này có độ rộng 1 điểm ảnh. ii. Đường này đi qua phần giữa của đối tượng đó. Công dụng của phép toán lấy xương làm giảm kích thước ảnh. Những điều kiện nói trên không phải lúc nào cũng thực hiện được. Chúng ta có thể chỉ ra một tình huống như vậy trong hình dưới. Hình 2-11: hình ban đầu Hình 2-12: sau khi làm dày với n=15 21 Trong ví dụ đầu tiên ở hình (a), để sinh ra một đường thể hiện sự đơn giản của đối tượng, chúng ta không thể nào tạo ra một đường thẳng có độ dày của một điểm ảnh và nằm ở tâm của đối tượng. Trong hình (b), chúng ta lại không thể loại bỏ bất kz điểm ảnh nào của đối tượng của liên thông 8 có trong hình. 2. Công thức. Trong đó – được gọi là tập con xương (với ; A ảnh gốc; B là mặt nạ). là giá trị lớn nhất trước khi A trở thành tập rỗng qua phép “làm xói mòn “ (erosion) bởi mặt nạ B.Ta biểu diễn K dưới dạng toán học như sau: Trong matlab ta có hàm sau dùng để xương hóa một ảnh Trong đó là ảnh nhị phân gốc, là số lần thực hiện hàm Lưu {: nếu hàm sẽ được thực hiện lần sao cho kết quả của lần giống với kết quả lần . Ngoài ra, mặt nạ được sử dụng trong hàm trên là mặt nạ 3x3 ( ). 3. Tái xây dựng đối tượng bị xương hóa. Từ một ảnh bị xương hóa, chúng ta có thể tái xây dựng lại ảnh gốc bằng cách dung phép giãn hình (Dilation) lần với Công thức: Hình 2-13: 22 4. Ví dụ minh họa. Ta thấy trong hình 2-14, tập bị xương hóa đã không còn liên thông nữa. Đây là một nhược điểm khá lớn trong phép lấy xương trong Morphology. Tiếp theo là ví dụ minh họa cho ham trong matlab: Hình 2-14: cột từ 1 đến 4 mô tả việc tạo xương của A, cột 5 và 6 mô tả việc tái cấu trúc A từ xương trong lần. Hình 2-15: ảnh gốc A Hình 2-16: Phần bù của ảnh nhị phân 23 Nhận xét: Ta thấy hình 2-19 cho kết quả tốt hơn hình 2-17 vì ảnh đầu vào của hình 2-17 (hình 2-16) xuất hiện một số lỗ gây “nhiễu” nên ta phải làm thêm công đoạn làm đầy ảnh (fill holes) để cho ảnh đầu vào mượt hơn. Tuy nhiên với những ảnh bị nhiễu nặng như hình 2-20 thì kết quả của phép lấy xương sẽ không như mong đợi Hình 2-17: Ảnh sau khi được xương hóa Hình 2-18: Ảnh sau khi được làm đầy Hình 2-19: Ảnh sau khi được xương hóa Hình 2-20: 24 Do đó, việc khử nhiễu trước khi lấy xương đối tượng là cần thiết. 5. Một số phép lấy xương khác. i. 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 ii. Thuật toán làm mảnh của Ching Y Suen: 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). iii. Thuật toán làm mảnh của N.J.Naccache và R.Shinghal : ư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. iv. 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ỏ. v. 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. Cắt xén (Pruning). Đây là phương pháp dựa trên nền tảng của phương pháp làm mỏng và phương pháp lấy khung xương. Phương pháp giúp ta loại bỏ những thành phần dư thừa trong ảnh. Nhân tạo ảnh thường được sử dụng như hình bên dưới. Phương pháp này chi thành 4 bước. Hình 2-21: minh họa kết quả không mong đợi 25 + Đầu tiên ta sữ dụng phép làm mỏng đối với vật mẫu ban đầu là A, ta chỉ thực hiện phép làm mỏng qua n chu trình. + Ta thực hiện phép lấy hội của phép hiss-or-miss trong một chu trình : + Bước tiếp theo ta phình lần: + Kết quả cuối cùng là hội của và Phép toán qua lần lượt 4 bước trên và là kết quả của phép tỉa xén Trong các phép toán trên đã phải định trước được để sử dụng cho phép làm mỏng của phương trình . Thường thì trong các ứng dụng đều cho phép người dụng ước lượng giá trị của sao cho phù hợp. Trường hợp thì kết quả thu được sẽ là tập chỉ có 1 pixel. Ta minh họa bằng hình sau với : Hàm hổ trợ: với operation là ‘spur’ Hình 2-22 26 Ở đây người dùng xác định giá trị phù hợp là 3 theo phương pháp xác định trực quan. Hình 2-23: nguyên mẫu a Hình 2-24: g1 Hình 2-25: g2 Hình 2-26: gn 27 Chương 3: Phương Pháp Morphology Cho Ảnh Xám. Khái niệm về ảnh xám. Ta có một ảnh xám, ảnh xám này có thể được biểu diễn bởi một hàm không liên tục , với và biểu diễn cho mức xám tại pixel có vị trí trong ảnh , nếu giá trị mức xám là một số nguyên thì . Tương tự như trong ảnh nhị phân, ta cũng có khái niệm phần bù và phản xạ của một ảnh xám : : phần bù của : phản xạ của Phép Dilation cho ảnh xám. Những phép toán mà ta đã đề cập ở phần trên đều có thể áp dụng vào ảnh xám. Tất nhiên ngoại trừ . Ta nói được phình bởi nhân (mặt nạ) , kí hiệu được định nghĩa như sau : với và . Trong đó và là miền giá trị của và . Ta nên quan niệm là một hàm hơn là một tập hợp. Công thức trên còn có thể được định nghĩa theo một biến : Lưu {: miền giá trị tùy thuộc vào nhân tạo ảnh mà ta lựa chọn để sử dụng. Cụ thể có thể tùy thuộc vào vị trí của tâm của nhân tạo ảnh, nếu tâm của nhân tạo ảnh nằm giữa thì có thể tồn tại giá tri âm hoặc dương, giá trị của hàm sẽ nằm bên phải nếu s dương và ngược lại. Ta có thể mô tả phép toán như sau: xem kết quả xoay của nhân tạo ảnh như một mặt nạ, đặt tâm của mặt nạ lên tất cả các vị trí của ảnh lần lượt từ trên xuống dưới từ trái qua phải. Tại mỗi tọa độ trên ảnh, ta đi tìm tổng mức xám của và tại từng vị trí trong vùng mặt nạ được phủ lên, kế đến ta gán mức xám tại tọa độ ra ảnh mới là ảnh kết quả bằng max của tất cả các giá trị vừa tính. Vùng điều kiện , được mô tả khi ta phủ mặt nạ lên vùng tương tác , những tọa độ trong mặt nạ lọt ra vùng ngoài của ảnh xem như không có Hình 3-1: hình minh họa phép toán dilation 28 giá trị và không được tính. i. Nhận xét 1: nếu trong thành phần của nhân tạo ảnh b , mức xám (độ sáng ) càng lớn tức là chứa những giá trị dương thì sau khi qua phép phình ảnh thì ảnh sẽ càng sáng hơn và các phần tối sẽ càng bị thu nhỏ lại hoặc mất hẳn đi. ii. Nhận xét 2: là ảnh sáng lên và những vùng tối có kích thước nhỏ hơn nhân tạo ảnh bị xóa hoàn toàn. Trong Matlab xử dụng hàm với là nhân tạo ảnh dùng cho phép phình. Phép Erosion cho ảnh xám. Ta nói được phình bởi nhân (mặt nạ), kí hiệu được định nghĩa như sau: với và . và có vai trò tương tự như trong phép phình ảnh. Giống như phép phình ảnh ta cũng có thể mô tả công thức bởi hàm một biến: Hình 3-2: phình ảnh sử dụng nhân flat-top Hình 3-3: phình ảnh với nhân tạo hình 3x3 29 Mô tả phép toán: ta lấy nhân tạo ảnh làm mặt nạ , lần lượt phủ mặt nạ này lên các vị trí trên ảnh, tại mỗi vị trí trên ảnh , ta tính hiệu mức xám của và tại từng vị trí bị mặt nạ bao phủ sau đó tạo ra một ảnh mới gán giá trị tại vị trí tương ứng trong ảnh bằng của tất cả các giá trị nằm trong vùng xác định vừa tính. Và lưu ý, Vùng điều kiện , mô tả việc khi ta phủ mặt nạ lên vùng tương tác những tọa độ trong mặt nạ lọt ra vùng ngoài của ảnh xem như không có giá trị và không được tính. Ngược lại với phép phình , kết quả co ảnh sẽ cho ta được một bức ảnh tối hơn và những vàng sáng nhẹ hoặc ít sẽ bị loại bỏ hoàn toàn hoạc thu nhỏ lại tùy thuộc vào nhân tạo ảnh ma ta sữ dụng. Nếu kích thước của những vùng sáng nhỏ hơn kích thước của nhân tạo ảnh thì những vùng sau này sẽ biến mất hẳn trong quá co ảnh. Trong Matlab: tương tự với phép phình, ta dùng hàm Hình 3-4: co rút sử dụng nhân flat-top 30 Phép Opening và Closing cho ảnh xám. Cũng tương tự như trong ảnh nhị phân: Phép Opening được mô tả bằng công thức: Phép Closing : Tương quan: Phép Opening và Closing được giải thích theo hình học một cách rất đơn giản. Ta tưởng tượng hình có thể được biểu diễn trong không gian 3 chiều với vệ trục tọa độ , và chiều thứ 3 là mức xám tại pixel đó. Khi đó hình được biểu diễn giống như một mặt, mức độ lồi lõm tại một điểm phụ thuộc vào giá trị mức xám tại điểm đó. Và nhân tạo ảnh b cũng có cách biểu diễn tương tự. Có thể ví nhân tạo ảnh như một quả bóng lăn tròn bên trong hoặc bên ngoài vật thể. Đối với Opening có thể hiểu một cách đơn giản là nhân tạo ảnh b sẽ như một quả cầu lăn tròn bên dưới mặt bức ảnh . Những vùng có kích thước tương đối nhỏ và mức xám cao sẽ bị hạ mức xám xuống. Hình 3-5: co rút xử dụng nhân 3x3 Hình 3-6: minh họa phép toán Opening trên ảnh xám 31 Đối với Closing có thể hiểu một cách đơn giản là nhân tạo ảnh b sẽ như một quả cầu lăn tròn bên mặt ngoài bức ảnh . Những vùng có kích thước nhỏ hơn quả cầu và mức xám thấp được nâng mức xám lên. Hình 3-8: ảnh gốc Hình 3-9: ảnh bên trái sau Opening, bên phải sau Closing Nhận xét : ở bức ảnh sau Opening thì những vùng nào sáng (mức xám cao) một cách khác thường so với những vùng xung quanh sẽ được hạ mức xám xuống gần với những vùng khác. ở bức ảnh sau Closing những vùng nào tối (có mức xám thấp) một cách khác thường so với những vùng xung quanh khác thì sẽ được nâng mức xám lên gần bằng những vùng khác. Ứng dụng trong matlab: i. Ta viết thân hàm cho Opening: ii. Ta viết thân hàm cho Closing: Hình 3-7: minh họa phép toán Closing cho ảnh xám 32 Một số ứng dụng của morphology trên ảnh xám. 1.1. Làm trơn ảnh xám. Một ứng dụng khá đơn giản là ta có thể làm trơn mờ những ảnh bị nhiễu những hạt ảnh nhỏ khá chênh lệch về mức xám đối với những vùng xung quanh bằng cách sữ dụng hai phép Closing và Opening. Hình 3-10: ảnh gốc bị nhiễu Hình 3-11: sau khi Opening Hình 3-12: sau khi Closing Kết quả thu được còn tùy thuộc vào nhân tạo ảnh mà ta chọn . Cách chọn nhân tạo ảnh thích hợp là dựa trên trực quan. Ứng dụng trong matlab: 1.2. Phép biến đổi Gradient. Ta nói là biến đổi Gradient của ảnh , được định nghĩa như sau : Hình 3-13: làm trơn mờ ảnh 33 Kết quả sau phép biến đổi Gradient , nhận xét thấy do phép phình ảnh đã tác động làm cho những vùng sáng của bức ảnh được mở rộng . Với phép co rút ảnh đã làm cho những vùng tối được mở rộng và vùng sáng hẹp lại, Vì vậy tại những vị trí là biên của vật thể ( nơi có độ biến thiên đột ngột về mức xám ) thì khi đi trừ ảnh kết quả của phép phình ảnh cho kết quả của phép co rút sẽ làm nổi bật lên những đường biên của vật thể. Vì lẽ đó phép biến đổi Gradient còn có thể sử dụng để trích biên trong ảnh xám . Trong trường hợp này thì tùy chọn về nhân tạo ảnh. Nhân tạo ảnh có kích thước càng lớn và càng có nhiều pixel có mức xám cao thì đường biên càng rõ, càng đậm. Ứng dụng trong matlab: 1.3. Biến đổi Top – Hat. Ta gọi h là biến đổi Top – hat của một ảnh, người ta định nghĩa phép toán như sau: – Hình 3-14: ảnh ban đầu Hình 3-15: sau khi dùng 34 Nhận xét: sau khi ta phình ảnh th như ng phần co mư c xa m cao nổi lên trong ảnh se bi ma t hoặc mư c xa m bị giảm. Vì vậy khi qua phép trừ và phép Opening ta thu được những vùng nổi bật trong bức ảnh. Ứng dụng trong matlab: 1.4. Tách ảnh theo nội dung ảnh. Ta có một hình khi ta muốn tách bức ảnh ra nhiều vùng mà muốn giữ nguyên vẹn các đối tượng trong ảnh. Phương pháp sau đưa ra một hướng giải quyết cho việc này. Để tách thành hai vùng và giữ nguyên vẹn đối tượng trong ảnh ta dùng thuật giải sau : i. Bước 1: ta xem những hình tròn bên trái là những đối tượng nhiễu và khử đi bằng phép Closing, ta chọn nhân tạo ảnh có kích thước lớn hơn những hình tròn này để xóa chúng đi. Cách xác định nhân tạo ảnh cũng do trực quan. Hình 3-18: hình có nhiều hình tròn nhỏ Hình 3-17: sử dụng nhân tạo ảnh 3x3 với mức xám cao Hình 3-16: hình ban đầu 35 ii. Bước 2: Ta khoanh vùng các đối tượng hình tròn bên phải bằng phép Opening, ta chọn nhân tạo ảnh phải lớn hơn khoảng các các hình tròn sau cho khi kết quả thu được ta được một vùng đầy đã fill. Ta cũng xác định nhân tạo ảnh bằng trực quan. iii. Bước 3: sau khi đã phân biệt hóa thành 2 vùng rõ ràng ta tiến hành lấy biên của 2 vùng này bằng phép biến đổi Gradient. Lưu { khi ta dùng phép biến đổi Gradient ta phải chọn nhân tạo ảnh thật sáng và đủ lớn để nổi bật vùng biên. Hoặc chúng ta có thể dùng vài phép biến đổi đơn giản để làm nổi bật vùng biên lên như ví dụng trong hình sau: Hình 3-21 Hình 3-22 Hình 3-23 Kết quả thu được cuối cùng ta lấy những vùng sáng thay thế vào vị trí các pixel trong ảnh gốc và ta được 2 vùng riêng biệt như trên hình. 1.5. Phép đo độ hạt. Hình 3-19 Hình 3-20 36 Trong phép này ta có thể thống kê được các đối tượng có những kích cỡ khác nhau bằng phương pháp Opening ảnh gốc với một nhân tạo ảnh có kích thước tăng dần. Như ảnh bên, ta thấy có nhiều loại kích thước của các đối tượng tròn cụ thể là 3 kích cỡ. Ta sẽ tìm cách thống kê sự phân bổ của các đối tượng có các kích cỡ như nhau. Ta tiến hành Opening với nhân tạo ảnh có kích thước tăng dần. Ở phương pháp này ta nên quy nhân tạo ảnh về dạng hình vuông hoặc hình tròn có kích thước tăng dần. Hình 3-24 Hình 3-25: sử dụng hàm và nhân tạo ảnh 4x4 chứa các giá trị 1 Hình 3-26: sử dụng hàm và nhân tạo ảnh 5x5 chứa các giá trị 1 37 Ta thấy khi từ Opening ma trận 7x7 sang Opening ma trận 8x8 có sự thay đổi nhiều trong ảnh. Điều này có nghĩa là các hình tròn nhỏ có kích thước cỡ 7x7 Hình 3-27: sử dụng hàm và nhân tạo ảnh 6x6 chứa các giá trị 1 Hình 3-28: sử dụng hàm và nhân tạo ảnh 7x7 chứa các giá trị 1 Hình 3-29: sử dụng hàm và nhân tạo ảnh 8x8 chứa các giá trị 1 Hình 3-30: sử dụng hàm và nhân tạo ảnh 9x9 chứa các giá trị 1 38 và khi Opening với ma trận 8x8 thì phần lớn các đối tượng tròn này biến mất. Điều này cũng có nghĩa là khi ta biết sự biến thiên qua các bước thì ta sẽ nắm được sự phân bổ đối tượng trong ảnh. Để có được điều này ta tiến hành trừ ảnh qua các bước. Hình 3-31 – Hình 3-32: – Hình 3-33: – 39 Các hình trên cho thấy sự thay đổi các mật độ phân bố của các đối tượng trên ảnh. Công việc tiếp theo là ta số hóa những bức ảnh này. Tức là đếm được phân bổ các đối tượng. Ta thiết lập một hàm như histogram nhưng thay vì đếm mức độ xám ta đếm số đối tượng có các kích cở từ 1 đến n pixel. Ta chọn n=150. Tùy theo mức độ kích cỡ của các đối tượng mà ta xác định n. Ta có hàm Matlab sau: Hình 3-35: – Hình 3-34: – 40 Hình 3-36: Hình kế bên là kết quả thống kê sự phân bổ. Dựa vào hình ta thấy số lượng các đối tượng khoảng 7 đế 8 pixel là nhiều nhất. Và đối tượng lớn nhất thống kê được là 64 pixel. 41 Chương 4: Ứng Dụng Chạy Thử Để hiểu hơn về các phép toán trong phương pháp này, ta sẽ tìm hiểu ứng dụng “đếm những đối tượng là hình tròn trong một hình cho trước”, với hướng tiếp cận ban đầu chỉ mang tính { tưởng của nhóm làm đề tài. Nhóm đề tài xin liệt kê ra đây các bước thực hiện qua các bước như sau: 1. Tô đầy các thành phần liên thông khép kín. 2. Tách biên các thành phần liên thông. Hình 4-1: Hình ban đầu Hình 4-2: Chuyển sang nền đen Hình 4-3: Tô cách thành phần lien thông khép kín 42 3. Đánh dấu các thành phần liên thông. 4. Tìm trọng tâm vật thể bằng cách tính dựa trên tọa độ dòng và tọa đô cột. 5. So sánh các khoảng cách từ biên tới tâm. Theo khoảng cách xa nhất và gần nhất để xác định xem đó có phải là đối tượng tròn hay không. Cho một sai số để kiểm định. Thực nghiệm ban đầu cho ra sai số là 3,5. Hàm cdistance(): Khoảng cách Euclide giữa hai điểm trong không gian 2D. Hàm originfinding():Tìm trọng tâm của một đối tượng. Input tọa độ dòng của tất cả các dòng và tất cả các cột của đối tượng. Output xuất ra tọa độ dòng và cột của trọng tâm. Hàm countcircle():Hàm chính để đếm số đối tượng tròn. ô ầ ữ à ầ ê ô é í á ê à ầ ê ô Đá ấ à ầ ê ô ì ừ à ầ ê ô ã ượ á ấ ạ ộ ả ứ á ả Hình 4-4: Ảnh tách biên 43 á ừ ừ ể ê ê ế ọ â ậ ể á ả á à ả ượ ậ ở ê ì ò ẽ à ì ó ộ ệ ữ à ô ượ á ố ã Kết quả sau khi gõ ta có như sau 44 Tài Liệu Tham Khảo [1] [2] A Hit-or-Miss Transform for Multivariate Images - E. Aptoula, S. Lefèver *, C. Ronse - LSIIT UMR-7005 CNRS-ULP, Pôle API, Blvd Sébastien Brant, PO Box 10413, 67412 Illkirch Cedex, France [3] [4] Amin Allalou - Centre for Image Analysis Uppsala University – Ngoài ra còn ở: [1] EE368: Digital Image Processing Prof. Bernd Girod [2] Gonzalez and Woods, Digital Image Processing, Prentice Hall, New Jersey, 2002.

Các file đính kèm theo tài liệu này:

  • pdfXử lý ảnh bằng phương pháp Morphology.pdf