Bài toán xóa đối tƣợng nhỏ trong ảnh

Một phần của tài liệu Luận văn thạc sĩ công nghệ thông tin Nghiên cứu một số kỹ thuật xóa đối tượng nhỏ trong ảnh (Trang 35 - 74)

Với bài toán xoá đối tượng nhỏ trong ảnh, ta cài đặt chương trình thử nghiệm lọc trung vị.

Đầu vào: Một ảnh nhiễu.

Đầu ra: Ảnh đã khử nhiễu (bằng phương pháp lọc trung vị).

Hoạt động của chƣơng trình:

Bước 1: Đưa một ảnh có định dạng JPG (hoặc PNG, BMP, GIF, JPEG) (bị ảnh hưởng của nhiễu).

Bước 2: Chương trình quét cửa sổ lọc lần lượt lên các thành phần của ảnh đầu vào; điền các giá trị được quét vào cửa sổ lọc.

Bước 3: Xử lý bằng cách thao tác trên các thành phần của cửa sổ lọc. Bước 4: Sắp xếp theo thứ tự các thành phần trong cửa sổ lọc (lọc trung vị). Bước 5: Lưu lại thành phần trung vị, gán cho ảnh đầu ra (lọc trung vị). Buớc 6: Hiển thị ảnh kết quả

a) Trước khi lấp lỗ hổng b) Sau khi lấp lỗ hổng

với kích thước là 10 c) Sau khi lấp lỗ hổng với kích thước là 20 Hình 1.13: Kết quả của phép lấp lỗ hổng[7]

a) Trước khi xoá nhiễu b) Sau khi xoá nhiễu với kích thước là 10

c) Sau khi xoá nhiễu với kích thước là 50 Hình 1.14: Kết quả của phép khử nhiễu[7]

Chƣơng 2

PHÁT HIỆN VÀ XÓA ĐỐI TƢỢNG NHỎ TRONG ẢNH 2.1. Phát hiện đối tƣợng nhỏ trong ảnh:[7]

2.1.1. Một số khái niệm cơ bản: Điểm ảnh và ảnh:

Điểm ảnh có thể xem là cường độ sáng, hay một kiểu hoặc một nhóm kiểu dấu hiệu nào đó.

Ảnh là một ma trận các điểm ảnh: Im  n (m- số hàng, n- số cột). Các điểm 4 và 8-láng giềng

Giả sử (i,j) là một điểm ảnh, các điểm 4-láng giềng là các điểm trực tiếp bên trên, dưới, trái, phải của điểm (i,j):

N4= {(i -1,j), (i +1,j), (i, j -1), (i, j +1)}, và những điểm 8-láng giềng (hình 2) gồm:

N8 = N4  {(i -1,j -1), (i +1,j -1), (i -1,j +1), (i +1,j +1)}.

Ví dụ trong hình 2.1 các điểm 0, 2, 4, 6 là các 4-láng giềng của điểm P, còn các điểm 0, 1, 2, 3, 4, 5, 6, 7 là các 8 láng giềng của P.

Điểm biên:

Cho p là một điểm ảnh, khi đó: p là điểm biên nếu tồn tại q là 8-láng giềng của p sao cho cường độ sáng của q khác với cường độ sáng của p. Nói cách khác, nếu p là điểm ảnh quan tâm thì q là điểm có thuộc tính nền và ngược lại.

Chu tuyến:

Chu tuyến của một đối tượng ảnh là tập các điểm biên của đối tượng p0,p1,,pN sao cho pi-1 và pi+1 là các 8-láng giềng của pi và p0= pN. Chẳng hạn trong hình 2.2 biểu diễn chu tuyến của ảnh.

Hình 2.1: Ma trận 8 láng giềng kề nhau[7]

3 2 1

4 P 0

p z

x

Hình 2.2: Ví dụ về chu tuyến của ảnh[7]

Độ dài của chu tuyến: (adsbygoogle = window.adsbygoogle || []).push({});

Độ dài của chu tuyến với các hướng như hình 2 được tính theo công thức sau: PERIMETER = EVENPERIM+ODDPERIM* 2.

ở đây EVENPERIM - số lượng vectơ theo hướng chẵn ODDPERIM - số lượng vectơ theo hướng lẻ.

Chu tuyến láng giềng:

Hai chu tuyến C= <P1P2..Pn> và C1= <Q1Q2..Qm> được gọi là láng giềng của nhau (Hình 4.a) nếu và chỉ nếu:

- Pi  Qj i,j.

- i j sao cho Pi và Qj là 8 láng giềng của nhau.

- Các điểm Pi là ảnh thì Qj là nền và ngược lại.

Điểm trong và điểm ngoài chu tuyến:

C= <P1P2..Pn> là một chu tuyến và P là một điểm ảnh khi đó theo điều kiện Jordan ta có:

- P được gọi là điểm trong chu tuyến C nếu nửa đường thẳng xuất phát từ P sẽ cắt chu tuyến C tại số lẻ lần.

- P được gọi là điểm ngoài chu tuyến C nếu không phải là điểm trong.

Nhiễu (Noise):

Cho trước chu tuyến C và ngưỡng  > 0, khi đó tập hợp các điểm trong chu tuyến C sẽ được gọi là nhiễu nếu thoả mãn hai điều kiện sau:

- Có ít nhất một điểm là điểm ảnh quan tâm sao cho điểm này là 8-láng giềng của một điểm nào đó của chu tuyến C.

- Độ dài của chu tuyến C nhỏ hơn ngưỡng .

Lỗ hổng (Hole):

Cho trước chu tuyến C và ngưỡng  > 0, khi đó tập hợp các điểm trong chu tuyến C sẽ được gọi là lỗ hổng nếu thoả mãn hai điều kiện sau:

- Có ít nhất một điểm có cùng giá trị với thuộc tính nền sao cho điểm này là 8-láng giềng của điểm nào đó của chu tuyến C.

- Độ dài của chu tuyến C nhỏ hơn ngưỡng .

Trong trường hợp này C được gọi là chu tuyến xác định lỗ hổng.

2.1.2 Chu tuyến của đối tƣợng ảnh:

Chu tuyến của một đối tượng ảnh là dãy các điểm của đối tượng ảnh P1,...,Pn sao cho Pi và Pi+1 là các 8-láng giềng của nhau (i=1,...,n-1) và P1 là 8- láng giềng của Pn, ∀i ∃Q không thuộc đối tượng ảnh và Q là 4-láng giềng của Pi (hay nói cách khác ∀i thì Pi là biên 4). Kí hiệu <P1P2..Pn>.

Tổng các khoảng cách giữa hai điểm kế tiếp của chu tuyến là độ dài của chu tuyến và kí hiệu Len(C) và hướng PiPi+1 là hướng chẳn nếu Pi và Pi+1 là các 4 – láng giềng (trường hợp còn lại thì PiPi+1 là hướng lẻ).

Hình 2.3 dưới đây biểu diễn chu tuyến của ảnh, trong đó, P là điểm khởi đầu chu tuyến.

Hình 2.3: Ví dụ về chu tuyến của đối tượng ảnh[7]

Định nghĩa [Chu tuyến đối ngẫu]:

Hai chu tuyến C= <P1P2..Pn> và C⊥

= <Q1Q2..Qm> được gọi là đối ngẫu của nhau nếu và chỉ nếu ∀i ∃j sao cho:

(i) Pi và Qj là 4-láng giềng của nhau.

Định nghĩa [Chu tuyến ngoài]: (adsbygoogle = window.adsbygoogle || []).push({});

Chu tuyến C được gọi là chu tuyến ngoài nếu và chỉ nếu:

(i) Chu tuyến đối ngẫu C⊥ là chu tuyến của các điểm nền (ii) Độ dài của C nhỏ hơn độ dài C⊥

Định nghĩa [Chu tuyến trong]:

Chu tuyến C được gọi là chu tuyến trong nếu và chỉ nếu:

(i) Chu tuyến đối ngẫu C⊥ là chu tuyến của các điểm nền (ii) Độ dài của C lớn hơn độ dài C⊥

Hình 2.4: Chu tuyến ngoài[7]

Hình 2.5: Chu tuyến trong[7]

Định nghĩa [Điểm trong và điểm ngoài chu tuyến]:

Giả sử C= <P1P2.. Pn> là chu tuyến của một đối tượng ảnh và P là một điểm ảnh. Khi đó:

(i) Nếu nửa đường thẳng xuất phát từ P sẽ cắt chu tuyến C tại số lẻ lần, thì P được gọi là điểm trong chu tuyến C và kí hiệu in(P,C).

(ii) Nếu P∉C và P không phải là điểm trong của C, thì P được gọi là điểm ngoài chu tuyến C và kí hiệu out (P,C).

Bổ đề [Chu tuyến đối ngẫu]:

Giả sử E ⊆ ℑ là một đối tượng ảnh và C= < P1P2..Pn> là chu tuyến của E, C⊥

=<Q1Q2..Qm> 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)

Bổ đề [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) (ii) Nếu C là chu tuyến ngoài thì ∀x ∈ E sao cho x∉C, ta có in(x,C)

Định lý [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.

2.1.3 Thuật toán dò biên:[5]

Biên là vấn đề quan trọng trong trích chọn đặc điểm nhằm tiến tới hiểu ảnh. Cho đến nay chưa có định nghĩa chính xác về biên, trong mỗi ứng dụng người ta đưa ra các độ đo khác nhau về biên, một trong các độ đo đó là độ đo về sự thay đổi đột ngột về cấp xám. Ví dụ: Đối với ảnh đen trắng, một điểm được gọi là điểm biên nếu nó là điểm đen có ít nhất một điểm trắng bên cạnh. Tập hợp các điểm biên tạo nên biên hay đường bao của đối tượng. Xuất phát từ cơ sở này người ta thường sử dụng hai phương pháp phát hiện biên cơ bản:

Phát hiện biên trực tiếp: Phương pháp này làm nổi biên dựa vào sự biến thiên mức xám của ảnh. Kỹ thuật chủ yếu dùng để phát hiện biên ở đây là dựa vào sự biến đổi cấp xám theo hướng. Cách tiếp cận theo đạo hàm bậc nhất của ảnh dựa trên kỹ thuật Gradient, nếu lấy đạo hàm bậc hai của ảnh dựa trên biến đổi gia ta có kỹ thuật Laplace.

Phát hiện biên gián tiếp: Nếu bằng cách nào đó ta phân được ảnh thành các vùng thì ranh giới giữa các vùng đó gọi là biên. Kỹ thuật dò biên và phân vùng ảnh là hai bài toán đối ngẫu nhau vì dò biên để thực hiện phân lớp đối tượng mà khi đã phân lớp xong nghĩa là đã phân vùng được ảnh và ngược lại, khi đã phân vùng ảnh đã được phân lớp thành các đối tượng, do đó có thể phát hiện được biên.

Phương pháp phát hiện biên trực tiếp tỏ ra khá hiệu quả và ít chịu ảnh hưởng của nhiễu, song nếu sự biến thiên độ sáng không đột ngột, phương pháp tỏ ra kém hiệu quả, phương pháp phát hiện biên gián tiếp tuy khó cài đặt, song lại áp dụng khá tốt trong trường hợp này.

Các phƣơng pháp phát hiện biên trực tiếp: Kỹ thuật phát hiện biên Gradient:

Theo định nghĩa, gradient là một véctơ có các thành phần biểu thị tốc độ thay đổi giá trị của điểm ảnh, ta có: Trong đó, dx, dy là khoảng cách (tính bằng số điểm) theo hướng x và y.

Ví dụ: Với dx = dy = 1, ta có:

Do đó, mặt nạ nhân chập theo hướng x là A= (-1 1) và hướng y là B= Chẳng hạn:

Kỹ thuật Prewitt:

Kỹ thuật sử dụng 2 mặt nạ nhập chập xấp xỉ đạo hàm theo 2 hướng x và y là: (adsbygoogle = window.adsbygoogle || []).push({});

Các bước tính toán của kỹ thuật Prewitt - Bước 1: Tính I ⊗ Hx và I ⊗ Hy

- Bước 2: Tính I ⊗ Hx + I ⊗ Hy Ví dụ:

Kỹ thuật Sobel:

Tương tự như kỹ thuật Prewitt kỹ thuật Sobel sử dụng 2 mặt nạ nhân chập theo 2 hướng x, y là:

Các bước tính toán tương tự Prewitt - Bước 1: Tính I ⊗ Hx và I ⊗ Hy - Bước 2: Tính I ⊗ Hx + I ⊗ Hy

Kỹ thuật la bàn:

Kỹ thuật sử dụng 8 mặt nạ nhân chập theo 8 hướng 00, 450, 900, 1350,1800, 2250, 2700, 3150

Các bước tính toán thuật toán La bàn - Bước 1: Tính I ⊗ Hi ; i = 1,8

- Bước 2: [

Kỹ thuật phát hiện biên Laplace:

Các phương pháp đánh giá gradient ở trên làm việc khá tốt khi mà độ sáng thay đổi rõ nét. Khi mức xám thay đổi chậm, miền chuyển tiếp trải rộng, phương pháp cho hiệu quả hơn đó là phương pháp sử dụng đạo hàm bậc hai Laplace.

Toán tử Laplace được định nghĩa như sau:

   8 1 i i H I

Trong thực tế, người ta thường dùng nhiều kiểu mặt nạ khác nhau để xấp xỉ rời rạc đạo hàm bậc hai Laplace. Dưới đây là ba kiểu mặt nạ thường dùng:

Phát hiện biên gián tiếp: Một số khái niệm cơ bản: Ảnh và điểm ảnh:

Ảnh số là một mảng số thực 2 chiều (Iij) có kích thước (MxN), trong đó mỗi phần tử Iij(i = 1,...,M; j = 1,...,N) biểu thị mức xám của ảnh tại (i,j) tương ứng.

Ở đây ta chỉ xét tới ảnh nhị phân vì ảnh bất kỳ có thể đưa về dạng nhị phân bằng kỹ thuật phân ngưỡng. Ta ký hiệu ℑ là tập các điểm vùng (điểm đen) và  là tập các điểm nền (điểm trắng).

Các điểm 4 và 8-láng giềng

Giả sử (i,j) là một điểm ảnh, các điểm 4-láng giềng là các điểm kề trên, dưới, trái, phải của (i,j):

N4(i,j) = {(i’,j’) : |i-i’|+|j-j’| = 1}, và những điểm 8-láng giềng gồm: N8(i,j) = {(i’,j’) : max(|i-i’|,|j-j’|) =1}.

Trong Hình " Ma trận 8-láng giềng kề nhau" biểu diễn ma trận 8 láng giềng kề nhau, các điểm P0, P2, P4, P6 là các 4-láng giềng của điểm P, còn các điểm P0, P1, P2, P3, P4, P5, P6, P7 là các 8-láng giềng của P. P3 P2 P1 P4 P P0 P5 P6 P7 Hình 2.6: Ma trận 8-láng giềng kề nhau Đối tƣợng ảnh:

Hai điểm Ps, Pe ∈ ℑ E, E ⊆ hoặc  được gọi là 8-liên thông (hoặc 4- liên thông) trong E nếu tồn tại tập các điểm được gọi là đường đi (io,jo)...(in,jn) sao cho (io,jo)= Ps, (in,jn)= Pe, (ir,jr) ∈ E và (ir,jr) là 8-láng giềng (hoặc 4-láng giềng tương ứng) của (ir-1,jr-1) với r = 1,2,...,n

Nhận xét: Quan hệ k-liên thông trong E (k=4,8) là một quan hệ phản xạ, đối xứng và bắc cầu. Bởi vậy đó là một quan hệ tương đương. Mỗi lớp tương đương được gọi là một thành phần k-liên thông của ảnh. Về sau ta sẽ gọi mỗi thành phần k-liên thông của ảnh là một đối tượng ảnh.

2.1.4 Phát hiện nhiễu:[7]

Mệnh đề: [Phát hiện nhiễu]:

Cho trước ngưỡng  >0 và chu tuyến C1 có độ dài nhỏ hơn  với các điểm là điểm nền (điểm trắng). Gọi C2 là chu tuyến láng giềng của chu tuyến C1 khi đó ta có khẳng định sau: chu tuyến C1 xác định nhiễu nếu độ dài của chu tuyến C2 nhỏ hơn độ dài của chu tuyến C1.

Chứng minh:

Gọi C1= <P1P2..Pn>, C2= <Q1Q2..Qm>. Tương tự chứng minh trên, Ta có:

in(Qi, C1) i: 1 i  m (1). Theo giả thiết ta có:

Len(C1) <  (2). (adsbygoogle = window.adsbygoogle || []).push({});

Từ (1) và (2) theo định nghĩa ta có chu tuyến C1 xác định nhiễu.

2.1.5 Phát hiện lỗ hổng:[7] Mệnh đề: [Phát hiện lỗ hổng]:

Cho trước ngưỡng  > 0 và chu tuyến C1 có độ dài nhỏ hơn  với các điểm là điểm ảnh quan tâm (điểm đen). Gọi C2 là chu tuyến láng giềng của chu tuyến C1 khi đó ta có khẳng định sau: chu tuyến C1 xác định lỗ hổng nếu độ dài của chu tuyến C1 lớn hơn độ dài của chu tuyến C2.

Chứng minh:

Gọi C1=<P1P2..Pn>, C2=<Q1Q2..Qm> và ký hiệu in(Q,C) để chỉ điểm Q nằm trong chu tuyến C. Ta phải chứng minh in(Qi,C1) (i=1,m). Giả sử k  [1,m] sao cho Qk là điểm ngoài chu tuyến C1 ta đi chứng minh Qk+1 cũng là điểm ngoài chu tuyến C1. Thật vậy, giả sử Qk+1 là điểm trong chu tuyến C1 khi đó theo điều kiện Jordan về điểm trong QkQk+1 sẽ "cắt" chu tuyến C1 tại một số lẻ lần (1). Như vậy giữa Qk và Qk+1 có một số điểm (1) xen giữa, nhưng Qk+1 là điểm 8-láng giềng của Qk do là hai điểm kế tiếp trong chu tuyến C2 điều đó dẫn đến mâu thuẫn. Vậy Qk+1 cũng nằm ngoài chu tuyến C1.

Tương tự ta có Qi (i= 1,m) cũng nằm ngoài chu tuyến C1. Suy ra chu tuyến C2 bao ngoài chu tuyến C1 (Hình 2.7). Ta đi chứng minh độ dài của chu tuyến C2 lớn hơn độ dài của chu tuyến C1.

Thật vậy, xét chu tuyến C1 ta có PiPi+1 là hướng lẻ, xét điểm P là 4-láng giềng của Pi (Hình 2.8) ta có PiPi+1 < PiP + PPi+1 (tổng 2 cạnh trong một tam giác phải lớn hơn cạnh thứ 3), gọi C1' là chu tuyến thu được từ chu tuyến C1 bằng cách thay các cạnh PiPi+1 theo hướng lẻ thành PiP và PPi+1, gọi độ dài của chu tuyến là Len ta có:

Len(C1') > Len(C1) (3).

Gọi xc1min, xc1max, ycmin1 , yc1max là các giá trị nhỏ nhất và lớn nhất trong toạ độ các điểm của chu tuyến C1' ta có:

Len(C1')= 2[(xcmax1 -xc1min)+ (yc1max -yc1min)] (4)

Chu tuyÕn C1

Chu tuyÕn C2

Hình 2.7: Chu tuyến láng giềng[7] Pi

Pi+1 P

Hình 2.8: Xấp xỉ trên chu tuyến[7] Qi Q'

Qi+1

Qi-1 Q

Hình 2.9: Xấp xỉ dưới chu tuyến[7]

Mặt khác, xét chu tuyến C2 ta có QiQi+1 là hướng lẻ, xét điểm Q là 4-láng giềng của Qi (Hình 2.9) ta có QiQi+1 >QQi+1 (cạnh huyền lớn hơn cạnh góc vuông), gọi C'2 là chu tuyến thu được từ chu tuyến C2 bởi việc thay các cạnh theo hướng lẻ

bởi các cạnh góc vuông tương ứng (QiQi+1 bởi QQi+1), còn các cạnh theo hướng chẵn thì bởi các cạnh tạo bởi các điểm 4-láng giềng tương ứng (Qi-1Qi bởi Q'Q) ta có:

Len(C2) > Len(C'2) (5).

Gọi xcmin2 , xcmax2 , ycmin2 , ycmax2 là các giá trị nhỏ nhất và lớn nhất trong toạ độ các điểm của chu tuyến C2 ta có:

Len(C2' )= 2{[(xcmax2 -1)-( xcmin2 +1)]+ [(ycmax2 -1)-( ycmin2 +1)]}(6). Hơn nữa, PC theo chứng minh trên ta có P là điểm trong của chu tuyến C2, xét các nửa đường thẳng từ P song song với Ox (trục hoành) và Oy (trục tung) và theo điều kiện Jordan suy ra QC2 sao cho PQ//Ox hoặc PQ//Oy. Hơn nữa C1 là chu tuyến láng giềng của C2 nên suy ra Q C2 là 4-láng giềng của P. Từ đó

xc1max= xcmax2 -1, xc1min= xcmin2 +1, yc1max= ycmax2 -1, yc1min= ycmin2 +1, vậy Len(C1' )= Len(C2' ), kết hợp khẳng định này với (1) và (3) ta có độ dài Len(C2) > Len(C1).

Suy ra mâu thuẫn với giả thiết.

Vậy in(Qi, C1) i: 1 i  m (7). Theo giả thiết ta có:

Len(C1) <  (8).

Từ (7) và (8) theo định nghĩa ta có chu tuyến C1 xác định lỗ hổng

2.2 Xóa đối tƣợng nhỏ trong ảnh: 2.2.1 Xóa nhiễu:[7] 2.2.1 Xóa nhiễu:[7] (adsbygoogle = window.adsbygoogle || []).push({});

Có 2 loại nhiễu cơ bản trong quá trình thu nhận ảnh

Một phần của tài liệu Luận văn thạc sĩ công nghệ thông tin Nghiên cứu một số kỹ thuật xóa đối tượng nhỏ trong ảnh (Trang 35 - 74)