Carregando
0x00Lição 1 de 16

Representar uma imagem como dados

Veja que cada imagem é uma grade de números e leia seu tamanho e pixels.

15 min Questionário com 7 perguntas 2 exercícios de código
Ao final desta lição, você saberá
  • 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).

image_size.py
1image = [
2    [0, 40, 255],
3    [20, 180, 255],
4]
5print(len(image), len(image[0]))
Saída
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 XP

Pintor 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.
Pincel:
Clique nos pixels para pintá-los
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.

Exercício 1

Meça uma pequena imagem

+25 XP

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
main.py
Carregando editor…

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.

Exercício 2

Encontre o pixel mais brilhante

+25 XP

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
main.py
Carregando editor…

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…