Tải bản đầy đủ

• Kỹ thuật Contour Tracing



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?
Đ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 4kế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ừ MooreNeighbor 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
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)


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay

×

×