Skip to main content

Co to jest kod łańcuchowy?

W grafice komputerowej i przetwarzaniu obrazu kod łańcuchowy jest algorytmem używanym do kodowania konturów obiektu w obrazie czarno -białym lub monochromatycznym.Powstała sekwencja kodów może albo opisać, jak narysować zarys obiektu w stosunku do obrazu, w którym się znajduje, lub może być zbiorem kierunków względem lokalizacji na zarysie, w którym rozpoczął się algorytm, zasadniczo podając krokiMożna przestrzegać, aby przerysować obiekt.Kody te można znormalizować zgodnie z formułą, a następnie porównać z innym kodem łańcucha, aby ustalić, czy dwa obiekty są identyczne.Kod łańcucha może być używany do izolowania obiektów w programie wizji komputerowej lub segmentacji obrazu w przetwarzaniu obrazu, chociaż częściej może być używany w programach rozpoznawania znaków optycznych (OCR).

Chociaż istnieje kilka ustalonych algorytmów kodu łańcuchowego,Podstawowa koncepcja jest taka sama w każdym.Po pierwsze, krawędź obiektu znajduje się, zwykle poprzez poruszanie pikseli po pikseli przez obraz rastrowy.Po zlokalizowaniu pozycja jest rejestrowana i wykrywane są otaczające krawędzie.W zależności od tego, czy algorytm wykrywania będzie poruszał się zgodnie z ruchem wskazówek zegara czy przeciwnie do ruchu wskazówek zegara, aktualna lokalizacja jest przesuwana w jednym czy innym kierunku wzdłuż krawędzi, aż powróci do pierwotnej pozycji.

.Liczba ta ogólnie wskazuje kierunek poruszony wzdłuż krawędzi obiektu.Na przykład, jeśli algorytm kodu łańcuchowego podąża prostą krawędź od prawej do lewej, to za każdym razem, gdy krawędź jest prześledzona po lewej, kod numeryczny dla lewej jest dodawany do końca kodu.Powstały kod to ciąg liczb, w których, jeśli sekwencja jest przestrzegana z dowolnego punktu wyjścia i piksela umieszczonego na każdym etapie, zarys obiektu zostałby przerysowany.jest zakończony, można zastosować do niego kilka różnych algorytmów, aby pomóc w porównaniu z innymi sekwencjami kodu łańcuchowego.Po pierwsze, liczba jest znormalizowana przez obrócenie liczby początkowej, aż określi się najniższą wartość całkowitą.W ten sposób można porównać dwa obiekty, które mają ten sam zarys, niezależnie od tego, gdzie na każdym obiekcie rozpoczął się kodowanie.

Istnieją inne bardziej złożone wersje algorytmu kodu łańcuchowego.Obejmują one kodowanie oparte na wektorach, w którym zarys obiektu jest opisany przez sekwencję współrzędnych połączonych przez linie, chociaż metoda ta może być stratna, gdy jest stosowana na drobno szczegółowych zarysach.Istnieje również wersja algorytmu, która wykorzystuje kodowanie długości (RLE) do dalszego kompresji kodów dla wyjątkowo dużych lub złożonych obiektów, aby można je było przechowywać w bardziej wydajny sposób.