kỹ thuật contour tracing

45
Kỹ thuật Contour Tracing Khái niệm Contour Contour là dùng để nói đến đường viền của một đối tượng, một tập hợp các điểm ảnh tách đối tượng khỏi nền. Có 1 điểm chú ý là contour không chỉ dùng để xác định các pixel biên của đối tượng và tách chúng khỏi nền. Cái chúng ta cần là một chuỗi các pixel biên để tách ra lấy hình dạng của mẫu. Kỹ thuật tách Contour là một trong nhiều kỹ thuật tiền xử lý được thực hiện trên ảnh số nhằm tách riêng các thông tin về hình dạng chung của ảnh. Một contour khi đã được tách, những đặc điểm khác nhau sẽ được sử dụng như những nét đặc trưng và sẽ được sử dụng để phân loại mẫu sau này. Vì vậy, khi tách được contour chính xác, từ đó ta sẽ nhận được những mẫu có các đặc tính chính xác giúp cơ hội nhận dạng, phân loại một mẫu sẽ được tăng lên đáng kể. Nhưng bạn có thể tự hỏi rằng: Tại sao lại lãng phí thời gian để lấy các contour của một mô hình và sau đó thu thập các đặc điểm riêng của nó? Tại sao không thu thập nó ngay từ đầu?

Upload: independent

Post on 21-Feb-2023

1 views

Category:

Documents


0 download

TRANSCRIPT

Kỹ thuật Contour Tracing

Khái niệm ContourContour là dùng để nói đến đường viền của một đối

tượng, một tập hợp các điểm ảnh tách đối tượng khỏi

nền. Có 1 điểm chú ý là contour không chỉ dùng để xác

định các pixel biên của đối tượng và tách chúng khỏi

nền. Cái chúng ta cần là một chuỗi các pixel biên để

tách ra lấy hình dạng của mẫu.

Kỹ thuật tách Contour là một trong nhiều kỹ thuật

tiền xử lý được thực hiện trên ảnh số nhằm tách riêng

các thông tin về hình dạng chung của ảnh. Một contour

khi đã được tách, những đặc điểm khác nhau sẽ được sử

dụng như những nét đặc trưng và sẽ được sử dụng để phân

loại mẫu sau này. Vì vậy, khi tách được contour chính

xác, từ đó ta sẽ nhận được những mẫu có các đặc tính

chính xác giúp cơ hội nhận dạng, phân loại một mẫu sẽ

được tăng lên đáng kể.

Nhưng bạn có thể tự hỏi rằng: Tại sao lại lãng phí

thời gian để lấy các contour của một mô hình và sau đó

thu thập các đặc điểm riêng của nó? Tại sao không thu

thập nó ngay từ đầu?

Điều này được lý giải là: các điểm ảnh của đường

viền nói chung là một tập hợp của tổng số các điểm ảnh

đại diện cho một mô hình. Vì vậy khối lượng công việc

phải tính toán sẽ được giảm đi nhiều khi sử dụng thuật

toán tách trên đường viền thay cho việc trên toàn bộ mô

hình.Từ đó, contour sẽ có nhiều đặc tính mới hơn được

nhận ra so với toàn bộ mô hình ban đầu.quá trình xử lý

sẽ dễ dàng hơn là thực hiện với mô hình ban đầu.

Quá trình thực hiện dò contour đóng vai trò quan

trọng trong lĩnh vực nhận dạng mẫu.

Các thuật toán Contour Tracing

Chúng ta có 4 thuật toán Contour Tracing chung

nhất. 2 trong số đó có tên là: Square Tracing algorithm

và Moore – Neighbor Tracing là dễ để thực hiện và

thường xuyên được dùng để dò tìm contour của một mẫu.

Thật không may, cả 2 thuật toán trên đều có những điểm

yếu, là nguyên nhân chính dẫn đến việc dò tìm sai

contour của một lớp các mẫu nếu các mẫu đó có chứa các

kiểu “connectivity” phức tạp.

Một vài thuật toán Contour Tracing:

Square Tracing Algorithm

1)Ý tưởng:

Ý tưởng đằng sau thuật toán Square Tracing là rất đơn

giản; điều này có thể là do các thuật toán là một

trong những cố gắng đầu tiên để trích xuất các đường

viền của một mô hình nhị phân.

Với một mô hình kỹ thuật số có nghĩa là một nhóm các

điểm ảnh đen trên nền của các điểm ảnh màu trắng, tức

là một mạng lưới; xác định vị trí một điểm ảnh màu đen

và tuyên bố nó như là "điểm ảnh bắt đầu" . (Định vị một

"điểm ảnh bắt đầu" điểm ảnh có thể được thực hiện trong

một số cách, chúng ta sẽ bắt đầu từ góc dưới bên trái

của lưới điện, quét từng cột điểm ảnh từ phía dưới đi

lên -starting từ cột ngoài cùng bên trái và tiến tới

bên phải -. cho đến khi chúng ta gặp phải một điểm ảnh

màu đen. Chúng ta sẽ đặt điểm ảnh đó là "điểm ảnh bắt

đầu" ).

Bây giờ, hãy tưởng tượng rằng bạn là một con bọ (bọ

rùa) đứng trên bắt đầu điểm ảnh như trong hình 1 dưới

đây. Để giải nén các đường viền của các mô hình, bạn

phải làm như sau:

Mỗi khi bạn thấy mình đang đứng trên một điểm ảnh màu

đen, rẽ trái, và

Mỗi khi bạn thấy mình đang đứng trên một điểm ảnh màu

trắng, rẽ phải,

cho đến khi bạn gặp phải khi bắt đầu điểm ảnh một lần

nữa.

Các điểm ảnh màu đen bạn đi ngang qua sẽ là đường viền

của mô hình.

Điều quan trọng trong thuật toán Square Tracing là

"phương hướng". Bên trái và bên phải biến bạn thực hiện

được đối với vị trí hiện tại của bạn, mà phụ thuộc vào

cách bạn cho vào các điểm ảnh bạn đang đứng trên với.

Vì vậy, điều quan trọng là để theo dõi các định hướng

hiện tại của bạn để thực hiện những bước đi đúng.

2) Thuật toán:

