Operações Aritméticas em Imagens

OpenCVBeginner
Pratique Agora

Introdução

Bem-vindo a este tutorial sobre operações aritméticas em imagens usando OpenCV-Python! Neste tutorial, abordaremos adição, subtração e operações bit a bit (bitwise). Ao final deste tutorial, você terá uma sólida compreensão de como manipular imagens usando essas operações básicas.

Adição de Imagens

A adição de imagens é o processo de somar os valores dos pixels de duas imagens. No OpenCV, a função cv2.add() é usada para essa finalidade.

Abrir o Shell Python

Abra o Shell Python no terminal.

python3

Carregar duas imagens

Utilize .imread para ler as imagens desejadas.

import cv2 as cv2
img1 = cv2.imread('image1.jpg')
img2 = cv2.imread('image2.jpg')

Adicionar as imagens

Use .add() para agregar duas imagens que foram lidas no passo anterior.

result = cv2.add(img1, img2)

Salvar o resultado

Escreva o resultado.

cv2.imwrite('Image_Addition.jpg', result)

Exemplo

A imagem gerada Image_Addition.jpg se parece com:

Exemplo do resultado da adição de imagens

Mistura de Imagens (Blending)

Esta também é uma adição de imagem, mas diferentes pesos são dados às imagens para dar uma sensação de mistura ou transparência. As imagens são adicionadas de acordo com a equação abaixo:

Diagrama da equação de mistura de imagens

cv.addWeighted() aplica esta equação à imagem.

Adicionar as imagens

Use .addWeighted() para aplicar a equação às imagens que foram lidas no passo anterior.

result = cv2.addWeighted(img1,0.7,img2,0.3,0)

Salvar o resultado

Escreva o resultado.

cv2.imwrite('Image_Blending.jpg', result)

Exemplo

A imagem gerada Image_Blending.jpg se parece com:

Resultado da imagem misturada

Subtração de Imagens

A subtração de imagens é usada para encontrar a diferença entre duas imagens. Ela subtrai os valores dos pixels de uma imagem de outra. No OpenCV, você pode usar a função cv2.subtract().

Subtrair as imagens

Use .subtract() para subtrair os valores dos pixels da imagem1 da imagem2.

result = cv2.subtract(img1, img2)

Salvar o resultado

Escreva o resultado.

cv2.imwrite('Image_Subtraction.jpg', result)

Exemplo

A imagem gerada Image_Subtraction.jpg se parece com:

Exemplo do resultado da subtração de imagens

Operações Bitwise

As operações bitwise são usadas para manipular os bits individuais dos valores dos pixels. OpenCV fornece funções como cv2.bitwise_and(), cv2.bitwise_or(), cv2.bitwise_xor() e cv2.bitwise_not() para realizar operações bitwise.

Vamos ver um exemplo de cada operação:

Bitwise AND

Use .bitwise_and() para calcular o AND bitwise dos bits dos valores dos pixels em duas imagens.

bitwise_and = cv2.bitwise_and(img1, img2)

Bitwise OR

Use .bitwise_or() para calcular o OR bitwise dos bits dos valores dos pixels em duas imagens.

bitwise_or = cv2.bitwise_or(img1, img2)

Bitwise XOR

Use .bitwise_xor() para calcular o XOR bitwise dos bits dos valores dos pixels em duas imagens.

bitwise_xor = cv2.bitwise_xor(img1, img2)

Bitwise NOT

Use .bitwise_not() para calcular o NOT bitwise dos bits dos valores dos pixels em duas imagens.

bitwise_not_img1 = cv2.bitwise_not(img1)

Salvar os resultados

Escreva os resultados.

cv2.imwrite('Bitwise_AND.jpg', bitwise_and)
cv2.imwrite('Bitwise_OR.jpg', bitwise_or)
cv2.imwrite('Bitwise_XOR.jpg', bitwise_xor)
cv2.imwrite('Bitwise_NOT_Image1.jpg', bitwise_not_img1)

Exemplo

A imagem gerada se parece com:

  • AND Bitwise_AND.jpg:
Resultado da operação Bitwise AND
  • OR Bitwise_OR.jpg:
Resultado da operação Bitwise OR
  • XOR Bitwise_XOR.jpg:
Resultado da operação Bitwise XOR
  • NOT Bitwise_NOT_Image1.jpg:
Resultado da operação Bitwise NOT

Resumo

Parabéns! Você agora aprendeu como realizar operações aritméticas em imagens usando OpenCV-Python. Você cobriu adição de imagens, subtração e operações bitwise. Essas operações básicas podem ser muito úteis para tarefas de processamento de imagens, como mesclar imagens, detectar mudanças e mascarar áreas específicas de uma imagem.

Continue praticando e experimentando com diferentes imagens para obter uma melhor compreensão de como essas operações funcionam. Boa sorte e feliz codificação!