Fonctionnement de base d'Opencv

1. Remplissage d'images

Définissez d'abord la fonction d'affichage de l'image :

def cv_show(name, img):
    cv2.imshow(name, img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

Image lue :

img_cat = cv2.imread('cat.jpg')

Définissez la taille du rembourrage de l'image :

top_size, bottom_size, left_size, right_size = (50, 50, 50, 50)

 Ensuite, utilisez la méthode de copie, la méthode de réflexion, la méthode d'emballage extérieur et la méthode constante pour remplir.

Méthode de copie :

# 复制法,复制最边缘像素
replicate = cv2.copyMakeBorder(img_cat, top_size, bottom_size, left_size, right_size, borderType=cv2.BORDER_REPLICATE)

Méthode de réflexion : 

# 反射法,对感兴趣的图像中的像素在两边进行复制
reflect = cv2.copyMakeBorder(img_cat, top_size, bottom_size, left_size, right_size, borderType=cv2.BORDER_REFLECT)

deuxième méthode de réflexion

# 反射法,也就是以最边缘像素为周,对称
reflect101 = cv2.copyMakeBorder(img_cat, top_size, bottom_size, left_size, right_size,
                                borderType=cv2.BORDER_REFLECT_101)

Méthode d'emballage :

# 外包装法
warp = cv2.copyMakeBorder(img_cat, top_size, bottom_size, left_size, right_size, borderType=cv2.BORDER_WRAP)

Méthode constante :

# 常量法,常数值填充,此处填充灰色
constant = cv2.copyMakeBorder(img_cat, top_size, bottom_size, left_size, right_size, borderType=cv2.BORDER_CONSTANT,
                              value=0)

Les résultats de sortie sont comparés comme suit :

 

 2. Opération morphologique

Première lecture dans l'image brute :

pie = cv2.imread('pie.jfif')

 

 

Définissez le noyau de convolution :

kernel = np.ones((10, 10), np.uint8)

Fonction corrosion :

dige_erosion = cv2.erode(pie, kernel=kernel, iterations=1)

La sortie est la suivante :

 

Fonction de gonflage :

dige_dilate = cv2.dilate(pie, kernel=kernel, iterations=1)

La sortie est la suivante :

Opération ouverte : corroder d'abord, puis dilater

opening = cv2.morphologyEx(pie, cv2.MORPH_OPEN, kernel=kernel)

La sortie est la suivante :

Opération fermée : se dilater d'abord, puis se corroder

closing = cv2.morphologyEx(pie, cv2.MORPH_CLOSE, kernel=kernel)

La sortie est la suivante :

 

Dégradé : Dilatation-Érosion

gradient = cv2.morphologyEx(pie, cv2.MORPH_GRADIENT, kernel)

La sortie est la suivante :

Chapeau haut de forme : entrée d'origine - résultat ouvert

tophat = cv2.morphologyEx(pie, cv2.MORPH_TOPHAT, kernel)

La sortie est la suivante :

Black Hat : opération fermée - entrée brute

blackhat = cv2.morphologyEx(pie, cv2.MORPH_BLACKHAT, kernel)

La sortie est la suivante :

 3. Lissage des images

Passer en image brute :

Mean Filtering : une simple opération de convolution moyenne

blur = cv2.blur(cat, (3, 3))

 Filtrage de boîte : fondamentalement identique à la valeur moyenne, vous pouvez choisir la normalisation, normaliser lorsque la normalisation est vraie, identique au filtre de valeur moyenne

box = cv2.boxFilter(cat, -1, (3, 3), normalize=True)

 

 Lorsque normalize est False, la normalisation n'est pas effectuée et le traitement de la valeur moyenne n'est pas effectué, et 255 est pris après le franchissement de la limite

box = cv2.boxFilter(cat, -1, (3, 3), normalize=False)

 Filtrage gaussien : la valeur dans le noyau de convolution du flou gaussien satisfait la distribution gaussienne, ce qui équivaut à accorder plus d'attention au milieu

gaussian = cv2.GaussianBlur(cat, (3, 3), 1)

Filtrage médian : équivalent à remplacer par médian

median = cv2.medianBlur(cat, 3)

 

Je suppose que tu aimes

Origine blog.csdn.net/m0_51864191/article/details/128243407
conseillé
Classement