Input: Một hình lát T, chứa các thành phần P của điểm

ảnh đen

Output: Một chuỗi B (b1,b2,…) của các điểm ảnh biên

(đường viền)

Bắt đầu:

- Đặt chuỗi B trống.

- Từ dưới lên trên và từ trái sang phải quét hình

lát T cho đến khi một điểm ảnh đen (s) trong P

được tìm thấy.

- Chèn s vào B.

- Thiết lập các điểm ảnh hiện tại,(p), các điểm ảnh

bắt đầu (s).

- Rẽ trái - truy cập vào các điểm ảnh liền kề bên

trái của p.

- Cập nhật p - đặt nó vào được các điểm ảnh hiện

tại.

- Trong khi p không thấy thì sẽ đặt vào s.

- Nếu hiện tại điểm ảnh p là màu đen, chèn p trong B

và rẽ trái (truy cập vào các điểm ảnh liền kề bên

trái của trang). Nếu không thì rẽ phải (truy caoaj

các điểm ảnh liền kề bên phải của trang).

- Cập nhật p nghĩa là đặt nó vào được các điểm ảnh

hiện tại.

3) Minh họa:

Mỗi khi bạn thấy mình đang đứng trên một điểm ảnh màu

đen, rẽ trái, và trên điểm ảnh màu trắng thì rẽ phải,

cho đến khi bạn gặp phải khi bắt đầu điểm ảnh một lần

nữa.

Các điểm ảnh màu đen bạn đi ngang qua sẽ là đường viền

của mô hình.

4) Phân tích :

Có thể chỉ ra rằng các thuật toán Square Tracing là

rất hạn chế trong việc thực hiện. Nói cách khác, nó lỗi

không thể trích xuất các đường viền của hình ảnh lớn mà

mô hình đó thường xuyên xảy ra trong các ứng dụng thực

tế đời sống.

Điều này phần lớn là do khi quét trái và phải có xu

hướng bỏ qua các điểm ảnh nằm "theo đường chéo" đối với

một điểm ảnh được đưa ra với.

Chúng tôi sẽ xem xét mô hình khác nhau của kết nối khác

nhau và xem lý do tại sao quảng trường truy tìm thuật

toán không thành công. Ngoài ra, chúng tôi sẽ xem xét

cách thức mà chúng ta có thể cải thiện hiệu suất của

thuật toán và làm cho nó ít nhất là làm việc cho mô

hình với một loại đặc biệt của kết nối.

Các tiêu chí dừng:

Một điểm yếu của thuật toán Square Tracing nằm trong sự

lựa chọn của điều kiện dừng. nói cách khác, khi nào các

thuật toán chấm dứt?

Trong mô tả ban đầu của hình vuông truy tìm thuật toán,

các tiêu chí dừng lại đến thăm các điểm ảnh bắt đầu cho

một lần thứ hai. Nó chỉ ra rằng các thuật toán sẽ không

đường viền theo dõi một hình ảnh lớn của mô hình thể nó

là phụ thuộc vào tiêu chí đó.

Một cuộc biểu tình giải thích cách hoạt hình thuật toán

truy tìm vuông không để trích xuất các đường viền của

một mô hình do sự lựa chọn xấu của điều kiện dừng

Như bạn có thể thấy, việc cải thiện tiêu chí dừng lại

sẽ là một khởi đầu tốt để cải thiện hiệu suất tổng thể

của thuật toán truy tìm vuông. Có 2 lựa chọn thay thế

hiệu quả để ngăn chặn các tiêu chí hiện tại:

a) Dừng lại sau khi đi thăm các điểm ảnh đầu n lần,

trong đó n là ít nhất 2

b) Dừng sau khi vào bắt đầu điểm ảnh lần thứ hai trong

cùng một cách bạn đã làm đúng ban đầu. Tiêu chuẩn này

được đề xuất bởi Jacob Eliosoff và do đó chúng tôi sẽ

gọi nó là tiêu chí dừng Jacob.

Thay đổi tiêu chí dừng lại nói chung sẽ cải thiện hiệu

suất của thuật toán truy tìm vuông nhưng sẽ không cho

phép nó để khắc phục điểm yếu khác, nó có hướng mô hình

các loại đặc biệt của kết nối.

Sau đây là một minh chứng sinh động về cách thức thuật

toán vuông (với điều kiện dừng của Jacob) truy tìm

không để trích xuất các đường viền của một mô hình 8-

kết nối đó không phải là 4 kết nối:

Thuật toán Square Tracing hoàn toàn vô dụng?

Nếu bạn đã đọc những phân tích trên bạn phải suy nghĩ

rằng các thuật toán truy tìm vuông không để trích xuất

các đường viền của hầu hết các mô hình. Nó chỉ ra rằng

có tồn tại một gia đình đặc biệt của mô hình đó là hoàn

toàn chính xác và đường viền cứu sự hình vuông truy tìm

thuật toán.

Hãy để P là một tập hợp các kết nối 4 điểm ảnh màu đen

trên lưới điện. Hãy để các điểm ảnh màu trắng của lưới

điện tức là các điểm ảnh nền, W, cũng là 4-kết nối. Nó

chỉ ra rằng tạo điều kiện như vậy của các mô hình và

nền tảng của nó, chúng ta có thể chứng minh rằng vuông

truy tìm thuật toán (sử dụng tiêu chí dừng Jacob) sẽ

luôn luôn thành công trong việc chiết xuất các đường

viền của mô hình.

Bằng chứng

Đưa ra: Một mô hình, P, sao cho cả hai mô hình các điểm

ảnh, tức là các điểm ảnh màu đen và các điểm ảnh nền,

tức là các điểm ảnh màu trắng, W, 4-kết nối.

Quan sát đầu tiên

Kể từ khi tập hợp các điểm ảnh màu trắng, W, được giả

định là 4 kết nối, điều này có nghĩa là mô hình không

