Maison  >  Article  >  développement back-end  >  Explication détaillée de l'implémentation Python du traitement des masques d'images

Explication détaillée de l'implémentation Python du traitement des masques d'images

coldplay.xixi
coldplay.xixiavant
2020-09-14 13:13:154608parcourir

Explication détaillée de l'implémentation Python du traitement des masques d'images

Recommandations d'apprentissage associées : Tutoriel Python

Masque d'image (masque d'image) : Utiliser images, graphiques ou objets sélectionnés pour bloquer l'image à traiter (partiellement ou complètement) afin de contrôler la zone ou le processus de traitement de l'image. Étant donné que l'image ou l'objet spécifique couvert est appelé masque, lors du traitement d'image, il y a une forte demande pour masquer l'image. Ensuite, je vais le démontrer avec l'image suivante d'un chat et d'un chien que j'ai choisi.

Premier aperçu des rendus :

Explication détaillée de limplémentation Python du traitement des masques dimages
Explication détaillée de limplémentation Python du traitement des masques dimages
Explication détaillée de limplémentation Python du traitement des masques dimages

Implémentation Python Masquer l'image

  • Importer les bibliothèques requises
  • Créer l'image du masque
    • Masque carré
    • Masque circulaire
  • Coudre le masque avec l'image originale
  • Afficher l'image
  • Affichage de l'effet
  • Résumé

Importez les bibliothèques requises

Les ressources de bibliothèque requises cette fois incluent cv2 et numpy, qui peuvent être téléchargées via pip install xxx.

import cv2
import numpy as np复制代码

Créer une image de masque

La création d'un masque dépend de la taille de l'image. Créez votre propre masque en fonction de la taille de l'image. Bien sûr, vous pouvez également choisir le masque vous-même. Les masques que j'ai créés ici sont des masques carrés et des masques circulaires.

Masque carré

Les coordonnées du masque sont [10:170, 50:220].

# 创建掩膜
mask = np.zeros([img.shape[0], img.shape[1]], dtype=np.uint8)
mask[10:170, 50:220] = 255复制代码

Masque circulaire

Coordonnées du masque :
x = 140
y = 100
r = 80

# 创建掩膜
x = 140
y = 100
r = 80
mask = np.zeros(img.shape[:2], dtype=np.uint8)
mask = cv2.circle(mask, (x, y), r, (255, 255, 255), -1)复制代码

Masque et épissage d'image original

La fusion d'images utilise cv2.add pour épisser et fusionner le masque avec l'image d'origine.

image = cv2.add(img, np.zeros(np.shape(img), dtype=np.uint8), mask=mask)复制代码

Afficher l'image

# 展示原图
cv2.imshow("img", img)
# 展示掩膜图片
cv2.imshow("mask", mask)
# 展示添加掩膜效果图片
cv2.imshow("image", image)复制代码

Affichage de l'effet

Image originale :

Explication détaillée de limplémentation Python du traitement des masques dimages

Image du masque carré :

Explication détaillée de limplémentation Python du traitement des masques dimages

Masque carré et image originale fusionnés :

Explication détaillée de limplémentation Python du traitement des masques dimages

Image du masque circulaire :

Explication détaillée de limplémentation Python du traitement des masques dimages

Masque circulaire Fusionner l'image avec l'image originale :

Explication détaillée de limplémentation Python du traitement des masques dimages

Résumé

Le principe du masque d'occlusion est très simple. Tout d'abord, créez une image complètement noire de la même taille que l'image. puis changez les pixels de la zone qui doit être affichée en blanc, et enfin utilisez cv2.add pour superposer l'image et le masque afin d'obtenir un affichage d'occlusion de l'image.

Si vous souhaitez en savoir plus sur la programmation, faites attention à la rubrique Formation php !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer