XỬ LÝ ẢNH DỰA TRÊN
MORPHOLOGICAL
NGÔ QUỐC VIỆT
TPHCM-2014
Giới thiệu Binary Morphology
Một số khái niệm về tập hợp
Các phép toán cơ bản
1.
2.
3.
Phát triển và bào mòn (Dilation and erosion)
Mở và đóng (Opening and closing)
Biến đổi trúng hay trật (Hit-or-miss transformation)
Ứng dụng morphology vào các bài toán xử lý ảnh
4.
Dò biên
Trích các thành phần liên thông (Extraction of Connected
Components)
Tìm bao lồi (Convex Hull)
Tô vùng (Region Filling)
Làm mảnh (Thinning)
Làm dầy (Thickening)
Lọc xương/Lấy cạnh trung tâm (Skeleton)
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt
2
Trang bị kiến thức về cách tiếp cận cấu trúc (tập
hợp) vào giải quyết các bài toán xử lý ảnh đã được
giải quyết bằng các biến đổi giải tích trước đó, và
một số xử lý khác.
Trang bị các kỹ năng sử dụng OpenCV để thực hiện
các xử lý dựa trên morphology
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt
3
Phương pháp phi tuyến
Dựa trên lý thuyết tập hợp Minkowski
Là một phần của lý thuyết finite lattices
Dùng để phân tích ảnh dựa trên hình dáng
Phương pháp hiệu quả, nhưng chưa được sử
dụng nhiều.
Morphology nhị phân là morphology trên ảnh
đen trắng cho những bài toán xử lý ảnh cơ
bản
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt
4
Cải tiến ảnh (image
enhancement)
Phân đoạn ảnh (image
segmentation)
Phục hồi ảnh (image
restoration)
Dò cạnh
Phân tích Texture (texture
analysis)
Phân tích particle
Phát sinh đặc trưng
(feature generation)
Trích
xương
(Skeletonization)
Phân tích hình dáng
(shape analysis)
Nén
ảnh
(Image
compression)
Phân tích thành phần
(Component analysis)
Curve filling
Làm mỏng tổng quát
(General thinning)
Tìm đặc trưng (Feature
detection)
Giảm
nhiễu
(Noise
reduction)
Lọc
không-thời gian
(Space-time filtering)
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt
5
Ảnh là một ánh xạ I từ tập SP các tọa độ pixel đến tập G các giá
trị sao cho mỗi vector tọa độ p = (r,c) trong SP, có một vector
I(p) thuộc G. SP được gọi là image plane.
Ảnh nhị phân có hai giá trị. Nghĩa là, G = {vfg , vbg}, với vfg là giá
trị foreground và vbg là giá trị background.
Thông thường, foreground vfg = 0, và background vbg = –.
Một số khả năng kháclà {vfg , vbg} = {0,}, {0,1}, {1,0}, {0,255}, và
{255,0}.
Bài giảng sử dụng {vfg , vbg} = {255, 0} mà không làm mất tính
tổng quát.
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt
6
Foreground của ảnh nhị phân
FG I I p , p r, c SP I( p) vfg ,
Tập các vị trí p, với I(p) = vfg. Tương tự background là
BG I I p , p r, c SP I(p) vbg .
Chú ý
FG I BG I I
và
FG I BG I
BG I FG I
và
FG I BG I .
và
C
C
Background là bù của foreground và ngược lại.
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt
7
A ={(3,1), (4,1),(3,2),(4,2),(3,3)}.
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt
8
FG is gray ;
BG is white
Example SEs
Structuring element là ảnh nhỏ – được dùng
làm cửa sổ dịch chuyển – giá của SE thể hiện
các pixel lân cận
SE có thể có hình dáng và kích thước bất kỳ,
hoặc liên thông (nhiều hơn 1 piece, có lỗ). Dấu
tròn trên hình thể hiện gốc của SE. Gốc này có
thể đặt bất kỳ đâu trong SE.
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt
9
Cho ảnh I và Z là SE.
Z+p nghĩa là Z được dịch
chuyển sao cho gốc
trùng với vị trí p trong
SP.
Z+p là translate của Z
đến p trong SP.
Tập các vị trí trong ảnh
ký hiệu bởi Z+p được
gọi là Z-neighborhood
của p trong I. Ký hiệu là
N{I,Z}(p).
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt
10
Cho Z là SE và S lưới vuông các vị trí pixlel chứa
tập {(r,c), (-r,-c) | (r,c)supp(Z)}. Thì
Z (a, b) Z (a,b), (a, b) sup p( Z )
Là phản chiếu của structuring element.
Z là Z quay 180º quanh gốc của nó.
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt
11
Phép toán Dilation đối tượng A theo đối tượng Z (thường là
SE) được định nghĩa bởi
D( A, Z ) A Z a z | a A, z B
Đối tượng A tịnh tiến theo từng vectơ (vị trí) trong Z.
Kết quả sau khi tịnh tiến tạo ra các đối tượng A1,A2,…. An
(n là số phần tử trong Z). D(A,Z) là hợp các Ai.
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt
12
Một số định nghĩa khác về dilation.
I Z p SP
I Z
Tập tất cả vị trí pixel p, trong
ảnh mà phần giao của Ž+p với I
khác rỗng.
( Z p) .
Hội những copies của SE, mỗi bản copy
là dịch chuyển đến vị trí pixel foreground
trong ảnh.
(I p) .
Hội những copies của ảnh, mỗi bản là dịch
chuyển đến vị trí pixel foreground của SE.
p supp I
I Z
( Z p) I .
p supp Z
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt
13
A = {(2,1),(3,1),(4,1),(3,2)}
Z = {(0,0),(0,1)}
AZ
A1 = {(2,1),(3,1),(4,1),(3,2)}
A1 = A tịnh tiến bởi
vector (0,0) của Z
A2 = A tịnh tiến bởi
vector (0,1) của Z
A2 = {(2,2),(3,2),(4,2),(3,3)}
D(A,B) = A1 U A2 = {(2,1),(3,1),(4,1),(3,2), (2,2),(4,2),(3,3)}
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt
14
Sử dụng SE 3x3 – Z8 có dạng cho phép mở rộng đều về cả 8
hướng.
1 1 1
Kết quả dilate trên ảnh mẫu như sau
1 1 1
1 1 1
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt
15
SE được áp lên mọi pixel của ảnh. Tâm của SE được kết hợp với
từng pixel, toàn bộ SE được áp cho pixel đang xét theo cách
thay thế pixel đó bằng SE.
Khái niệp “áp” là hoạt động “công logic nhị phân giữa các giá
trị 0, 1”.
SE
Đã giãn
Ảnh nguồn
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt
16
Tham khảo mã nguồn openCV_Dilate
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt
17
Phép toán Erosion đối tượng A theo đối tượng Z được định
nghĩa bởi:
E ( A, Z ) {x | x z A, z Z}
Với vector a bất kỳ , khi tịnh tiến a theo từng vectơ trong Z.
Kết quả sau khi tịnh tiến a là các vectơ mới: a1,a2,..an (n là số
lượng phần tử trong Z).
Nếu tất cả các vector a1,a2,..an đều thuộc A a sẽ thuộc tập
E(A,Z).
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt
18
Một số định nghĩa khác
I Z p Sp Z p I
I Z
Z p .
p supp I
I Z
I p.
p supp Z
Tập tất cả các pixel p,
trong ảnh sao cho Z+p
chứa trong I.
Phần giao của các copies của reflected.
SE, mỗi cái dịch chuyển đến vị trí pixel
thuộc foreground của ảnh.
Phần giao của các copies của mỗi bản
sao - là dịch chuyển đến vị trí pixel
thuộc goreground của refl. SE.
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt
19
A = {(1,1),(2,1),(3,1),(4,1),(1,2),(3,2),(1,3),(2,3)}
E(A,Z) = {(1,1),(3,1),(2,2)}
Z= {(1,0),(0,1)}
Lấy Vector (1,1) tịnh tiến theo các vector trong Z
a1 = (1,1) + (1,0) = (2,1) thuộc A
a2 = (1,1) + (0,1) = (1,2) thuộc A
(1,1) thuộc E(A,B).
Lấy Vecto (3,1) tịnh tiến theo các vector trong Z
a1 = (3,1) + (1,0) = (4,1) thuộc A
a2 = (3,1) + (0,1) = (3,2) thuộc A
(3,1) thuộc E(A,Z).
Lấy Vecto (2,2) tịnh tiến theo các vector trong Z
a1 = (2,2) + (1,0) = (3,2) thuộc A
a2 = (2,2) + (0,1) = (2,3) thuộc A
(2,2) thuộc E(A,Z).
Các vectơ khác khi tịnh tiến sẽ có vectơ không thuộc
20
A. Không thuộc E(A,Z)
Xét pixel của ảnh, nếu mọi phần tử của SE trùng với phần ảnh
tương ứng, thì logical disjunction (OR operation) được thực
hiện giữa tâm của SE với pixel tương ứng để tạo ra pixel trong
ảnh output .
SE
Ảnh nguồn
Eroded
Các đối tượng nhỏ hơn SE sẽ bị xóa, các đối tượng nối với nhau
bởi đường mảnh sẽ tách rời và kích cỡ đối tượng sẽ giảm
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt
21
Tham khảo mã nguồn openCV_Erode
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt
22
Dilate: nhằm tăng kích thước, bịt các lỗ hổng
Có tính giao hoán
A( A, B) A B B A D( B, A)
Có tính kết hợp
( A B) C A ( B C )
Erode : co kích thước, mở rộng khoảng hở
Không có tính giao hoán
Không có tính kết hợp
Dilate và erode có tính đối ngẫu
Có thể cài đặt erode từ dilate và ngược lại
c
I Z I Z
c
và
I
c
c
Z I Z .
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt
23
Hai phép toán phát triển và bào mòn thường được
sử dụng cùng nhau. Từ nhu cầu đó, người ta kết hợp
2 phép toán này để tạo nên một số phép toán có
mức độ quan trọng cao hơn: phép mở và phép đóng.
Phép mở của tập A bởi phần tử cấu trúc B được định
nghĩa như sau:
Phép đóng của tập A bởi phần tử cấu trúc B :
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt
24
Opening
Closing
Bài giảng Xử lý ảnh - TS. Ngô Quốc Việt
25