thể có "lỗ hổng" trong đó.

(không chính thức, "lỗ" là nhóm các điểm ảnh màu trắng

được bao phủ hoàn toàn bởi các điểm ảnh màu đen trong

các mô hình cho).

Sự hiện diện của bất kỳ "lỗ hổng" trong mô hình sẽ cho

kết quả ngắt kết nối một nhóm các điểm ảnh màu trắng

với phần còn lại của các điểm ảnh màu trắng và do đó

làm cho tập hợp các điểm ảnh màu trắng không 4 kết nối.

Hình 2 và Hình 3 dưới đây cho thấy 2 loại "lỗ" có thể

xảy ra trong một mô hình 4-kết nối:

Quan sát thứ hai

Bất kỳ hai điểm ảnh màu đen của mẫu phải chia sẻ một

bên.

Nói rằng 2 điểm ảnh đen chỉ chia sẻ một đỉnh, sau đó,

để đáp ứng các khách sạn 4 sự kết nối của các mô hình,

cần có một con đường nối những 2 điểm ảnh như vậy mà

mỗi 2 điểm ảnh liền kề trong con đường đó là 4-kết nối.

Nhưng điều này sẽ cho chúng ta một mô hình tương tự như

trong hình 3 ở trên. Nói cách khác, điều này sẽ gây ra

các điểm ảnh màu trắng để trở thành ngắt kết nối.

Hình 4 dưới đây cho thấy một mô hình điển hình đáp ứng

giả định rằng cả hai nền và mô hình điểm ảnh được 4 kết

nối tức là không có "lỗ" và mỗi 2 điểm ảnh đen chia sẻ

một bên:

Một cách hữu hiệu để hình dung mô hình này là:

Đầu tiên, hãy xem xét các ảnh điểm biên tức là các

đường viền, các mô hình. Sau đó, nếu chúng ta xem xét

mỗi pixel ranh giới là có 4 cạnh mỗi đơn vị chiều dài,

chúng ta sẽ thấy rằng một số các cạnh được chia sẻ với

các điểm ảnh màu trắng liền kề. Chúng tôi sẽ gọi các

cạnh tức là những người chia sẻ với các điểm ảnh màu

trắng, mép ranh giới.

Các cạnh ranh giới có thể được xem như là các cạnh của

một đa giác. Hình 5 dưới đây giải thích ý tưởng này

bằng cách hiển thị cho bạn các đa giác tương ứng với mô

hình trong hình 4 ở trên:

Nếu chúng ta nhìn vào tất cả có thể "cấu hình"

của các điểm ảnh ranh giới có thể phát sinh trong mô

hình như vậy, chúng ta sẽ thấy rằng có 2 trường hợp cơ

bản hiển thị trong Hình 6 và Hình 7 dưới đây.

Pixel biên có thể là bội số của những trường

hợp này hoặc positionings khác nhau, tức là quay của 2

trường hợp.

Các cạnh ranh giới được đánh dấu màu xanh là

E1, E2, E3 và E4.

Quan sát thứ ba

Đối với cả 2 trường hợp trên, không có vấn đề điểm ảnh

bạn chọn như bắt đầu điểm của các bạn và không có vấn

đề gì hướng vào thành, các thuật toán truy tìm vuông sẽ

không bao giờ "quay lại", sẽ không bao giờ "đi qua" một

lợi thế cạnh ranh giới hai lần (trừ khi đó là truy tìm

ranh giới lần thứ hai) và sẽ không bao giờ bỏ lỡ một

lợi thế cạnh ranh giới ... thử nó!

2 khái niệm cần làm rõ ở đây:

a) các thuật toán "backtracks" khi nó đi ngược trở lại

để thăm một điểm ảnh đã viếng thăm trước khi truy tìm

toàn bộ ranh giới, và

b) đối với mỗi cạnh ranh giới có 2 cách để "đi qua" nó,

cụ thể là "trong" hay "ngoài" (trong đó "trong" có

nghĩa là đối với các bên trong của đa giác tương ứng và

"ngoài" có nghĩa là đối với bên ngoài của đa giác) .

Ngoài ra, khi các thuật toán vuông đi "trong" thông qua

một trong các cạnh ranh giới, nó sẽ đi "ra" thông qua

các cạnh ranh giới tiếp theo có nghĩa là nó có thể

không được có thể cho hình vuông thuật toán truy tìm đi

qua 2 cạnh ranh giới liên tiếp trong cùng một cách.

 

Quan sát cuối cùng

Có một số thậm chí của các cạnh biên cho bất kỳ mô hình

nào.

Nếu bạn có một cái nhìn tại các đa giác của hình 5 ở

trên, bạn sẽ thấy rằng:

nếu bạn muốn bắt đầu từ đỉnh S, được đánh dấu trên sơ

đồ, và làm theo các cạnh ranh giới cho đến khi bạn đạt

đến S một lần nữa; bạn sẽ thấy rằng bạn sẽ vượt qua bởi

một số chẵn các cạnh biên giới trong quá trình này. Hãy

xem xét mỗi cạnh ranh giới như là một "bước" theo một

hướng nhất định. Sau đó, cứ mỗi "bước" bên phải, có

phải là một "bước" tương ứng với bên trái nếu bạn muốn

quay trở lại vị trí ban đầu của bạn. Điều này cũng áp

dụng cho "bước" theo chiều dọc. Kết quả là, các "bước"

nên phù hợp với cặp và điều này giải thích lý do tại

sao sẽ có một số thậm chí cạnh ranh giới trong bất kỳ

mô hình như vậy.

Kết quả là, khi vuông thuật toán truy tìm vào mép ranh

giới bắt đầu (khi bắt đầu pixel) cho một lần thứ hai,

nó sẽ làm như vậy trong cùng một hướng nó đã làm khi nó

lần đầu tiên vào nó.

Lý do cho điều đó là vì có 2 cách để đi qua một cạnh

ranh giới, và kể từ khi dự khuyết thuật toán giữa

"trong" và "ra" của các cạnh ranh giới liên tiếp, và kể

