0
respostas

[Projeto] “Convolução e Padrões Complexos” no script Filtros.ipynb selecionamos uma região da imagem para convoluir com a própria imagem

import numpy as np
import matplotlib.pyplot as plt
from scipy.signal import convolve2d
import cv2

-----------------------------------

1) Carregar imagem (exemplo)

-----------------------------------

img = cv2.imread('imagem_aviao.jpg')
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

-----------------------------------

2) Definir região (pessoa)

boundaries = [y1, y2, x1, x2]

-----------------------------------

boundaries = [180, 230, 195, 215]

y1, y2, x1, x2 = boundaries

-----------------------------------

3) Extrair kernel da própria imagem

-----------------------------------

kernel = img[y1:y2, x1:x2]

Normalizar kernel (opcional)

kernel = kernel - np.mean(kernel)

-----------------------------------

4) Aplicar convolução

-----------------------------------

output = convolve2d(img, kernel, mode='same')

-----------------------------------

5) Plot

-----------------------------------

plt.figure(figsize=(12,4))

plt.subplot(1,3,1)
plt.title("Imagem original")
plt.imshow(img, cmap='gray')

plt.subplot(1,3,2)
plt.title("Kernel (região)")
plt.imshow(kernel, cmap='gray')

plt.subplot(1,3,3)
plt.title("Mapa de ativação")
plt.imshow(output, cmap='hot')

plt.show()