Algoritmo de escala de cinza
Publicado por Renato Alencar (última atualização em 20/06/2014)
[ Hits: 6.618 ]
Download escala-de-cinza.tar.gz
Algoritmo de escala de cinza baseado na luminosidade do pixel pela visão humana.
#!/usr/bin/python # -*- coding: utf-8 -*- # Algoritmo de escala de cinza. # # O algoritmo se baseia na luminosidade de cada # pixel, pela formula: # L = R*0.3 + B*0.59 + G*0.11 # Dado o resultado o algoritmo salva o pixel na forma # LLL. # # Primeiro convertemos a imagem em JPEG para PPM (formato # simples e sem compressão, sendo mais fácil a manipulação), # então obtemos um buffer dos pixels, na classe Image. # import image import sys import os if len(sys.argv) != 3: print 'Uso: %s IMAGEM-ENTRADA IMAGEM-SAIDA' % sys.argv[0] sys.exit(1) fn = sys.argv[1] out = sys.argv[2] # Converte para PPM os.system('jpegtopnm "%s" > /tmp/%d.ppm' % (fn, os.getpid())) # Carrega a imagem img = image.Image() img.loadPPM('/tmp/%d.ppm' % os.getpid()) # Converte cada pixel em um pixel cinza baseado em sua luminosidade for i in range(img.width): for j in range(img.height): pix = image.Pix(img.getPixel(i, j)) lum = int(pix[0]*0.3 + pix[1]*0.59 + pix[2]*0.11) img.setPixel(i, j, image.Pix((lum, lum, lum))) # Salva a imagem img.savePPM('/tmp/%d.ppm' % os.getpid()) # Converte de volta os.system('ppmtojpeg /tmp/%d.ppm > "%s"' % (os.getpid(), out)) os.remove('/tmp/%d.ppm' % os.getpid())
Combinações de letras, números e muito mais
LISCH e EISCH - Método de resolução de colisão
Inteligência artificial com Python e Shell Script
Nenhum coment�rio foi encontrado.
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Visualizar arquivos em formato markdown (ex.: README.md) pelo terminal
Dando - teoricamente - um gás no Gnome-Shell do Arch Linux
Como instalar o Google Cloud CLI no Ubuntu/Debian
Mantenha seu Sistema Leve e Rápido com a Limpeza do APT!
Procurando vídeos de YouTube pelo terminal e assistindo via mpv (2025)
O que você está ouvindo agora? [2] (183)
Gestão de Ambiente em uma rede Linux (2)
Ajuda Pra Melhoria do NFTABLES. (7)
Zorin OS - Virtual Box não consigo abrir maquinas virtuais (4)