từ khi có một số thậm chí cạnh ranh giới, thuật toán sẽ

đi qua ranh giới bắt đầu cạnh một lần thứ hai trong

cùng một cách nó đã làm lần đầu tiên.

 

Kết luận

Với một mô hình 4-kết nối và nền, hình vuông truy tìm

thuật toán sẽ theo dõi toàn bộ ranh giới tức là đường

viền, các mô hình và sẽ dừng lại sau khi truy tìm các

ranh giới một lần tức là nó sẽ không theo dõi nó một

lần nữa kể từ khi nó đạt đến mép ranh giới bắt đầu cho

một thứ hai thời gian, nó sẽ nhập vào nó trong cùng một

cách nó đã làm lần đầu tiên.

Do đó, thuật toán Square Tracing, sử dụng các tiêu chí

dừng Jacob, một cách chính xác sẽ trích xuất các đường

viền của bất kỳ mô hình cung cấp cả hai mô hình và nền

tảng của nó là 4-kết nối.

 Moore-Neighbor Tracing 

1)Ý tưởng:

Ý tưởng đằng sau Moore-Neighbor truy tìm rất đơn giản;

nhưng trước khi chúng tôi giải thích nó, chúng ta cần

phải xác định một khái niệm quan trọng: Moore

neighborhood của một điểm ảnh.

Moore neighborhood

Các Moore neighborhood của một pixel, P, là tập hợp của

8 điểm ảnh chia sẻ cùng một đỉnh hoặc cạnh với pixel.

Những điểm ảnh pixel cụ thể là P1, P2, P3, P4, P5, P6,

P7 và P8 thể hiện trong hình 1 dưới đây.

Các Moore neighborhood (còn được gọi là 8-láng giềng

hàng xóm gián tiếp) là một khái niệm quan trọng là

thường xuyên xuất hiện trong các tài liệu.

Bây giờ chúng ta đã sẵn sàng để giới thiệu ý tưởng đằng

sau Moore-Neighbor truy tìm ...

Với một mô hình kỹ thuật số có nghĩa là một nhóm các

pixel đen trên nền của các điểm ảnh màu trắng, tức là

một mạng lưới; xác định vị trí một điểm ảnh màu đen và

tuyên bố nó như là "bắt đầu" của mình pixel. (Định vị

một "bắt đầu" điểm ảnh có thể được thực hiện trong một

số cách, chúng ta sẽ bắt đầu từ góc dưới bên trái của

lưới điện, quét từng cột điểm ảnh từ phía dưới đi lên -

starting từ cột ngoài cùng bên trái và tiến tới bên

phải -. cho đến khi chúng ta gặp phải một điểm ảnh màu

đen chúng tôi sẽ tuyên bố rằng điểm ảnh của chúng tôi

"bắt đầu" pixel).

Bây giờ, hãy tưởng tượng rằng bạn là một con bọ ( bọ

rùa) đứng trên bắt đầu điểm ảnh như trong hình 2 bên

dưới. Không mất tính tổng quát, chúng tôi sẽ trích xuất

các đường viền bằng cách đi quanh mô hình trong một

chiều kim đồng hồ. (Nó không quan trọng mà hướng bạn

chọn miễn là bạn gắn bó với sự lựa chọn của bạn trong

suốt thuật toán).

Ý tưởng chung là: mỗi khi bạn nhấn một điểm ảnh màu

đen, P, trở về nhà tức là quay trở lại các điểm ảnh màu

trắng trước đó bạn đang đứng trên, sau đó, đi xung

quanh điểm ảnh P trong một chiều kim đồng hồ, quý khách

đến thăm mỗi điểm ảnh trong khu phố Moore của nó, cho

đến khi bạn nhấn một điểm ảnh màu đen. Các thuật toán

chấm dứt khi bắt đầu điểm ảnh được truy cập trong một

thời gian thứ hai.

Các điểm ảnh màu đen bạn đi ngang qua sẽ là đường viền

của mô hình.

2) Thuật toán:

Input: Một hình lát T, chứa các thành phần P của điểm

ảnh đen

Output: Một chuỗi B (b1,b2,…) của các điểm ảnh biên

(đường viền)

Xác định M (a) là khu phố Moore của điểm ảnh một.

Cho p biểu thị ranh giới điểm ảnh hiện tại.

Hãy c biểu thị các điểm ảnh hiện đang được xem xét ví

dụ c là M (p).

Bắt đầu

- Đặt B để trống.

-Từ dưới lên trên và từ trái sang phải quét T cho đến

khi một điểm ảnh màu đen, s, P được tìm thấy.

- Chèn s vào B.

-Thiết lập các điểm ranh giới hiện tại p để s nghĩa là

p = s

- Quay lại tức là di chuyển đến các điểm ảnh mà s đã

được nhập.

- Đặt c là chiều kim đồng hồ điểm ảnh tiếp theo trong M

(p).

- Trong khi c không bằng s làm

-Nếu c là màu đen chèn c trong B

thiết lập p = c

quay lại (di chuyển các điểm ảnh hiện tại c để các điểm

ảnh từ đó p đã được nhập) nếu không thúc đẩy các điểm

ảnh hiện tại c để chiều kim đồng hồ điểm ảnh tiếp theo

trong M (p)

Kết thúc

3) Minh họa

Mỗi khi bạn nhấn một điểm ảnh màu đen, P, trở về nhà

tức là quay trở lại các điểm ảnh màu trắng trước đó bạn

đang đứng trên, sau đó, đi xung quanh điểm ảnh P trong

một chiều kim đồng hồ, khi đến mỗi điểm ảnh trong khu

phố Moore của nó, cho đến khi bạn nhấn một điểm ảnh màu

đen. Các thuật toán chấm dứt khi bắt đầu điểm ảnh được

truy cập trong một thời gian thứ hai.

4) Phân tích

Điểm yếu chính của Moore-Neighbor truy tìm nằm trong sự

lựa chọn của điều kiện dừng, nói cách khác, khi nào các

thuật toán chấm dứt?

Trong mô tả ban đầu của thuật toán được sử dụng trong

Moore-Neigbor truy tìm, tiêu chí dừng lại đến thăm các

điểm ảnh bắt đầu cho một lần thứ hai. Giống như trong

trường hợp của Square Tracing thuật toán, nó chỉ ra

rằng Moore-Neighbor truy tìm sẽ không đường viền theo

dõi một gia đình lớn của mô hình thể nó là phụ thuộc

vào tiêu chí đó.

Một cuộc biểu tình giải thích cách hoạt hình Moore-

Neighbor truy tìm không để trích xuất các đường viền

của một mô hình do sự lựa chọn xấu của điều kiện dừng .

Như bạn có thể thấy, việc cải thiện tiêu chí dừng lại

sẽ là một khởi đầu tốt để cải thiện hiệu suất tổng thể

của Moore-Neighbor truy tìm. Có 2 lựa chọn thay thế

hiệu quả để ngăn chặn các tiêu chí hiện tại:

a) Dừng lại sau khi đi thăm các điểm ảnh đầu n

lần, trong đó n là ít nhất 2.

b) Dừng sau khi vào bắt đầu điểm ảnh lần thứ

hai trong cùng một cách bạn đã làm đúng ban

đầu. Tiêu chuẩn này được đề xuất bởi Jacob

Eliosoff và do đó chúng tôi sẽ gọi nó là tiêu

chí dừng Jacob.

Sử dụng điều kiện dừng của Jacob sẽ cải thiện hiệu suất

của Moore-Neighbor truy tìm làm cho nó các thuật toán

tốt nhất để chiết xuất đường viền của bất kỳ mô hình

không có vấn đề gì kết nối của nó.

Lý do chủ yếu là do thực tế rằng các thuật toán sẽ kiểm

tra toàn bộ khu vực Moore của một pixel ranh giới để

tìm ra ranh giới pixel tiếp theo. Không giống như các

thuật toán Quảng trường Tracing, mà làm cho một trong

hai lượt và bỏ lỡ "chéo" điểm ảnh bên trái hoặc bên

phải; Moore-Neighbor truy tìm sẽ luôn luôn có thể trích

xuất các ranh giới ngoài của bất cứ thành phần kết nối.

Lý do cho điều đó là: đối với bất kỳ 8-kết nối (hoặc

chỉ đơn giản là kết nối) mô hình, ranh giới pixel tiếp

theo nằm trong khu phố Moore của ranh giới điểm ảnh

hiện tại. Từ Moore-Neighbor truy tìm tiền để kiểm tra

tất cả các điểm ảnh trong khu vực Moore của ranh giới

điểm ảnh hiện tại, nó là ràng buộc để phát hiện các

điểm ảnh ranh giới tiếp theo.

Khi Moore-Neighbor truy tìm thăm các điểm ảnh bắt đầu

cho một lần thứ hai trong cùng một cách nó đã lần đầu

tiên, điều này có nghĩa rằng nó đã lần theo đường viền

bên ngoài hoàn toàn của mô hình và nếu không chấm dứt,

nó sẽ theo dõi các đường viền cùng một lần nữa. Kết quả

này vẫn chưa được chứng minh

 

 Radial Sweep

1) Ý tưởng

Các thuật toán quét Radial là một đường viền truy tìm

thuật toán đã được giải thích trong một số văn học.

Không giống như tên lạ mắt của mình, ý tưởng đằng sau

nó là rất đơn giản. Như một vấn đề của thực tế, nó

chỉ ra rằng các thuật toán quét Radial giống hệt với

Moore-Tracing Neighbor. Vì vậy, bạn phải hỏi: "Tại

sao chúng ta bận tâm để đề cập đến nó ở đây?".

Moore-Neighbor truy tìm tìm kiếm các khu vực lân cận

Moore của ranh giới điểm ảnh hiện tại trong một hướng

nhất định (chúng tôi đã chọn chiều kim đồng hồ), cho

đến khi nó tìm thấy một điểm ảnh màu đen. Sau đó

tuyên bố rằng điểm ảnh như là ranh giới điểm ảnh hiện

tại và tiến hành như trước.

Các thuật toán quét xuyên làm điều chính xác. Mặt

khác, nó cung cấp một phương pháp thú vị cho việc tìm

kiếm các điểm ảnh màu đen bên cạnh trong khu phố

Moore của một pixel ranh giới nhất định.

Ý tưởng đằng sau phương pháp đó như sau:

Mỗi khi bạn xác định vị trí một điểm ảnh ranh

giới mới, làm cho nó điểm ảnh hiện tại của

bạn, P, và vẽ một đường thẳng tưởng tượng

tham gia P để các điểm ảnh ranh giới trước

đó. Sau đó, xoay các phân khúc về P trong một

chiều kim đồng hồ cho đến khi nó chạm một

điểm ảnh màu đen trong khu phố Moore P. Xoay

phân khúc này là giống hệt nhau để kiểm tra

mỗi điểm ảnh trong khu vực Moore của P.

Chúng tôi đã cung cấp các trình diễn hoạt hình sau

đây để giải thích cách hoạt động của thuật toán quét

Radial và cách tương tự đó là để Moore-Neighbor truy

tìm.

Khi nào các thuật toán quét Radial chấm dứt?

Hãy kiểm tra hành vi của các thuật toán khi các tiêu

chí dừng sau được sử dụng ...

Tiêu chí dừng 1

Hãy để cho thuật toán quét Radial chấm dứt khi nó

thăm đầu pixel cho một lần thứ hai.

Sau đây là một cuộc biểu tình hoạt hình giải thích lý

do tại sao nó sẽ là một ý tưởng tốt để thay đổi điều

đó tiêu chí dừng lại.

Một điểm đáng nhắc đến là việc thực hiện các thuật

toán quét Radial là giống như của Moore-Neighbor truy

tìm khi tiêu chí dừng này được sử dụng trong cả hai.

Trong Truy tìm thuật toán Square và Moore-Neighbor

truy tìm, chúng tôi thấy rằng việc sử dụng dừng lại

