Representar uma imagem como dados
Veja que cada imagem é uma grade de números e leia seu tamanho e pixels.
- Descreva uma imagem em tons de cinza como uma grade de valores de pixel
- Leia a altura, largura e pixels individuais de uma imagem em Python
- Estime quantos dados uma imagem contém
A visão computacional (CV) cria sistemas que obtêm informações úteis de imagens e vídeos: desbloquear um telefone com o rosto, ler um cheque, detectar um tumor em um exame, manter um carro na faixa, encontrar fotos de “praia” em sua galeria.
Tudo começa com um fato: para um computador, uma imagem é apenas números em uma grade. Cada quadrado da grade é um pixel. Em uma imagem em tons de cinza, cada pixel contém um valor de brilho - no formato comum de 8 bits, de 0 (preto) a 255 (branco).
1image = [
2 [0, 40, 255],
3 [20, 180, 255],
4]
5print(len(image), len(image[0]))2 3
Uma lista de linhas: len(image) é a altura (número de linhas) e len(image[0]) a largura (pixels por linha). image[row][column] lê um pixel.
As imagens são grades de números
Experimente
Até 15 XPPintor de pixels
Escolha um brilho e clique nos pixels para pintá-los. A lista Python à direita é a mesma imagem – observe-a mudar conforme você pinta.
- Você pode dar um nariz ao rosto? Quais números mudam?
- Desative Mostrar valores de pixel: ainda são exatamente os mesmos dados.
image = [
[0, 0, 255, 255, 255, 255, 0, 0],
[0, 255, 0, 0, 0, 0, 255, 0],
[255, 0, 192, 0, 0, 192, 0, 255],
[255, 0, 0, 0, 0, 0, 0, 255],
[255, 0, 128, 0, 0, 128, 0, 255],
[255, 0, 0, 128, 128, 0, 0, 255],
[0, 255, 0, 0, 0, 0, 255, 0],
[0, 0, 255, 255, 255, 255, 0, 0],
]Qual o tamanho de uma imagem?
Uma foto Full HD tem 1920 pixels de largura e 1080 pixels de altura: mais de dois milhões de pixels. Uma imagem colorida armazena 3 valores por pixel (vermelho, verde, azul), de modo que um quadro contém mais de seis milhões de números – e um vídeo reproduz 30 deles a cada segundo. É por isso que os modelos de visão precisam de tanta computação e é por isso que as imagens são frequentemente reduzidas antes do processamento.
Principais conclusões
Uma imagem é uma grade de pixels; um pixel em escala de cinza é um número de 0 (preto) a 255 (branco).
Altura = número de linhas, largura = pixels por linha; leia um pixel com
image[row][column].As imagens contêm muitos números: altura × largura × canais.
Quiz da aula
7 perguntas · aprovação com 5 acertos · até 50 XP
Ao passar, você conclui a aula e mantém sua sequência. As perguntas erradas voltarão em sessões de revisão.
Pratique: aplique visão computacional com Python
Use pequenas matrizes de pixels para explorar conceitos de visão, execute seu código com imagens de exemplo e relacione cada resultado à ideia maior de visão computacional.
Meça uma pequena imagem
Leia uma lista JSON 2D de valores de pixels em tons de cinza. Imprima sua altura e largura como height width. A imagem tem pelo menos uma linha.
- Dois por três
- Três por um
O Python é executado em um ambiente isolado no navegador, com limite de 60 segundos. O runtime é carregado pelo CDN do Pyodide; seu código permanece neste navegador.
Encontre o pixel mais brilhante
Leia uma imagem JSON em tons de cinza. Imprima o maior valor de brilho e sua posição como value row column. Se houver empate, imprima a primeira posição, percorrendo as linhas de cima para baixo e as colunas da esquerda para a direita.
- Um ponto brilhante
- Uma gravata
O Python é executado em um ambiente isolado no navegador, com limite de 60 segundos. O runtime é carregado pelo CDN do Pyodide; seu código permanece neste navegador.
Dúvidas sobre esta lição
Travou em algum ponto? Pergunte. Descobriu algo? Compartilhe. Explicar também é uma ótima forma de aprender.
Carregando publicações…