3. Cấu trúc luận văn
2.1. Các phép toán hình thái học
2.1.1. Phần tử cấu trúc
Một phần quan trọng của các thao tác giãn-nở ảnh là phần tử cấu trúc dùng được sử dụng để rê đi khắp ảnh. Phần tử cấu trúc hai chiều (phần tử cấu trúc phẳng) được xem là ma trận gồm các phần tử 0 và 1 (thường nhỏ hơn nhiều so với các hình ảnh được xử lý). Các điểm ảnh trung tâm của phần tử cấu trúc, được gọi là gốc (xác định các điểm ảnh sẽ được tác động tới trong quá trình thao tác ảnh) Các điểm ảnh trong phần tử cấu trúc có giá trị 1 được coi là lân cận và cũng sẽ được xem xét tới trong quá trình thực hiện phép co-giãn ảnh.[19]
Một số hình dáng của phần tử cấu trúc thường được sử dụng trên ảnh nhị phân: dạng đường theo chiều ngang và dọc, hình vuông, hình ellipse.[16]
Hình 2.1. Một số hình dáng của phần tử cấu trúc phẳng
Đối với ảnh xám, phần tử cấu trúc là không phẳng, tức là các phần tử cấu trúc sử dụng các giá trị 0 và 1 để xác định phạm vi của phần tử cấu trúc trong mặt phẳng x và mặt phẳng y và thêm giá trị độ cao để xác định chiều thứ ba. Cấu trúc phần tử không phẳng gồm có hai phần [11]:
❖ Phần thứ nhất: Một mảng hai chiều gồm có các giá trị 0 và 1, trong đó giá trị bằng 1 xác định hàng xóm của phần tử cấu trúc
22
0 1 0 1 1 1 0 1 0
❖ Phần thứ hai: Một mảng hai chiều có kích thước bằng với kích thước của mảng hai chiều ở phần thứ nhất nhưng chứa các giá trị thực của phần tử cấu trúc.
0 1.3 0
1.5 1 1.4
0 1.6 0
Khi một phép toán hình thái được thực hiện thì các gốc của phần tử cấu trúc thường dịch chuyển lần lượt trên các điểm ảnh. Và khi đó giá trị của các điểm ảnh vừa được quét qua sẽ được so sánh với nhau, các kết quả thu được sau khi so sánh phụ thuộc vào phép toán hình thái đang được sử dụng.
2.1.2. Các phép toán hình thái học trên ảnh nhị phân 2.1.2.1. Phép giãn nở trên ảnh nhị phân 2.1.2.1. Phép giãn nở trên ảnh nhị phân
Ta coi đối tượng ảnh là những điểm đen và nền là những điểm trắng. Trước hết, để bắt đầu ta hãy xem hình 2.2a (tập hợp các điểm ảnh đen tạo nên đối tượng ảnh hình vuông) và trong 2.2b với đối tượng ảnh cũng là hình vuông nhưng là hình vuông lớn hơn so với 2.2a một điểm ảnh về mọi phía, nghĩa là thay mọi lân cận trắng của các điểm ảnh trong 2.2a thành các điểm ảnh đen. Đối tượng trong 2.2c cũng được thao tác tương tự. Thao tác đó có thể coi như một phép giãn đơn giản, phép giãn một điểm ảnh về mọi phía. Việc giãn đó có thể được thực hiện cho đến khi toàn bộ ảnh được thay bằng các điểm ảnh đen. Tuy nhiên trong thực tế, đối tượng ảnh được xem như là một tập hợp toán học của các điểm ảnh đen, mỗi điểm ảnh đen được coi như là một điểm trong không gian hai chiều và nó được xác định bởi số hàng và số cột.
Hình 2.2. Hiệu quả của thao tác nhị phân đơn giản trên một ảnh nhỏ. (a)Ảnh ban đầu; (b) Ảnh giãn 1 điểm ảnh; (c) Ảnh giãn 2 điểm ảnh
23
Phép giãn nhị phân của tập hợp A bởi tập hợp B là tồn tại các điểm c thuộc z2 sao cho c là tổng của hai điểm tương ứng bất kỳ thuộc tập hợp A và tập hợp B.
Công thức:
𝑨 ⊕ 𝑩 = {𝒄|𝒄 = 𝒂 + 𝒃, 𝒂 ∈ 𝑨, 𝒃 ∈ 𝑩} (2.1) Trong đó:
- A: Là ma trận điểm ảnh của ảnh nhị phân. - B: Là phần tử cấu trúc.
Phép giãn nở (Dilation) ảnh sẽ cho ra một tập điểm ảnh c thuộc D(i), bạn hoàn toàn dễ dàng thấy rằng đây là một phép tổnggiữa A và B.A sẽ là tập con của D(i). Chú ý: Nhận xét này không hoàn toàn đúng với trường hợp phần tử cấu trúc B không có gốc (Origin) hay nói cách khác là gốc mang giá trị 0.
Hình 2.3. Dãn A bởi B
a-Tập A ban đầu; b- Tập Acộng phần tử (0,0);
c - Tập A cộng phần tử (0,1); d- Hợp của (b) và (c) kết quả của phép
dãn
Từ hình trên, ta nhận thấy rằng trong các ảnh có hình 1 dấu thập (×). Những phần tử được đánh dấu (×) hoặc đen, hoặc trắng được coi như gốc (Ogirin) của mỗi ảnh. Việc xác định vị trí của gốc cấu trúc là rất quan trọng, nó có thể quyết định hướng co, giãn của ảnh. Nếu gốc ở bên trái, thì ảnh có xu hướng co, giãn về bên phải, gốc ở bên phải thì co, giãn về trái và nếu gốc ở giữa, tất nhiên, ảnh sẽ giãn đều. Trong thí dụ trên do gốc của cấu trúc B ở bên trái nên ta thấy ảnh được dãn về bên phải.
24
Một ví dụ về phép giãn trên một hình ảnh nhị phân sử dụng phần tử cấu trúc dạng ma trận vuông 3x3 như sau:
Hình 2.4. Quá trình quét của phần tử cấu trúc trên hình ảnh nhị phân.
Ở ví dụ trên, ta xét các điểm ảnh màu trắng mang giá trị là 1 là các điểm thuộc đối tượng đang cần quan tâm trên ảnh, và phần màu đen mang giá trị 0 là phần nằm ngoài đối tượng. Khi thuật toán được thi hành thì phần tử cấu trúc sẽ lần lượt quét qua các điểm ảnh ngoài cùng (Đi theo đường kẻ màu đỏ trên hình vẽ) của đối tượng sau đó thay thế các điểm ảnh trên đối tượng này theo mẫu phần tử cấu trúc. Từ đó ta ứng dụng để nối các nét bi đứt gẫy của văn bản do quá trình xuống cấp, với khoảng cách lớn nhất của các nét bị đứt gãy tầm hai điểm ảnh.
Trong kỹ thuật này, một cửa sổ (N+1) x (N+1) được rê đi khắp ảnh và thực hiện đối sánh một pixel của ảnh với (N+1)2-1 điểm lân cận (không tính điểm gốc). Phép đối sánh ở đây thực hiện bởi phép tuyển logic. Thuật toán biến đổi tóm tắt như sau:
For all pixels I(x,y) do Begin
Tính For(x,y) // tính or logic If For(x,y) then ImaOut (x,y)1 Else ImaOut(x,y)ImaIn(x,y) End.
Ứng dụng:
25 +, Có thể khắc phục các nét đứt
+, Có thể hiệu chỉnh các lỗ hổng
2.1.2.2. Phép co trên ảnh nhị phân
Ta cũng xét tập hợp A và tập hợp B (Phần tử cấu trúc) trong , thì phép co nhị phân của tập hợp A bởi phần tử cấu trúc B được kí hiệu A B
Công thức
𝑨 ⊖ 𝑩 = {𝒄|(𝑩)𝒄 ⊆ 𝑨} (2.2) Trong đó:
• A: Ma trận điểm ảnh của ảnh nhị phân. • B: Là phần tử cấu trúc.
Phép co ảnh sẽ cho ra một tập điểm ảnh c thuộc A, nếu bạn di chuyển phần tử cấu trúc B theo C, thì B nằm trong đối tượng A. E(i) là một tập con của tập ảnh bị co A. Chú
26
ý: Nhận xét này không hoàn toàn đúng với trường hợp phần tử cấu trúc B không có gốc (Origin) hay nói cách khác là gốc mang giá trị 0.
Xét hình ảnh sau:
Hình 2.5. Phép co nhị phân trên hai đối tượng
Hình 2.5a bao gồm:
+, Tập hợp Acó hai cạnh bên kích thước là d.
+, Phần tử cấu trúc vuông Bkích thước d/4(Dấu chấm đen ở giữa là tâm điểm). +, Cuối cùng là kết quả của phép co nhị phân giữa tập hợp A và phần tử cấu trúc
B.
Phần có màu nhạt hơn là kết quả sau khi thực hiện co hình ảnh bởi phần tử cấu trúc B.
Hình 2.5b gồm những thành phần tương tự nhưng với phần tử cấu trúc B là hình chữ nhật và cho ta một kết quả khác.
Vậy phép co nhị phân của ảnh Avới phần tử cấu trúc Blà quỹ tích các điểm được tạo ra bởi tâm điểm của phần tử cấu trúc B khi tịnh tiến trên hình ảnh A.
Trong kỹ thuật này, một cửa sổ (N+1) x (N+1) được rê đi khắp ảnh và thực hiện so sánh một pixel của ảnh với (N+1)2-1 điểm lân cận. Việc so sánh ở đây thực hiện bởi phép hội lôgíc. Thuật toán biến đổi được tóm tắt như sau:
For all pixels I(x,y) do Begin
27
Tính FAND(x,y) {Tính AND lôgíc} - if FAND(x,y) then ImaOut(x,y) <--1 else ImaOut(x,y) <- ImaIn(x,y) End
Ứng dụng:
+, Một ứng dụng quan trọng của phép co nhị phân là dùng để loại trừ các chi tiết không cần thiết trên hình ảnh.
Ví dụ, trên một hình ảnh, ta có các đối tượng có cỡ tương ứng 1,4,6 và 11 điểm ảnh. Bây giờ nếu muốn loại trừ các đối tượng nhỏ không cần thiết trên ảnh, chỉ để lại các đối tượng có kích thước lớn, như trong hình 2.6a đối tượng ta cần giữ lại là những đối tượng có kích thước 11 điểm ảnh. Ta sẽ sử dụng phần tử cấu trúc có kích thước 10x10 điểm ảnh để thực hiện phép co nhị phân (Erosion). Kết quả sẽ chỉ còn lại 3 đối tượng có kích thước 1 điểm ảnh (Hình 2.6b). Sau đó để các đối tượng trở lại kích thước ban đầu ta sử dụng phép giãn nhị phân (Dilation) với phần tử cấu trúc có kích cỡ tương ứng (Hình 2.6c).
Hình 2.6. Quá trình lọc đối tượng sử dụng phép co nhị phân và phép giãn nhị phân
28
Hình 2.7. Ứng dụng của phép co ảnh dưới dạng số nhị phân
Trên ví dụ của quá trình lọc: a) Hình ảnh ban đầu; b) Hình ảnh quá trình co nhị phân trên đối tượng với phần tử cấu trúc 10x10, phần tử được tô đậm màu sẽ có giá trị 1 sau quá trình co nhị phân; c) Phóng to đối tượng và giá trị của đối tượng sau quá trình co nhị phân với phần tử cấu trúc 10x10.
+, Erosion có thể tách các đối tượng nối nhau
+, Có thể làm mỏng đối tượng
2.1.2.3. Phép mở ảnh (Opening) và phépđóng ảnh (Closing)
Phép mở ảnh và phép đóng ảnh là hai phép toán được mở rộng từ hai phép toán hình thái cơ bản là phép co nhị phân và phép giãn nhị phân. Phép mở ảnh thường làm trơn biên của đối tượng trong ảnh, như loại bỏ những phần nhô ra có kích thước nhỏ. Phép đóng ảnh cũng tương tự làm trơn biên của đối tượng trong ảnh nhưng ngược với phép mở. Phép toán này thường làm hợp nhất các đoạn gẫy hẹp, loại bỏ các lỗ hổng nhỏ và làm đầy các khe hở trong chu tuyến.
29
Để thực hiện phép đóng ảnh ta phải trải qua hai giai đoạn là co ảnh và giãn ảnh. Đầu tiên sử dụng phép co, sau đó thực hiện phép dãn ảnh với cùng phần tử cấu trúc. Với tập hợp A là đối tượng trong hình ảnh và B là phần tử cấu trúc, (O) là ký hiệu của phép mở ảnh giữa tập hợp A và phần tử cấu trúc B, phép mở ảnh được xác định bởi công thức:
A ∘ B = (A ⊖ B) ⊕ B (2.3)
Hình 2.8. Quá trình thực hiện phép mở ảnh.
Trên phương diện ý nghĩa hình học, giả sử ta có phần tử cấu trúc B dạng một hình tròn, khi đó biên của tập hợp 𝐴 ∘ 𝐵 gồm quỹ tích các điểm thuộc biên của phần tử cấu trúc B, khi B tịnh tiến trên đường biên tập hợp A, và cách biên của tập hợp A khoảng cách xa nhất.[4] Tất cả các hướng góc ngoài đều được làm trơn, trong khi những góc hướng vào trong đều không bị ảnh hưởng. Những chỗ nhọn nhỏ thừa nhô ra sẽ bị lược bỏ.
Phép mở ảnh có thể làm trơn biên của đối tượng loại bỏ những điểm nhô thừa, có kích thước nhỏ không cần thiết. Vì ban đầu phép co nhị phân sẽ lược bỏ các điểm ảnh bên gần phía ngoài bề mặt đối tượng, chỉ để lại chỉ giữ lại các phần tử cơ bản cấu hình lên hình dạng của đối tượng sau đó thực hiện phép dãn để lấy lại kích thước ban đầu của đối tượng.
Hình 2.9a trình bày ảnh có những phần tiếp xúc nhau. Sau thao tác mở đơn giản đối tượng ảnh đã dễ nhận hơn so với ban đầu.
Hình 2.9c cũng minh hoạ một đối tượng khác, hoàn toàn tương tự, sử dụng phép mở ảnh và nhiễu ở giữa số 3 đã biến mất. Bước co trong phép mở ảnh sẽ xoá những
30
điểm ảnh cô lập được coi như những biên, và phép dãn ảnh tiếp sau sẽ khôi phục lại các điểm biên và loại nhiễu. Việc xử lý này dường như chỉ thành công với những nhiễu đen còn những nhiễu trắng thì không.
Hình 2.9. Sử dụng phép toán mở a. Một ảnh có nhiều vật thể được liên kết
b. Các vật thể được cách ly bởi phép mở với cấu trúc đơn giản c. Một ảnh có nhiễu
d. Ảnh nhiễu sau khi sử dụng phép mở, các điểm nhiễu đen đã biến mất
Phép đóng ảnh
Tương tự như phép mở ảnh, nhưng quá trình thực hiện phép đóng ảnh có xu hướng ngược lại, với mục đích, làm đầy những chỗ thiếu hụt của đối tượng trên ảnh dựa vào các phần tử cơ bản ban đầu.
Với tập hợp A là đối tượng trong ảnh, B là phần tử cấu trúc. là ký hiệu phép đóng ảnh. Khi đó phép đóng ảnh của tập hợp Abởi Phần tử cấu trúc B, kí hiệu là (A●B), xác định bởi:
A ∙ B = (A ⊕ B) ⊖ B (2.4) Cho một hình ảnh nhị phân, với đối tượng trong ảnh có những khu vực bị đứt gãy, không liền mạch. Ðể khắc phục hiện tượng này ta áp dụng phép đóng ảnh, với A là đối tượng ban đầu, B là phần tử cấu trúc có kích thước 3x3. Khi áp dụng phép đóng ảnh, đầu tiên đối tượng này sẽ được mở rộng bằng phép giãn nhị phân theo phần tử cấu trúc
B. Lúc này những khu vực thiếu hụt sẽ được bù lên, và khu vực đứt sẽ được nối lại. Sau đó áp dụng phép co nhị phân để đưa đối tượng về trạng thái ban đầu.[4]
31
Hình 2.10. Quá trình thực hiện phép đóng ảnh.
Nếu như phép mở ảnh tạo ra những khoảng trống nhỏ trong điểm ảnh thì trái lại, phép đóng ảnh sẽ lấp đầy những chỗ hổng đó. Hình 2.11b trình bày trình bày một thao tác đóng ảnh áp dụng cho hình 2.9d, là kết quả của việc xóa nhiễu. Phép đóng ảnh quả là có tác dụng trong việc xoá những nhiễu trắng trong đối tượng ảnh mà phép mở ảnh trước đây chưa thành công.
Hình 2.11c và 2.11d trình bày một ứng dụng của phép co ảnh nhằm nối lại những nét gãy. Ảnh ban đầu 2.11c là một bản mạch, sau khi sử dụng phép co các điểm gãy đã được liên kết nhau ở một số điểm ảnh. Phép đóng ảnh này đã gắn được nhiều điểm ảnh gãy, nhưng không phải là tất cả.Điều quan trọng nhận thấy rằng khi sử dụngnhững ảnh thực, thật hiếm khi xử lý ảnh một cách hoàn chỉnh mà chỉ cần một kĩ thuật, phải sử dụng nhiều phần tử cấu trúc mà có khi có những kĩ thuật nằm ngoài Hình thái học (phép toán hình thái)
Hình 2.11. Sử dụng phép toán đóng a. Ảnh nhiễu sau khi sử dụng phép mở ở hình 2.9d
32
b. Kết quả đóng sử dụng cấu trúc đơn giản
c. Ảnh của một bảng mạch được phân ngưỡng và có các vết đứt d. Ảnh tương tự sau khi đóng nhưng những nét đứt đã được nối liền
Trước tiên, quan tâm đến những ứng dụng làm trơn và vì mục đích này ra sẽ sử dụng để làm thí dụ. Trong ảnh 2.12a đã được thực hiện cả 2 phép đóng và mở và nếu thực hiện tiếp phép đóng sẽ không gây thêm bất kì một thay đổi nào. Tuy nhiên viền của đối tượng ảnh vẫn còn gai và vẫn có những lỗ hổng trắng bên trongcủa đối tượng. Sử dụng phép mở với độ sâu 2, tức là sau khi co 2 lần thì dãn 2 lần, khi đó nó sẽ cho ta kết quả là hình 2.12a. Chú ý rằng những lỗ trước đây đã được đóng và viềnbây giờ có vẻ như “trơn” hơn so với trước. Phép mở 3 chiều, tương tự chỉ gây ra thay đổi rất nhỏ so với 2 chiều (2.12b), chỉ có thêm một điểm ảnh bên ngoài được xoá. Nhìn chung, sự thay đổi không đáng kể.
Hình 2.12. Phép đóng với độ sâu lớn
a. Từ 2.11b, sử dụng phép đóng với độ sâu 2
b. Phép đóng với độ sâu 3 c. Một vùng bàn cờ
d. Vùng bàn cờ được phân ngưỡng thể hiện những điểm bất quy tắc và một vài lỗ.
e. Sau khi thực hiện phép đóng với độ sâu 1 f. Sau khi thực hiện phép đóng với độ sâu 2
2.1.2.4. Phép biến đổi trúng hay trượt (Hit-or- miss transformation)
Phép biến đổi trúng hay trượt là một phép toán hình thái được thiết kế để định vị