Início > Programação, Visao Computacional > Computação Gráfica Python em ação

Computação Gráfica Python em ação

Estava eu deitado sem nada para fazer !!

A parte mais complicada foi alinhar os pixels na tela.

Funciona da seguinte maneira abrimos uma imagem capturando cada pixel dela para depois converter em ascii, o RGB de retorno é substituido por um caractere após a média…

Resultado da brincadeira !!

Imagem Original

Convertendo para Ascii

##############################################################

Imagem Original

Convertendo para ascii

Source para quem gosta de brincar:

###Eng Eder de souza
##03/02/2010
from PIL import Image
import sys

arquivo=sys.argv[1]

img = Image.open(arquivo)

if img.size[0] > 80:
   img.thumbnail((89,89))

cont = 1

for row in range(img.size[1]):

    for col in range(img.size[0]):
        pixel = img.getpixel((col,row))
        if type(pixel) == int:
           r = pixel
           g = pixel
           b = pixel
        else:
           r,g,b = pixel
        color = (r + g + b) / 3

        if cont < img.size[0]:

     if color < 19:
               print(‘&’),
          elif color < 50:
               print(‘8’),
          elif color < 75:
               print(‘0’),
          elif color < 100:
               print(‘$’),
          elif color < 130:
               print(‘2’),
          elif color < 165:
               print(‘1’),
          elif color < 180:
               print(‘|’),
          elif color < 200:
               print(‘;’),
          elif color < 218:
               print(‘:’),
          elif color < 229:
               print(“‘”),
          elif color <= 255:
               print(‘ ‘),
                cont = cont + 1
        else:
     if color < 19:
                        print(‘&’),
                elif color < 50:
                        print(‘8’),
                elif color < 75:
                        print(‘0’),
                elif color < 100:
                        print(‘$’),
                elif color < 130:
                        print(‘2’),
                elif color < 165:
                        print(‘1’),
                elif color < 180:
                        print(‘|’),
                elif color < 200:
                        print(‘;’),
                elif color < 218:
                        print(‘:’),
                elif color < 229:
                        print(“‘”),
                elif color <= 255:
                        print(‘ ‘),
                print
                cont = 1

Até

  1. j u n i o u
    fevereiro 4, 2010 às 7:51 pm

    seu locooooo huaaaaaaaa!
    Muito bom. =)

  2. carlos
    maio 11, 2011 às 1:03 pm

    primeiramente gostaria de parabenizar pelo codigo, mt bom mesmo.
    estou tendo problema para rodar o codigo pois apresenta um erro na
    “arquivo=sys.argv[1]” onde ele nao aceita o o valor 1 do argv[1].
    quando coloco o valor pra zero ele nao me retorna os caracteres como deveiria
    vc poderia me ajudar?
    desde ja agradeço…

    • ederwander
      maio 12, 2011 às 11:37 am

      Olá Carlos !

      O argv[1] lhe retorna o nome do arquivo que você está passando como parametro!
      O argv[0] lhe retorna o nome do arquivo .py que vc esta executando!

      Se você estiver executando este programa em windows vai precisar diminuir o tamanho da imagem a ser mostrado, pois a tela do DOS é muito pequena

      Para isso altere as duas linhas para

      if img.size[0] > 40:
      img.thumbnail((40,40))

      Veja como fica :

      Qualquer coisa informe o erro que vc esta pegando!

      Eng Eder de Souza

  1. No trackbacks yet.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: