Image d'entrée (image originale)
L'image de sortie (image après conversion) et la position du visage du chat sont reconnues, et un cercle y est ajouté.
Vous aurez besoin d'un compte Google car vous utiliserez Google Colaboratory.
À partir de ce moment, tout, sauf la préparation des fichiers nécessaires, sera effectué au sein du Colaboratoire.
Tapez ce qui suit dans la première cellule du laboratoire et appuyez sur Maj + Entrée. C'est OK si la version OpenCV (4.1.2 à partir du 17.08.2020) est affichée.
%matplotlib inline #Sortie matplotlib en ligne(Pas un pop-up)À.
import cv2 #Charger opencv
import matplotlib.pyplot as plt #Chargez matplotlib et utilisez pyplot avec le nom plt.
print(cv2.__version__) #Affichez la version d'opencv et vérifiez le chargement.
#production
# 4.1.2
Pour l'instant, cliquez sur le fichier haarcascade_frontalcatface.xml pour reconnaître le visage du chat.
Cliquez avec le bouton droit sur Raw pour enregistrer le fichier.
Écrivez le code suivant dans la deuxième cellule et appuyez sur Maj + Entrée.
from google.colab import files #Utilisez les opérations sur les fichiers de la bibliothèque collaborative.
f = files.upload() #Téléchargez le fichier.
Appuyez sur "Sélectionner un fichier" pour télécharger le fichier.
Le fichier télécharge les deux suivants.
Écrivez le code suivant dans la cellule suivante, appuyez sur Maj + Entrée et exécutez-le, et vérifiez que le nom du fichier téléchargé est sorti (dans cet exemple, le nom de fichier de l'image que vous souhaitez convertir est "IMG_20200808_181512". .jpg ").
!ls #Exécutez la commande système ls pour vérifier si le fichier est téléchargé.
#production
# haarcascade_frontalcatface.xml IMG_20200808_181512.jpg sample_data
Écrivez le code suivant dans une nouvelle cellule et appuyez sur Maj + Entrée pour l'exécuter.
#nom de fichier(IMG_20200808_181512.jpg)Veuillez changer le nom de fichier de l'image que vous avez téléversée.
img = cv2.imread("./IMG_20200808_181512.jpg ") #Chargement des images
show_img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB) #Créez une image avec le format BGR converti au format RVB pour l'affichage.
plt.imshow(show_img) # matplot.Affichez l'image lue à l'aide de lib.
C'est OK si l'image téléchargée est affichée comme indiqué ci-dessous.
Écrivez le code suivant dans une nouvelle cellule et appuyez sur Maj + Entrée pour l'exécuter. Pour plus de détails sur cv2.circle et cv2.putText, voir [Fonction de dessin OpenCV](http://labs.eecs.tottori-u.ac.jp/sd/Member/oyamada/OpenCV/html/py_tutorials/py_gui/py_drawing_functions/ Veuillez vous référer à py_drawing_functions.html) etc.
#Générer un modèle à partir d'un fichier entraîné
face_cascade = cv2.CascadeClassifier('./haarcascade_frontalcatface.xml')
#Générer une image grise
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
#Reconnaissance de visage
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
#Boucle avec résultat de reconnaissance x,y:Rectangle supérieur gauche du visage, w,h:Largeur et hauteur du rectangle de visage
for (x,y,w,h) in faces:
#Tracez un cercle à la position du visage
img = cv2.circle(img,(x+int(w/2),y+int(h/2)),int(max(w/2,h/2)),(0,0,255),12)
#Dessinez une flèche avec des lettres
cv2.putText(img,"<---",(x+w,y+int(h/2)),cv2.FONT_HERSHEY_SIMPLEX,8,(0,0,255),32,cv2.LINE_AA)
#Convertir en RVB pour le dessin
show_img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
#Dessiner le résultat
plt.imshow(show_img)
Si le visage du chat est entouré et a une flèche comme indiqué ci-dessous, cela réussit. Cependant, il y a des moments où le visage ne peut pas être reconnu. Par exemple, sur cette image, le chat à trois poils nous fait face derrière, mais le visage n'est pas reconnaissable.
Veuillez vous référer à des sites tels que Tutoriel OpenCV-Python.
Recommended Posts