Converter um desenho de linha de varredura em vetor ** LINES **

16

Aqui já existem perguntas como:

... e outros.

Tenho uma imagem png em preto e branco, contém um desenho como um labirinto, por exemplo, contém apenas linhas , sem áreas.

Precisa convertê-lo para (qualquer) formato vetorial, mas como LINES . Todo programa que eu tentei, por exemplo, VectorMagic, potrace etc. converte as linhas em áreas de caminho fechado.

Pequena parte da imagem PNG original - ampliada: insira a descrição da imagem aqui

O resultado do rastreamento: insira a descrição da imagem aqui

Como você pode ver, a "linha" é traçada de ambos os lados como qualquer outra forma de área.

Procurando uma maneira, como traçar linhas em linhas reais (PATHS) , melhor com a largura da linha correspondente. (mas seria suficiente qualquer linha com).

A razão por trás: é necessário trabalhar com as linhas e nós rastreados, por exemplo, converter alguns nós em bege e similares. Não é possível (facilmente) com formas.

Qualquer ideia:

  • como obter linhas vetorizadas de qualquer programa de rastreamento.
  • qual ferramenta pode fazer isso? (qualquer sistema operacional - pode usar Windows, OS X, Linux ..)
jm666
fonte

Respostas:

15

Rastreio da linha central

Existe um AutoTrace gratuito da ferramenta Open Source, capaz de executar um rastreamento da linha central de um bitmap de arte de linha.

insira a descrição da imagem aqui

Execute o AutoTrace com pelo menos as seguintes opções:

autotrace -centerline -color-count 2 -output-file output.svg -output-format SVG input.png 

insira a descrição da imagem aqui

Podemos então ajustar os traços e adicionar a força desejada.

Também podemos instalar o front-end gráfico Frontline for AutoTrace, caso não estejamos familiarizados com a linha de comando.

Os usuários do Linux podem instalar o rastreamento automático fornecido a partir de seus repositórios padrão na maioria das distribuições. Para Windows, existem pacotes pré-compilados para download na página do projeto.

Existem muitos parâmetros adicionais para o AutoTrace que podem ser encontrados na página do manual do aplicativo ou chamando-o com autotrace -help.

Para obter linhas retas do que splines, podemos, por exemplo, usar os seguintes parâmetros:

  • -line-threshold [real]:
    Se um spline não se desviar da linha reta definida por seus pontos de extremidade em mais do que o número especificado de pixels, trate-o como uma linha reta (padrão: 1).

  • - line-reversion-threshold [real]:
    Se um spline estiver mais próximo de uma linha reta do que isso, ponderado pelo quadrado do comprimento da curva, mantenha-o em linha reta, mesmo que seja uma lista com curvas; o padrão é 0,01.

Takkat
fonte
11
+1 Você sabe se existe uma opção para rastrear apenas fazer segmentos retos com rastreamento automático.
Joojaa
@joojaa: veja edit para opções.
Takkat 04/09/2015
Eu gostaria de poder obter autotrace para construir ... Eu adoraria usar esse
slashdottir
11
@slashdottir: qual sistema você está usando? O site do projeto mudou-se para o Github para desenvolvimento recente e relatórios de erros. Eu editei a resposta para incluir o link.
Takkat 21/07/19
Oh brilhante! Estou usando o OSX. Muito obrigado pelo link!
precisa
9

Honestamente ... pegue a ferramenta caneta e rastreie manualmente os caminhos. Isso resultará na melhor saída.

O rastreamento automático geralmente não é a melhor opção. Quando você deseja apenas caminhos que você pode traçar, o rastreamento automático geralmente falha miseravelmente.

