O que é um código de cadeia?
No computador gráfico e processamento de imagem, um código de cadeia é um algoritmo usado para codificar os contornos de um objeto em uma imagem em preto e branco ou monocromático. A sequência resultante dos códigos pode descrever como desenhar o contorno do objeto em relação à imagem em que está localizado, ou pode ser uma coleção de instruções em relação ao local no contorno onde o algoritmo começou, fornecendo essencialmente as etapas que podem ser seguidas para redesenhar o objeto. Esses códigos podem ser normalizados de acordo com uma fórmula e, em seguida, comparados a outro código de cadeia para determinar se dois objetos são idênticos. Um código de cadeia pode ser usado para isolar objetos em um programa de visão computacional ou segmentação de imagem no processamento de imagens, embora mais comumente possa ser usado em programas de reconhecimento de caracteres ópticos (OCR).
Embora existam vários algoritmos estabelecidos para um código de cadeia, o conceito básico é o mesmo em cada um. Primeiro, a borda de um objeto está localizada, geralmente movendo o pixel por pixEl através de uma imagem raster. Uma vez localizado, a posição é registrada e as bordas circundantes são detectadas. Dependendo se o algoritmo de detecção se moverá no sentido horário ou no sentido anti -horário, o local atual é movido em uma direção ou outra ao longo da borda até retornar à posição original.
Cada vez que a posição atual se move, um número é registrado no código da cadeia. Esse número geralmente indica a direção movida ao longo da borda do objeto. Por exemplo, se um algoritmo de código de cadeia estiver seguindo uma borda reta da direita para a esquerda, cada vez que a borda é rastreada à esquerda, o código numérico para a esquerda será adicionado ao final do código. O código resultante é uma sequência de números na qual, se a sequência for seguida de um ponto de partida arbitrário e um pixel colocado em cada etapa, o contorno do objeto seria redesenhado.
Uma vez a sequência de números que fazemE o código é concluído, vários algoritmos diferentes podem ser aplicados a ele para ajudar a fazer comparações com outras seqüências de código da cadeia. Primeiro, o número é normalizado girando o número inicial até que o menor valor inteiro seja determinado. Dessa forma, dois objetos que têm o mesmo esboço podem ser comparados, independentemente de onde em cada objeto a codificação começou.
Outras versões mais complexas do algoritmo de código da cadeia existem. Isso inclui a codificação baseada em vetores, na qual o esboço de um objeto é descrito por uma sequência de coordenadas conectadas por linhas, embora esse método possa ser perdido quando usado em contornos finamente detalhados. Também existe uma versão do algoritmo que usa a codificação Run-Length (RLE) para comprimir ainda mais os códigos para objetos excepcionalmente grandes ou complexos, para que possam ser armazenados de maneira mais eficiente.