J'ai ajouté Maki Horikita et Kanna Hashimoto et divisé par 2 avec python

【environnement】

windows8.1  python2.7  opencv3

[Structure des dossiers]

horikita_hasimoto | --- joyu (dossier d'image tiré du net)      |  |---hasimoto.jpg      |  |---horikita.jpg | --- joyu_face (dossier d'image de visage extrait par le programme) | --- haarcascade_frontalface_alt.xml (fichier cascade) | --- tashite_nidewaru.py (un programme qui divise par 2) | --- kao_toridasi.py (programme pour extraire le visage)

[Préparation]

Je vais prendre des images de Maki Horikita et Kanna Hashimoto sur le net. J'ai utilisé l'image suivante.  horikita.jpg hasimoto.jpg

[Méthode d'exécution du programme]

kao_toridasi.py


# -*- coding: utf-8 -*-

import cv2
import os
import glob

#Substitution du chemin du dossier où se trouve le programme
current_dir = os.getcwd()

#Liste toutes les images du dossier joyu
joyu_list = glob.glob(current_dir + "\\joyu\\*") 

#Fichier en cascade
cascade_path = "haarcascade_frontalface_alt.xml"

for joyu in joyu_list:

    #Lecture de fichier
    image = cv2.imread(joyu)
    
    if(image is None):
	    pass
	    continue

    #Conversion de l'échelle de gris
    image_gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

    #Acquérir la quantité de caractéristiques du classificateur en cascade
    cascade = cv2.CascadeClassifier(cascade_path)

    #Effectuer la reconnaissance faciale
    facerect = cascade.detectMultiScale(image_gray, scaleFactor=1.2, minNeighbors=2, minSize=(10, 10))

    for rect in facerect:
        #Découpez seulement le visage et enregistrez
        x = rect[0]
        y = rect[1]
        width = rect[2]
        height = rect[3]
        dst = image[y:y+height, x:x+width]
        resize_image = cv2.resize(dst,(256,256))
        new_image_path = current_dir + '\\joyu_face\\' + str(i) + '.jpg'
        cv2.imwrite(new_image_path, resize_image)
        i += 1

Lorsque vous exécutez le programme ci-dessus, l'image du visage sera enregistrée dans joyu_face. Veuillez changer le nom de l'image en horikita.jpg et hasimoto.jpg.

tashite_nidewaru.py


# -*- coding: utf-8 -*-

import cv2
import os

current_dir = os.getcwd()

image_path = current_dir + "\\joyu_face\\"
#Lecture de fichier
horikita = cv2.imread(image_path + "\\horikita.jpg ")
hasimoto = cv2.imread(image_path + "\\hasimoto.jpg ")

#Conversion de l'échelle de gris
horikita_gray = cv2.cvtColor(horikita, cv2.COLOR_BGR2GRAY)
hasimoto_gray = cv2.cvtColor(hasimoto, cv2.COLOR_BGR2GRAY)

#Dans l'état par défaut, l'image semble assez effrayante, donc
#J'ai essayé 4 types de couleurs
for i in xrange(len(horikita_gray)):
    for j in xrange(len(horikita_gray[0])):
        if horikita_gray[i][j] >= 192:
            horikita_gray[i][j] = 192
        elif horikita_gray[i][j] >= 128:
            horikita_gray[i][j] = 128
        elif horikita_gray[i][j] >= 64:
            horikita_gray[i][j] = 64
        else:
            horikita_gray[i][j] = 0
            
for i in xrange(len(hasimoto_gray)):
    for j in xrange(len(hasimoto_gray[0])):
        if hasimoto_gray[i][j] >= 192:
            hasimoto_gray[i][j] = 192
        elif hasimoto_gray[i][j] >= 128:
            hasimoto_gray[i][j] = 128
        elif hasimoto_gray[i][j] >= 64:
            hasimoto_gray[i][j] = 64
        else:
            hasimoto_gray[i][j] = 0
 
horikita_hasimoto = horikita_gray / 2 + hasimoto_gray / 2

for i in xrange(len(horikita_hasimoto)):
    for j in xrange(len(horikita_hasimoto[0])):
        if horikita_hasimoto[i][j] >= 192:
            horikita_hasimoto[i][j] = 192
        elif horikita_hasimoto[i][j] >= 128:
            horikita_hasimoto[i][j] = 128
        elif horikita_hasimoto[i][j] >= 64:
            horikita_hasimoto[i][j] = 64
        else:
            horikita_hasimoto[i][j] = 0

#Enregistrer l'image
new_image_path = current_dir + '\\horikita_hasimoto.jpg'
cv2.imwrite(new_image_path, horikita_hasimoto)

new_image_path = current_dir + '\\horikita.jpg'
cv2.imwrite(new_image_path, horikita_gray)

new_image_path = current_dir + '\\hasimoto.jpg'
cv2.imwrite(new_image_path, hasimoto_gray)

【résultat】

horikita.jpg hasimoto.jpg

Image d'ajout et de division par 2 horikita_hasimoto.jpg

[Impression]

Je l'ai d'abord essayé en couleur, mais cela s'est avéré effrayant. Cependant, je ne pense pas que ce soit beau même en noir et blanc ... (; 1_1) Il y aura probablement de nombreuses améliorations.

Recommended Posts

J'ai ajouté Maki Horikita et Kanna Hashimoto et divisé par 2 avec python
J'ai joué avec PyQt5 et Python3
J'ai essayé de collecter automatiquement des images de Kanna Hashimoto avec Python! !!
J'ai installé et utilisé Numba avec Python3.5
Organisez les données séparées par dossier avec Python
J'ai essayé la différenciation jacobienne et partielle avec python
J'ai essayé la synthèse de fonctions et le curry avec python
Je veux gérer l'optimisation avec python et cplex
3 choses que j'ai remarquées en analysant les abonnés Twitter avec Python
J'ai créé un graphique à barres empilées avec matplotlib de Python et ajouté une étiquette de données
J'ai essayé de faire LINE BOT avec Python et Heroku
J'ai essayé de mettre en œuvre le co-filtrage (recommandation) avec redis et python
J'ai essayé la gestion du suivi avec l'API Twitter et Python (facile)
J'ai essayé de créer une interface graphique à trois yeux côte à côte avec Python et Tkinter
Cette fois, j'ai appris python III et IV avec Prorate
J'ai essayé fp-growth avec python
Programmation avec Python et Tkinter
J'ai essayé de gratter avec Python
Chiffrement et déchiffrement avec Python
Python et matériel - Utilisation de RS232C avec Python -
J'ai fait un blackjack avec du python!
J'ai comparé Java et Python!
python avec pyenv et venv
J'ai essayé gRPC avec Python
J'ai essayé de gratter avec du python
J'ai fait un blackjack avec Python.
J'ai créé wordcloud avec Python.
Fonctionne avec Python et R
J'ai fait un circuit simple avec Python (AND, OR, NOR, etc.)
tkinter n'a pas pu être utilisé avec python installé par pyenv de anyenv
Je veux résoudre APG4b avec Python (seulement 4.01 et 4.04 au chapitre 4)
[Commerce système] J'ai essayé de jouer avec décomposer l'oscillateur stochastique avec python ♬
J'ai créé un formulaire de tweet Nyanko avec Python, Flask et Heroku
J'ai essayé de faire un processus d'exécution périodique avec Selenium et Python
J'ai essayé de détecter facilement les points de repère du visage avec python et dlib
Communiquez avec FX-5204PS avec Python et PyUSB
Briller la vie avec Python et OpenCV
Installez Python 2.7.9 et Python 3.4.x avec pip.
Réseau neuronal avec OpenCV 3 et Python 3
Modulation et démodulation AM avec python
Scraping avec Node, Ruby et Python
pyenv-vertualenv n'installe pas correctement la série python3
J'ai essayé webScraping avec python.
Grattage avec Python et belle soupe
J'ai fait une loterie avec Python.
J'ai envoyé un SMS avec Python
Encodage et décodage JSON avec python
Introduction à Hadoop et MapReduce avec Python
[GUI en Python] PyQt5-Glisser-déposer-
Lire et écrire NetCDF avec Python
J'ai aimé le tweet avec python. ..
Lire et écrire du CSV avec Python
Intégration multiple avec Python et Sympy
Je veux déboguer avec Python
J'ai essayé d'exécuter prolog avec python 3.8.2.
Coexistence de Python2 et 3 avec CircleCI (1.0)
J'ai créé un démon avec Python
J'ai essayé la communication SMTP avec Python