Salut, je suis Ramu. Cette fois, nous allons implémenter la mise en commun Max, qui utilise la valeur maximale de la zone comme valeur représentative, parmi les processus de mise en commun qui divisent l'image en grilles.
Le regroupement, qui a été expliqué la dernière fois, est un processus qui divise une image en une zone de longueur fixe et transforme toutes les valeurs de cette zone en une certaine valeur. En appliquant ce traitement, l'image devient une mosaïque. La mise en commun maximale remplit la zone avec la valeur de pixel maximale de la zone. La seule différence entre la mise en commun moyenne et la mise en commun maximale est d'utiliser la valeur moyenne ou la valeur maximale.
maxPooling.py
import numpy as np
import cv2
import matplotlib.pyplot as plt
def maxPooling(img,k):
dst = img.copy()
w,h,c = img.shape
#Longueur du pixel central aux pixels des deux extrémités
size = k // 2
#Processus de mise en commun
for x in range(size, w, k):
for y in range(size, h, k):
dst[x-size:x+size,y-size:y+size,0] = np.max(img[x-size:x+size,y-size:y+size,0])
dst[x-size:x+size,y-size:y+size,1] = np.max(img[x-size:x+size,y-size:y+size,1])
dst[x-size:x+size,y-size:y+size,2] = np.max(img[x-size:x+size,y-size:y+size,2])
return dst
#Lecture d'image
img = cv2.imread('image.jpg')
#Mise en commun maximale
#Le deuxième argument est la longueur de la zone
img = maxPooling(img,40)
#Enregistrer l'image
cv2.imwrite('result.jpg', img)
#Affichage de l'image
plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
plt.show()
Le côté gauche de l'image est l'image d'entrée, le centre de l'image est la mise en commun moyenne précédente et le côté droit de l'image est l'image de sortie de ce moment. Vous pouvez voir que l'image ressemble à une mosaïque. En outre, l'image entière est plus lumineuse que la mise en commun moyenne car elle utilise la valeur maximale avec une luminosité élevée.
Si vous avez des questions, n'hésitez pas à nous contacter. [Github] de imori_imori (https://github.com/yoyoyo-yo/Gasyori100knock/blob/master/Question_01_10/answers_py/answer_6.py) a la réponse officielle, veuillez donc vérifier cela également. .. De plus, comme python est un débutant, veuillez signaler toute erreur.
Recommended Posts