Olá a todos.
Tenho trabalhado recentemente no python com a criação e alteração de imagens, coisas como trasnformar em preto e branco, criar o negativo, criar gráficos e manipulações desse tipo. Agora mesmo estava fazendo um código para criar uma imagem de ruido preto e branco, algo bem simples, como aquelas televisões que não dão sinal, mas por algum motivo o código que criei está criando imagens com linhas horizontais como códigos de barra. Consegui fazer o código funcionar de outra forma, mas gostaria de entender o porque de ele não funcionar dessa.
As bibliotecas que estou usando são a PIL (Pillow) para criação de imagens e a tqdm (tqdm) para obter o progresso do código ao decorrer de sua execução.
Uma das imagens geradas pode ser acessada a partir do seguinte link (Não consegui inserir diretamente):
https://1drv.ms/i/s!AgQ6Ql2LZW9thMRVyIUc-7y7aMu_3A?e=9joJFu
Código:
print("$$$ Progama iniciado")
from PIL import Image
from tqdm import tqdm
import random
# Declaração do tamanho dos lados da imagem. Ela é será um quadrado.
imageSqrSize = 512
# Criação do array que define a imagem. O array criado tem o mesmo número de pixels da imagem, sendo "x" arrays menores dentro do array "noise" para representar as linhas e "y" itens dentro dos arrays "noise[xyz]" para representar os pixels de cada linha xyz.
noise = [] #array maior
semiNoise = [] #array menor
for a in range(imageSqrSize😞
semiNoise.append(0)
for b in range(imageSqrSize😞
noise.append(semiNoise)
# Criação de pontos aleatórios em cada item no array
for x in tqdm(range(imageSqrSize), "Criando pontos aleatórios"😞
for y in range(imageSqrSize😞
noise[x][y] = random.randint(0, 1)
# Criação da imagem a partir dos pixels no array
newImage = Image.new("L", (imageSqrSize, imageSqrSize), "black")
for x in tqdm(range(imageSqrSize), "Transcrevendo imagem"😞
for y in range(imageSqrSize😞
if noise[x][y]:
newImage.putpixel((x, y), 255)
# Aqui a imagem é salva. Caso tenha algum problema em salva, tente trocar a localização do arquivo.
newImage.save("Noise.png")
print("$$$ Imagem salva")
print("$$$ Fim do programa")