Scott
fonte
a imagem é realmente COMPLEXA com muitas linhas. Também têm mais imagens - simplesmente muito trabalho - procurando uma alternativa ...;)
jm666
Também espero que a "ferramenta" será feito alguma otimização, por exemplo, irá criar sempre mais longos caminhos possíveis e assim por diante ... o trabalho manual não é sempre o melhor;)
jm666
Boa sorte! Realmente acho que o que você está pedindo exige habilidade e paciência manuais. Nunca vi uma solução automatizada que valesse a pena criar caminhos únicos. Eu acho que você está procurando o impossível honestamente.
Scott Scott
2
@ Scott, enquanto eu geralmente concordo com o seu sentimento, neste caso específico, apenas pode funcionar.
Joojaa
5

Tente usar Interpolate Paths após o seu rastreamento, como mostra aqui:

Curso médio de um preenchimento

Sean
fonte
UAU. Isso parece muito promissor. Obrigado! +1.
jm666
@ jm666 é claro que esse tipo de método não será automatizado muito bem, a menos que você esteja lidando com caminhos contínuos.
Joojaa
5

O Illustrator pode fazer o rastreamento da linha central, como o rastreamento automático . Não é super útil para a maioria das coisas, mas neste caso a imagem é altamente sintética e pode funcionar.

A sua imagem de origem é notoriamente ruim; portanto, não há uma maneira real de tentar isso sem perder a qualidade; seus originais devem ser melhores (não é necessário aumentar o zoom)

Faça isso:

  1. Nas configurações de rastreamento, desative os preenchimentos e ative os traços.

  2. Objeto → Expandir

insira a descrição da imagem aqui

Imagem 1 : Objeto após rastreamento e expansão.

  1. Para aprimorar ainda mais os resultados de qualquer erro de rastreamento, faça o seguinte: Objeto → Caminho → Simplificar , verifique as arestas retas.

insira a descrição da imagem aqui

Imagem 2 : Após a simplificação

  1. Parece-me que sua imagem é um pouco limitada nas direções das linhas e nos locais dos cantos. Se isso for verdade, agora você pode tentar quantificar os pontos para obter resultados ainda melhores (se não perfeitos).

insira a descrição da imagem aqui

Imagem 3 : O que a quantização pode fazer com o resultado.

PS: dado que a fonte que você compartilhou é incompleta, eu diria meu resultado como muito bom. Embora eu concorde que, em geral, não é possível contar com o rastreamento de linha que funcionaria nesse caso.

PPS: Seus cantos estão sobrepostos, causando tristeza aos rastreadores automáticos. Você pode detectar e corrigir esses problemas com alguns operadores de morfologia, como o ImageMagick, que deve tornar os rastreadores MUITO mais felizes.

joojaa
fonte
Legal também. Agora, usando o rastreamento automático, devido ao simples uso da linha de comando - para muitas imagens. A imagem de bitmap acima é uma pequena parte de uma imagem maior (zoom de 1300%) :) - portanto, parece degradada. +1, obrigado.
jm666
@ jm666 claro, você também pode usar o illustrator do cmd, se desejar, mas é um pouco de trabalho para começar.
Joojaa 04/04
Tentei com o rastreamento de imagem do Illustrator e a amostra usar apenas traços. Não consegui obter resultados utilizáveis. É certo que não investi muito tempo nisso, e a amostra não é ideal para rastreamento. Mas acho que, na configuração geral, o rastreamento da AI para apenas traços significa que você só rastreia 30-60% da arte real, a menos que o original seja bastante sólido e nítido antes do rastreamento.
Scott Scott
@ Scott reduzi a imagem de volta ao tamanho original (ish) e ao parâmetro de largura da linha ajustada para que funcionasse. Quando você traça traçados de largura diferente, pode ser necessário fazê-lo em 2 ou 3 passagens separadas.
Joojaa 4/04/15
2

Encontrei uma boa ferramenta freeware chamada WinTopo , que para mim fez o trabalho, ou seja, rastreamento da linha central.

O método é chamado "vetorização com um toque" e funciona bem.

Como venho de um contexto GIS - na versão pro, há uma opção para georeferenciar os dados rasterizados primeiro - poderia ser útil, ainda não testado.

ORiAX
fonte