Salut, je suis Ramu. Cette fois, même dans le processus de mise en commun, qui est une méthode de division de l'image en grilles, nous mettrons en œuvre la mise en commun moyenne avec la valeur moyenne de la zone comme valeur représentative.
La mise en commun consiste à diviser une image en une zone de longueur fixe et à donner à toutes les valeurs de cette zone une certaine valeur. En appliquant ce traitement, l'image devient une mosaïque. Dans le regroupement moyen, la zone est remplie avec la valeur moyenne des valeurs de pixel dans la zone.
La mise en commun moyenne est définie par la formule suivante:
R est une zone, par exemple, si c'est une zone de 8 x 8 pixels
v = \frac{1}{|R|}\sum_{i \in R}v_i
avePooling.py
import numpy as np
import cv2
import matplotlib.pyplot as plt
def avePooling(img,k):
dst = img.copy()
w,h,c = img.shape
#Longueur du pixel central aux pixels des deux extrémités
size = k // 2
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.mean(img[x-size:x+size,y-size:y+size,0])
dst[x-size:x+size,y-size:y+size,1] = np.mean(img[x-size:x+size,y-size:y+size,1])
dst[x-size:x+size,y-size:y+size,2] = np.mean(img[x-size:x+size,y-size:y+size,2])
return dst
#Lecture d'image
img = cv2.imread('image.jpg')
#Mise en commun moyenne
#k est la taille de la zone
img = avePooling(img,40)
#Enregistrer l'image
cv2.imwrite('result.jpg', img)
#Affichage de l'image
plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
plt.show()
L'image de gauche est l'image d'entrée et l'image de droite est l'image de sortie. Vous pouvez voir que l'image ressemble à une mosaïque. Cela ressemble à une chose sombre, mais c'est du sashimi.
La version complète de l'image de Lena, qui est souvent utilisée dans le traitement d'image, peut également être publiée sur Qiita si un traitement de mise en commun moyen est appliqué.
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