tiêu chí của Jacob (Jacob Eliosoff đề xuất) cải thiện

đáng kể hiệu suất cả hai thuật toán.

Tiêu chí dừng Jacob đòi hỏi rằng các thuật toán chấm

dứt khi thăm đầu pixel cho một lần thứ hai trong cùng

một hướng nó đã lần đầu tiên.

Thật không may, chúng tôi sẽ không thể sử dụng điều

kiện dừng của Jacob trong thuật toán quét Radial. Lý

do cho điều này là một thực tế rằng các thuật toán

quét xuyên không định nghĩa khái niệm "hướng", trong

đó nó đi vào một điểm ảnh ranh giới. Nói cách khác,

nó không rõ ràng (cũng không phải là tầm thường để

xác định) "hướng", trong đó một điểm ảnh ranh giới

được nhập vào các thuật toán.

Vì vậy, chúng tôi sẽ đề xuất một tiêu chí dừng lại mà

không phụ thuộc vào hướng mà bạn nhập vào một điểm

ảnh nhất định và sẽ cải thiện hiệu suất của thuật

toán quét xuyên ...

Tiêu chí dừng 2

Giả sử rằng mỗi một điểm ảnh ranh giới mới, Pi, được

tìm thấy bởi các thuật toán, nó được đưa vào chuỗi

các ảnh điểm biên như vậy: P1, P2, P3, ..., Pi; và

được khai báo là ranh giới điểm ảnh hiện tại.

(Giả sử P1 là sự bắt đầu pixel).

Điều này có nghĩa rằng chúng ta biết các điểm ảnh

ranh giới trước đó, Pi-1, của mỗi điểm ảnh ranh giới

hiện tại, Pi.

(Đối với các điểm ảnh bắt đầu, chúng ta sẽ cho rằng

P0 là một điểm ảnh tưởng tượng phá hủy không tương

đương với bất kỳ điểm ảnh trên grid- mà đi kèm trước

khi các điểm ảnh đầu trong chuỗi các ảnh điểm biên).

Với những giả định trên trong tâm trí, chúng ta có

thể xác định tiêu chí của chúng tôi dừng lại:

Các thuật toán chấm dứt khi:

a) ranh giới điểm ảnh hiện tại, Pi, đã xuất

hiện trước đây như điểm ảnh Pj (trong đó j

<i) trong chuỗi các ảnh điểm biên,

b) Pi-1 = Pj-1.

Nói cách khác, các thuật toán kết thúc khi đến thăm

một điểm ảnh ranh giới, P, lần thứ hai với điều kiện

là các điểm ảnh ranh giới trước khi P (trong chuỗi

các ảnh điểm biên) lần thứ hai xung quanh, là cùng

một điểm ảnh đó là trước khi P khi P lần đầu tiên

được đến thăm.

Nếu tiêu chí dừng lại này là hài lòng và các thuật

toán đã không chấm dứt, các thuật toán quét xuyên sẽ

tiến hành theo dõi các ranh giới tương tự cho một lần

thứ hai.

Việc thực hiện các thuật toán quét xuyên sử dụng tiêu

chí dừng này cũng tương tự như hiệu suất hoạt động

của Moore-Neighbor truy tìm bằng cách sử dụng tiêu

chí dừng Jacob.

 Theo Pavlidis' Algorithm

1)Ý tưởng

Thuật toán này là một trong những thuật toán đường viền

truy tìm gần đây và đã được đề xuất bởi Theo Pavlidis.

Ông đã xuất bản nó trong thuật toán cuốn sách của ông

cho đồ họa và xử lý ảnh vào năm 1982, chương 7 (phần

5). Nó không phải là đơn giản như Truy tìm thuật toán

Square hoặc Moore-Neighbor truy tìm, nhưng nó không

phức tạp (một tài sản được chia sẻ bởi hầu hết các

thuật toán truy tìm đường viền).

Chúng tôi sẽ giải thích thuật toán này bằng cách sử

dụng một cách tiếp cận khác với trình bày trong cuốn

sách. Cách tiếp cận này là dễ dàng hơn để hiểu và sẽ

cung cấp cái nhìn sâu sắc vào những ý tưởng chung đằng

sau các thuật toán.

Không mất tính tổng quát, chúng tôi đã chọn để theo dõi

các đường viền trong một chiều kim đồng hồ để phù hợp

với tất cả các thuật toán đường viền truy tìm khác được

thảo luận trên trang web này. Mặt khác, Pavlidis chọn

để làm như vậy theo một hướng ngược chiều kim đồng.

Điều này không nên thực hiện bất kỳ sự khác biệt đối

với việc thực hiện các thuật toán. Tác động duy nhất

này sẽ phải là về định hướng tương đối của chuyển động

bạn có thể thực hiện khi truy tìm các đường viền.

Bây giờ chúng ta hãy tiếp tục với ý tưởng ...

Với một mô hình kỹ thuật số có nghĩa là một nhóm

các pixel đen trên nền của các điểm ảnh màu trắng, tức

là một mạng lưới; xác định vị trí một điểm ảnh màu đen

và tuyên bố nó như là "bắt đầu" của điểm ảnh. Nằm một

"bắt đầu" điểm ảnh có thể được thực hiện trong một số

cách khác nhau; một trong số đó được thực hiện bằng

cách bắt đầu ở góc dưới bên trái của lưới điện, quét

mỗi cột điểm ảnh từ phía dưới đi lên -starting từ cột

ngoài cùng bên trái và tiến tới các tên bên phải cho

đến khi một điểm ảnh màu đen là gặp phải. Khẳng rằng

điểm ảnh là các điểm ảnh "bắt đầu".

Chúng tôi sẽ không nhất thiết phải thực hiện theo các

phương pháp trên trong việc định vị một điểm ảnh bắt

đầu. Thay vào đó, chúng tôi sẽ chọn một điểm ảnh bắt

đầu đáp ứng các hạn chế sau đây đối với việc lựa chọn

một điểm ảnh bắt đầu cho thuật toán Pavlidis ':

