Tamanho de fonte
Alto contraste
Altura de linha

RGB e Mescla de Imagens: Entendendo e Aplicando em Python com OpenCV

Avatar de Ana Maria Gomes Ana Maria Gomes
3 minutos de leitura 8 meses atrás

A manipulação de cores e a mescla de imagens são técnicas fundamentais no processamento de imagens digitais. Neste tutorial, vamos explorar o conceito de RGB e como realizar a mescla de imagens utilizando a biblioteca OpenCV em Python.

O que é RGB?

RGB é uma sigla para Red (Vermelho), Green (Verde) e Blue (Azul), que são as cores primárias da luz. Em dispositivos digitais como monitores e câmeras, as cores são representadas pela combinação dessas três cores básicas. Cada cor é representada por um valor que varia de 0 a 255, onde 0 significa ausência da cor e 255 a presença total da cor.

Cores RGB (red, green, blue)

Representação de Cores

Podemos fazer a representação de cores em dispositivos digitais de diferentes maneiras, como:

  • Escala de 0 a 1 para cada cor.
  • Notação hexadecimal, variando de 00 a FF.
  • Escala de 0 a 255 para cada cor.

Por exemplo, podemos representar a cor vermelha pura como (255, 0, 0) em RGB, onde há presença total de vermelho e ausência de verde e azul.

representação do vermelho no RGB

Mescla de Imagens com OpenCV

A mescla de imagens, ou blending, é o processo de combinar duas ou mais imagens em uma única imagem. Vamos ver como realizar essa técnica com OpenCV.

Carregando e Separando Canais de Cor

Primeiro, carregamos a imagem e separamos os canais de cor:

import cv2

# Carregar a imagem
imagem = cv2.imread('caminho_para_imagem.jpg')

# Separar os canais de cor
canal_azul, canal_verde, canal_vermelho = cv2.split(imagem)

Mesclando Imagens

Para mesclar imagens, utilizamos a função cv2.merge():

# Mesclar canais de cor
imagem_mesclada = cv2.merge((canal_azul, canal_verde, canal_vermelho))

Invertendo Canais de Cor

Podemos inverter os canais para alterar as cores da imagem:

# Inverter canais de cor
imagem_invertida = cv2.merge((canal_vermelho, canal_verde, canal_azul))

Visualizando a Imagem

Para visualizar a imagem resultante, utilizamos:

cv2.imshow('Imagem Mesclada', imagem_mesclada)
cv2.waitKey(0)
cv2.destroyAllWindows()

Para visualizar cada canal de imagem individualmente:

# Criamos uma tela branca utilizando as dimensões da nossa imagem lida
blank = np.zeros(img.shape[:2], dtype='uint8')

# Abrimos as imagens uma a uma em seus respectivos canais, mesclando com as matrizes de zeros 
blue = cv2.merge([canal_azul,blank,blank])
green = cv2.merge([blank,canal_verde,blank])
red = cv2.merge([blank,blank,canal_vermelho])

#visualizamos
cv2.imshow('Azul', blue)
cv2.imshow('Verde', green)
cv2.imshow('Vermelho', red)
imagem com canais separados

Exemplo Prático: Mesclando uma Maçã e um Toca-discos

Vamos aplicar o que aprendemos em um exemplo prático, mesclando uma imagem de uma maçã com a de um toca-discos.

# Carregar as imagens
maca = cv2.imread('maca.jpg')
toca_discos = cv2.imread('toca_discos.jpg')

# Mesclar as imagens
imagem_final = cv2.addWeighted(maca, 0.5, toca_discos, 0.5, 0)

# Exibir a imagem mesclada
cv2.imshow('Mescla de Maçã e Toca-discos', imagem_final)
cv2.waitKey(0)
cv2.destroyAllWindows()

Neste exemplo, usamos a função cv2.addWeighted() para mesclar as imagens com pesos iguais, resultando em uma combinação equilibrada das duas imagens.

mesclagem de vitrola e maçã

Conclusão

Entender o modelo de cores RGB e como realizar a mescla de imagens são habilidades essenciais para quem trabalha com processamento de imagens. Com a biblioteca OpenCV em Python, essas tarefas se tornam acessíveis e podem ser aplicadas em diversos projetos de visão computacional. Experimente com diferentes combinações de cores e imagens para explorar as possibilidades criativas que essa técnica oferece.

Imagem de um notebook

Cursos de programação gratuitos com certificado

Aprenda a programar e desenvolva soluções para o seu trabalho com Python para alcançar novas oportunidades profissionais. Aqui na Asimov você encontra:

  • Conteúdos gratuitos
  • Projetos práticos
  • Certificados
  • +20 mil alunos e comunidade exclusiva
  • Materiais didáticos e download de código
Inicie agora

Comentários

Comentar
Faça parte da discussão Crie sua conta gratuita e compartilhe
sua opinião nos comentários
Entre para a Asimov