Como transformar uma imagem em um desenho animado a partir da linha de comando?

4

Eu gostaria de criar esse efeito de desenho animado a partir de fotos apenas com a linha de comando.

Exemplos de efeitos desejados:

Você pode descrever o processo ou dar algumas dicas para alcançar esse efeito de desenho animado?

Informação:

  • Fonte da imagem 1: link
  • Pergunta relacionada (fazendo o mesmo no GIMP): link
por marcanuy 27.11.2015 / 14:46

2 respostas

3

Como você já deve ter descoberto, desenhos animados de filtros posterize de várias soluções de processamento de imagens podem precisar de alguns ajustes na fonte original antes que possamos obter resultados semelhantes aos seus exemplos.

Duas soluções que operam a partir da linha de comando podem dar resultados próximos aos seus exemplos, mas os resultados que obtemos ainda dependem muito da imagem de origem usada.

ImageMagick < img src="https://hostmar.co/software-small">

Usando a ferramenta convert ou mogrify , podemos aplicar o filtro -paint de um estilo semelhante a cartolina pintado à nossa fonte:

convert -paint <strength> <source> <output>

Substitua <strength> por um inteiro para especificar o tamanho do pincel. Quanto menor, mais detalhes serão preservados. No seu exemplo, usei uma força de 4 para o seguinte resultado:

Rastrear para gráficos vetoriais

Resultados melhores do que de bitmap podem ser obtidos por traçando o bitmap para um vetor gráfico usando por exemplo Inkscape Poderíamos então adicionar traços ou adaptar as cores resultantes para melhor atender às nossas necessidades.

Um rastreador de linha de comando pode ser instalado com autotrace .

Existem muitas opções para ajustar os resultados obtidos com o uso do autotrace. O exemplo abaixo foi gerado com estas opções:

autotrace -color-count 6 -filter-iterations 8 -remove-adjacent-corners -output-format svg input.png > output.svg

    
por Takkat 28.11.2015 / 09:36
6

Eu encontrei um script para o imagemagick para fazer isso por Fred Weinhaus. Seus scripts estão disponíveis gratuitamente para uso não comercial, APENAS.

Uso da linha de comando:

USAGE: cartoon [-p pattern] [-n numlevels] [-m method] [-e edgeamount] 
[-b brightness] [-s saturation] infile outfile

USAGE: cartoon [-h or -help]

-p ... pattern ...... segmentation pattern (shape); 0<=integer<=100;
..................... default=70
-n ... numlevels .... number of desired segmentation levels; integer>=2;
..................... default=6
-m ... method ....... edge method; 1 or 2; default=1
-e ... edgeamount ... amount of edges; float>=0; default=4
-b ... brightness ... brightness of cartoon; integer>=0; default=100
-s ... saturation ... saturation of cartoon; integer>=0; default=150

PURPOSE: To create a cartoon-like appearance to an image.

(mais no próprio site). O que o script faz ...

(Optionally) applies a median filter to the image
Reduces the number of colors in the filtered image
Converts the original image to grayscale
(Optionally) applies a median filter to the grayscale image
Applies a gradient edge detector to the grayscale image
Thresholds the edge image to binary
Composites the edge image with the color reduced image

Existem exemplos em seu site, mas eles não estão próximos de seus exemplos. Você provavelmente precisará jogar com as configurações para que ele apareça como são suas imagens.

    
por Rinzwind 27.11.2015 / 15:57