import cv2
import numpy as np
# Carrega a imagem de fundo
background = cv2.imread('background.jpg')
# Carrega a imagem do objeto a ser sobreposto
# Usar -1 para carregar a imagem com canal de transparência (RGBA)
overlay = cv2.imread('overlay.png', -1)
# Define a posição onde o objeto será colocado
x_offset = 50
y_offset = 50
# Verifica se a imagem foi carregada corretamente
if background is None or overlay is None:
print("Erro: Não foi possível carregar as imagens.")
else:
# Verifica se a imagem overlay possui canal alpha (transparência)
if overlay.shape[2] == 4: # Verifica se possui 4 canais (RGBA)
# Separa o canal alfa
alpha_overlay = overlay[:, :, 3] / 255.0
alpha_background = 1.0 - alpha_overlay
# Sobrepõe a imagem do objeto no fundo
for c in range(0, 3): # Para cada canal de cor (BGR)
background[y_offset:y_offset+overlay.shape[0], x_offset:x_offset+overlay.shape[1], c] = \
(alpha_overlay * overlay[:, :, c] + alpha_background * background[y_offset:y_offset+overlay.shape[0], x_offset:x_offset+overlay.shape[1], c])
# Exibe a imagem resultante
cv2.imshow('Realidade Aumentada', background)
cv2.waitKey(0)
cv2.destroyAllWindows()
else:
print("Erro: A imagem overlay não possui canal alfa (transparência).")