Hạn chế quan trọng về hướng mà bạn nhập vào các điểm

ảnh đầu

Bạn thực sự có thể chọn bất kỳ ranh giới điểm ảnh màu

đen được bắt đầu điểm ảnh của bạn miễn là khi bạn đang

đứng đầu tiên trên đó, điểm ảnh liền kề bên trái của

bạn là không đen. Nói cách khác, bạn nên chắc chắn rằng

bạn nhập khởi điểm ảnh theo một hướng mà đảm bảo rằng

các điểm ảnh liền kề bên trái nó sẽ có màu trắng

("trái" ở đây được thực hiện đối với hướng mà bạn nhập

vào đầu pixel).

Bây giờ, hãy tưởng tượng rằng bạn là một lỗi (rùa) đứng

trên bắt đầu điểm ảnh như trong hình 1 dưới đây.

Trong suốt các thuật toán, các điểm ảnh mà bạn quan tâm

đến bất cứ lúc nào là 3 điểm ảnh ở phía trước của bạn

tức là P1, P2 và P3 thể hiện trong hình 1.

(Chúng tôi sẽ xác định P2 là các điểm ảnh

ngay trước mặt bạn, P1 là các điểm ảnh liền kề với P2

từ bên trái và P3 là các điểm ảnh lân cận quyền P2).

Giống như ở Squace Tracing thuật toán, điều quan trọng

nhất trong thuật toán Pavlidis 'là "ý thức hướng" của

bạn. Bên trái và bên phải biến bạn thực hiện được đối

với vị trí hiện tại của bạn, mà phụ thuộc vào cách bạn

cho vào các điểm ảnh bạn đang đứng trên với. Vì vậy,

điều quan trọng là để theo dõi các định hướng hiện tại

của bạn để thực hiện những bước đi đúng.

Nhưng không có vấn đề gì vị trí bạn đang đứng, điểm ảnh

P1, P2 và P3 sẽ được xác định như trên.

Với thông tin này, chúng tôi đã sẵn sàng để giải thích

các thuật toán ...

Mỗi khi bạn đang đứng trên ranh giới điểm ảnh hiện tại

(đó là các điểm ảnh bắt đầu lúc đầu) thực hiện như sau:

Đầu tiên, hãy kiểm tra điểm ảnh P1. Nếu P1 là màu đen,

sau đó khai báo P1 được giới hạn điểm ảnh hiện tại của

bạn và di chuyển một bước về phía trước theo sau là một

bước để hiện tại của bạn lại với đất trên P1.

(thứ tự mà bạn thực hiện di chuyển của bạn là rất quan

trọng)

Hình 2 dưới đây giải thích trường hợp này. Con đường

bạn nên làm theo để đất trên P1 được vẽ màu xanh lam.

Chỉ khi P1 là màu trắng tiến hành kiểm tra P2 ...

Nếu P2 là màu đen, sau đó tuyên bố P2 là ranh giới điểm

ảnh hiện tại của bạn và di chuyển một bước về phía

trước với đất trên P2.

Hình 3 dưới đây giải thích trường hợp này. Con đường

bạn nên làm theo để đất trong P2 được vẽ màu xanh lam.

Chỉ khi cả P1 và P2 có màu trắng tiến hành kiểm tra

P3 ...

Nếu P3 là màu đen, sau đó tuyên bố P3 là ranh giới điểm

ảnh hiện tại của bạn và di chuyển một bước bên phải của

bạn theo sau là một bước sang trái hiện tại của bạn như

thể hiện trong hình 4 bên dưới.

3 nguyên tắc đơn giản cho 3 trường hợp đơn giản. Như

bạn đã thấy, điều quan trọng để theo dõi chỉ đạo của

bạn khi bạn chuyển từ tất cả các động thái này liên

quan đến định hướng hiện tại của bạn với.

Điều gì nếu tất cả 3 điểm ảnh ở phía trước của bạn có

màu trắng?

Sau đó, bạn xoay (trong khi đứng trên ranh giới điểm

ảnh hiện tại) 90 độ chiều kim đồng hồ để đối mặt với

một tập mới của 3 điểm ảnh ở phía trước của bạn. Sau đó

bạn làm việc kiểm tra tương tự trên các điểm ảnh mới

như bạn đã làm trước đó.

Bạn vẫn có thể đặt câu hỏi: nếu tất cả các 3 điểm ảnh

có màu trắng ?!

Vâng, sau đó xoay một lần nữa thông qua 90 độ chiều kim

đồng hồ trong khi đứng trên cùng một điểm ảnh.

Bạn có thể xoay 3 lần (mỗi 90 độ chiều kim đồng hồ)

trước khi kiểm tra ra các khu vực lân cận toàn bộ Moore

của các điểm ảnh. Nếu bạn xoay 3 lần mà không tìm thấy

bất kỳ điểm ảnh đen, điều này có nghĩa là bạn đang đứng

trên một điểm ảnh có nghĩa là cô lập không kết nối với

bất kỳ điểm ảnh màu đen khác. Đó là lý do tại sao các

thuật toán sẽ cho phép bạn xoay 3 lần trước khi nó chấm

dứt.

Một điều: Khi nào các thuật toán chấm dứt?

Các thuật toán chấm dứt trong 2 trường hợp:

a) như đã đề cập ở trên, các thuật toán sẽ cho phép bạn

xoay 3 lần (mỗi 90 độ chiều kim đồng hồ) sau đó nó sẽ

chấm dứt và công bố các điểm ảnh là một cô lập,

b) khi ranh giới điểm ảnh hiện nay là bắt đầu điểm của

các bạn, các thuật toán chấm dứt "tuyên bố" rằng nó đã

bắt nguồn từ các đường viền của mô hình.

2) Thuật toán

Input: Một hình lát T, chứa các thành phần P của điểm

ảnh đen

Output: Một chuỗi B (b1,b2,…) của các điểm ảnh biên

(đường viền)

Định nghĩa:

Xác định p là các điểm ảnh ranh giới hiện tại tức là

các điểm ảnh bạn đang đứng trên.

Xác định điểm ảnh P1, P2 và P3 như sau: (xem hình 1 ở

trên)

P2 là các điểm ảnh ở phía trước của bạn tiếp giáp với

một trong những bạn đang đứng trên tức là điểm ảnh p.

P1 là các điểm ảnh liền kề bên trái để P2.

P3 là các điểm ảnh lân cận quyền P2.

Xác định một "bước" trong một hướng nhất định như di

chuyển một khoảng cách một điểm ảnh theo hướng đó.

Lưu ý: Tại mọi thời điểm, hãy tưởng tượng rằng bạn là

một con bọ di chuyển từ điểm ảnh để điểm ảnh theo các

hướng dẫn cụ thể. "chuyển tiếp", "trái" và "đúng" là

liên quan đến vị trí hiện tại của bạn trên pixel.

Bắt đầu

- Đặt B để trống

- Từ dưới lên trên và từ trái sang phải quét các tế bào

T cho đến khi bắt đầu điểm ảnh màu đen, s, P được tìm

thấy (xem quan trọng hạn chế liên quan đến hướng bạn

bắt đầu nhập điểm ảnh trên)

- Chèn s vàoB.

Thiết lập các điểm ảnh hiện tại, p, được các điểm ảnh

bắt đầu, s.

Lặp lại sau

Nếu điểm ảnh P1 là màu đen

- Chèn P1 trong B

- Cập nhật p = P1

- Di chuyển một bước về phía trước theo sau là một bước

sang trái hiện tại của bạn

khác nếu P2 là màu đen

- Chèn P2 trong B

- Cập nhật p = P2

- Di chuyển một bước về phía trước (xem hình 3 ở trên)

khác nếu P3 là màu đen

- Chèn P3 B

- Cập nhật p = P3

- Di chuyển một bước về phía bên phải, cập nhật vị trí

của bạn và di chuyển một bước sang trái hiện tại của

bạn (xem hình 4 ở trên) khác nếu bạn đã xoay 90 độ

chiều kim đồng hồ 3 lần trong khi trên cùng một điểm

ảnh p chấm dứt chương trình và tuyên bố p là một điểm

ảnh riêng biệt nếu không xoay 90 độ chiều kim đồng hồ

trong khi đứng trên dòng điểm ảnh p

-Cho đến khi p = s (End Lặp lại)

Kết thúc

3)Minh họa

 

4)Phân tích

Nếu bạn đang nghĩ rằng thuật toán Pavlidis 'là hoàn hảo

cho giải nén các đường viền của mẫu, suy nghĩ lại ...

Đó là sự thật rằng thuật toán này là một chút phức tạp

hơn nói, truy tìm Moore-Neighbor mà không có trường hợp

đặc biệt để chăm sóc, nhưng nó không để trích xuất các

đường viền của một gia đình lớn của mô hình có một loại

kết nối.

Thuật toán hoạt động rất tốt trên các mẫu 4-kết nối.

vấn đề của nó nằm trong việc truy tìm một số mô hình 8-

kết nối mà không phải là 4 kết nối.

Sau đây là một minh chứng sinh động về cách thức thuật

toán Pavlidis 'không để trích xuất các đường viền của

một mô hình 8-kết nối (không phải là 4 kết nối) bởi

thiếu một phần lớn của ranh giới.

Có 2 cách đơn giản thay đổi thuật toán nhằm nâng cao

hiệu quả của nó một cách đáng kể.

a) Thay đổi tiêu chí dừng

Thay vì chấm dứt các thuật toán khi thăm đầu

pixel cho lần thứ hai, thực hiện các thuật toán

chấm dứt sau khi đi thăm các điểm ảnh bắt đầu

một phần ba hoặc thậm chí một thời gian thứ tư.

Điều này sẽ cải thiện hiệu suất chung của các

thuật toán.

b) Chuyển đến nguồn gốc của vấn đề; cụ thể là,

sự lựa chọn của các điểm ảnh đầu

Có một hạn chế quan trọng liên quan đến hướng

mà bạn nhập vào đầu pixel. Về cơ bản, bạn phải

nhập các điểm ảnh bắt đầu đó là khi bạn đang đứng

trên đó, các điểm ảnh liền kề với bạn từ bên trái

là màu trắng. Lý do cho việc áp đặt một hạn chế

đó là:

kể từ khi bạn luôn luôn xem xét 3 điểm ảnh ở phía

trước của bạn theo một thứ tự nhất định, bạn sẽ có

xu hướng bỏ lỡ một điểm ảnh ranh giới nằm trực

tiếp bên trái của các điểm ảnh đầu trong mô hình

nhất định.

Không chỉ các điểm ảnh liền kề bên trái của điểm ảnh là

bắt đầu có nguy cơ bị bỏ qua, nhưng cũng có những điểm

ảnh trực tiếp dưới pixel phải đối mặt với một mối đe

dọa như vậy (như thể hiện trong phản ví ở trên). Ngoài

ra, các điểm ảnh tương ứng với điểm ảnh R trong hình 5

dưới đây sẽ được bỏ qua trong một số mẫu. Vì vậy, chúng

tôi đề nghị một điểm ảnh bắt đầu nên được nhập vào theo

một hướng như vậy mà các điểm ảnh tương ứng với pixel

L, W và R thể hiện trong hình 5 dưới đây, có màu trắng.

Bằng cách này, mô hình giống như trong các cuộc biểu

tình trên sẽ được bắt nguồn từ một cách chính xác và

hiệu suất của thuật toán Pavlidis 'sẽ cải thiện.

Mặt khác, việc tìm kiếm một điểm ảnh bắt đầu đáp ứng

các hạn chế trên có thể là khó khăn và trong nhiều

trường hợp một điểm ảnh như vậy sẽ không được tìm thấy.

Trong trường hợp đó, các phương pháp thay thế để cải

thiện thuật toán Pavlidis 'nên được sử dụng, đó là:

chấm dứt các thuật toán sau khi thăm đầu pixel cho lần

thứ ba