CodeGym /Cursos /Python SELF PT /Combinação e fusão de imagens

Combinação e fusão de imagens

Python SELF PT
Nível 45 , Lição 3
Disponível

1. Preparação

Carregando imagens para combinação

Antes de trabalhar com várias imagens, elas precisam ser carregadas. O Pillow permite trabalhar com a maioria dos formatos populares, como JPEG, PNG, BMP e GIF.

Python

from PIL import Image

# Carregando imagens
background = Image.open("background.jpg")
foreground = Image.open("foreground.png")

Aqui estamos carregando duas imagens: uma de fundo e outra para sobreposição. É importante lembrar que, para alguns métodos, ambas as imagens devem ter o mesmo tamanho.

2. Sobrepondo imagens

Método paste()

O método paste() permite inserir uma imagem sobre outra em coordenadas específicas. Esse método é útil se você quiser sobrepor uma imagem em outra ou criar um efeito de colagem.

Python

# Redimensionar o plano de frente para corresponder ao tamanho do plano de fundo
foreground = foreground.resize(background.size)

# Sobrepor a imagem no plano de fundo
background.paste(foreground, (50, 50))  # Insira o foreground nas coordenadas (50, 50)

# Salvando o resultado
background.save("pasted_image.jpg")

Aqui a imagem foreground foi inserida sobre background com o ponto inicial de inserção em (50, 50). Se o plano frontal exceder os limites do plano de fundo, ele será cortado parcialmente.

Uso de máscara com paste()

O método paste() também suporta máscaras, que permitem inserir uma imagem parcialmente, mantendo suas áreas transparentes. A máscara deve estar no modo L (tons de cinza) ou RGBA.

Python

# Criando máscara
mask = Image.open("mask.png").convert("L")  # Converte máscara para tons de cinza

# Inserindo a imagem com máscara
background.paste(foreground, (50, 50), mask=mask)
background.save("pasted_with_mask.jpg")

A máscara mask.png define quais partes da imagem foreground serão visíveis, e permite sobrepor uma imagem a outra suavemente.

3. Mistura de imagens

Método blend()

O método blend() permite misturar duas imagens com uma opacidade definida. Esse método cria um novo objeto de imagem que é a mistura dos dois objetos de imagem originais. Para usar o blend(), ambas as imagens devem ser do mesmo tamanho.

Mistura simples de imagens

Python

# Redimensionando imagens para o mesmo tamanho
background = background.resize((500, 500))
foreground = foreground.resize((500, 500))

# Mistura de imagens com fator de opacidade
blended_image = Image.blend(background, foreground, alpha=0.5)

# Salvando o resultado
blended_image.save("blended_image.jpg")

O parâmetro alpha define o grau de transparência da imagem foreground. Se alpha = 0.5, as imagens são misturadas uniformemente. Um valor de alpha = 0.0 torna a imagem foreground completamente transparente (apenas o fundo é visível), enquanto alpha = 1.0 faz a imagem de fundo completamente transparente (apenas o plano frontal é visível).

4. Composição de imagens com máscara

Método composite()

O método composite() permite combinar duas imagens com base em uma máscara, definindo quais partes de cada imagem serão visíveis. Esse método é muito útil para criar composições complexas e alinhar imagens com exatidão.

Exemplo: Usando composite() para combinar imagens

Python

# Certifique-se de que ambas as imagens e a máscara têm o mesmo tamanho
background = background.resize((500, 500))
foreground = foreground.resize((500, 500))
mask = mask.resize((500, 500))

# Criando composição com máscara
composited_image = Image.composite(foreground, background, mask)

# Salvando imagem
composited_image.save("composited_image.jpg")

A máscara define quais partes de foreground e background serão visíveis na imagem final. Áreas brancas da máscara tornam o foreground visível, enquanto áreas pretas tornam visível o background.

5. Exemplos

Exemplo de uso combinado dos métodos paste(), blend() e composite()

Agora vamos combinar esses métodos para criar uma composição mais complexa. Suponha que temos um fundo, uma imagem semitransparente e uma máscara.

Python

from PIL import Image

# Carregando imagens
background = Image.open("background.jpg").resize((500, 500))
foreground = Image.open("foreground.png").resize((500, 500))
mask = Image.open("mask.png").convert("L").resize((500, 500))

# 1. Misturando fundo e plano de frente com semitransparência
blended_image = Image.blend(background, foreground, alpha=0.3)

# 2. Sobreposição com máscara na imagem final
final_composite = Image.composite(foreground, blended_image, mask)

# Salvando o resultado final
final_composite.save("final_composition.jpg")

Esse exemplo mostra como aplicar sequencialmente blend() e composite() para criar composições em camadas.

Aplicação prática dos métodos de combinação de imagens

  1. Criação de colagens: O método paste() permite adicionar várias imagens em uma tela, criando colagens e mosaicos.
  2. Efeitos de sobreposição e transparência: O método blend() possibilita criar transições suaves entre imagens, útil para edição de fotos e efeitos.
  3. Composições com máscaras: O método composite() permite controlar exatamente quais partes de cada imagem serão visíveis, criando composições complexas com máscaras.

Comparação entre métodos

Método Descrição Aplicação
paste() Inserir uma imagem sobre outra Colagens, posicionar uma imagem sobre outra
blend() Mistura de duas imagens com opacidade definida Transições suaves e efeitos de sobreposição
composite() Combinação de duas imagens baseada em máscara Composições complexas e sobreposição precisa
1
Tarefa
Python SELF PT, nível 45, lição 3
Bloqueado
Fundamentos da fusão de imagens
Fundamentos da fusão de imagens
2
Tarefa
Python SELF PT, nível 45, lição 3
Bloqueado
Mistura de imagens com transparência
Mistura de imagens com transparência
3
Tarefa
Python SELF PT, nível 45, lição 3
Bloqueado
Composição de imagens com máscara
Composição de imagens com máscara
4
Tarefa
Python SELF PT, nível 45, lição 3
Bloqueado
Criação de um colagem a partir de várias imagens
Criação de um colagem a partir de várias imagens
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION