Ich habe Maki Horikita und Kanna Hashimoto hinzugefügt und durch 2 durch Python geteilt

【Umgebung】

windows8.1  python2.7  opencv3

[Ordnerstruktur]

horikita_hasimoto | --- joyu (Bildordner aus dem Netz)      |  |---hasimoto.jpg      |  |---horikita.jpg | --- joyu_face (Gesichtsbildordner vom Programm extrahiert) | --- haarcascade_frontalface_alt.xml (Kaskadendatei) | --- tashite_nidewaru.py (ein Programm, das durch 2 geteilt wird) | --- kao_toridasi.py (Programm zum Extrahieren des Gesichts)

[Vorbereitung]

Ich werde Bilder von Maki Horikita und Kanna Hashimoto aus dem Netz machen. Ich habe das folgende Bild verwendet.  horikita.jpg hasimoto.jpg

[Programmausführungsmethode]

kao_toridasi.py


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

import cv2
import os
import glob

#Ersetzen des Ordnerpfads, in dem sich das Programm befindet
current_dir = os.getcwd()

#Listen Sie alle Bilder aus dem Joyu-Ordner auf
joyu_list = glob.glob(current_dir + "\\joyu\\*") 

#Kaskadendatei
cascade_path = "haarcascade_frontalface_alt.xml"

for joyu in joyu_list:

    #Datei lesen
    image = cv2.imread(joyu)
    
    if(image is None):
	    pass
	    continue

    #Graustufenumwandlung
    image_gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

    #Ermitteln Sie die Merkmalsmenge des Kaskadenklassifikators
    cascade = cv2.CascadeClassifier(cascade_path)

    #Gesichtserkennung durchführen
    facerect = cascade.detectMultiScale(image_gray, scaleFactor=1.2, minNeighbors=2, minSize=(10, 10))

    for rect in facerect:
        #Schneiden Sie nur das Gesicht aus und speichern Sie
        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

Wenn Sie das obige Programm ausführen, wird das Gesichtsbild in joyu_face gespeichert. Bitte ändern Sie den Bildnamen in horikita.jpg und hasimoto.jpg.

tashite_nidewaru.py


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

import cv2
import os

current_dir = os.getcwd()

image_path = current_dir + "\\joyu_face\\"
#Datei lesen
horikita = cv2.imread(image_path + "\\horikita.jpg ")
hasimoto = cv2.imread(image_path + "\\hasimoto.jpg ")

#Graustufenumwandlung
horikita_gray = cv2.cvtColor(horikita, cv2.COLOR_BGR2GRAY)
hasimoto_gray = cv2.cvtColor(hasimoto, cv2.COLOR_BGR2GRAY)

#Im Standardzustand sieht das Bild also ziemlich gruselig aus
#Ich habe 4 Arten von Farben ausprobiert
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

#Bild speichern
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)

【Ergebnis】

horikita.jpg hasimoto.jpg

Bild des Addierens und Dividierens durch 2 horikita_hasimoto.jpg

[Eindruck]

Ich habe es zuerst in Farbe versucht, aber es stellte sich als gruselig heraus. Ich finde es jedoch nicht schön, auch nicht in Schwarz und Weiß ... (; 1_1) Es wird wahrscheinlich viele Verbesserungen geben.

Recommended Posts

Ich habe Maki Horikita und Kanna Hashimoto hinzugefügt und durch 2 durch Python geteilt
Ich habe mit PyQt5 und Python3 gespielt
Ich habe versucht, automatisch Bilder von Kanna Hashimoto mit Python zu sammeln! !!
Ich habe Numba mit Python3.5 installiert und verwendet
Organisieren Sie mit Python nach Ordnern getrennte Daten
Ich habe Jacobian und teilweise Differenzierung mit Python versucht
Ich habe Funktionssynthese und Curry mit Python versucht
Ich möchte die Optimierung mit Python und CPlex behandeln
3 Dinge, die mir bei der Analyse von Twitter-Followern mit Python aufgefallen sind
Ich habe ein gestapeltes Balkendiagramm mit matplotlib von Python erstellt und eine Datenbeschriftung hinzugefügt
Ich habe versucht, LINE BOT mit Python und Heroku zu machen
Ich habe versucht, Co-Filtering (Empfehlung) mit Redis und Python zu implementieren
Ich habe versucht, Follow Management mit Twitter API und Python (einfach)
Ich habe versucht, die Benutzeroberfläche neben Python und Tkinter dreiäugig zu gestalten
Diesmal habe ich mit Prorate Python III und IV gelernt
Ich habe fp-Wachstum mit Python versucht
Programmieren mit Python und Tkinter
Ich habe versucht, mit Python zu kratzen
Ver- und Entschlüsselung mit Python
Python und Hardware-Verwenden von RS232C mit Python-
Ich habe einen Blackjack mit Python gemacht!
Ich habe Java und Python verglichen!
Python mit Pyenv und Venv
Ich habe gRPC mit Python ausprobiert
Ich habe versucht, mit Python zu kratzen
Ich habe mit Python einen Blackjack gemacht.
Ich habe Wordcloud mit Python gemacht.
Funktioniert mit Python und R.
Ich habe eine einfache Schaltung mit Python gemacht (AND, OR, NOR, etc.)
tkinter konnte nicht mit Python verwendet werden, das von pyenv of anyenv installiert wurde
Ich möchte APG4b mit Python lösen (nur 4.01 und 4.04 in Kapitel 4)
[Systemhandel] Ich habe versucht, mit dem zerlegten stochastischen Oszillator mit Python ♬ zu spielen
Ich habe mit Python, Flask und Heroku ein Nyanko-Tweet-Formular erstellt
Ich habe versucht, mit Selenium und Python einen regelmäßigen Ausführungsprozess durchzuführen
Ich habe versucht, Gesichtsmarkierungen mit Python und Dlib leicht zu erkennen
Kommunizieren Sie mit FX-5204PS mit Python und PyUSB
Leuchtendes Leben mit Python und OpenCV
Installieren Sie Python 2.7.9 und Python 3.4.x mit pip.
Neuronales Netzwerk mit OpenCV 3 und Python 3
AM-Modulation und Demodulation mit Python
Scraping mit Node, Ruby und Python
pyenv-vertualenv installiert die Python3-Serie nicht gut
Ich habe versucht, WebScraping mit Python.
Kratzen mit Python und schöner Suppe
Ich habe mit Python eine Lotterie gemacht.
Ich habe eine SMS mit Python gesendet
JSON-Codierung und -Decodierung mit Python
Hadoop-Einführung und MapReduce mit Python
[GUI in Python] PyQt5-Drag & Drop-
Lesen und Schreiben von NetCDF mit Python
Ich mochte den Tweet mit Python. ..
Lesen und Schreiben von CSV mit Python
Mehrfachintegration mit Python und Sympy
Ich möchte mit Python debuggen
Ich habe versucht, Prolog mit Python 3.8.2 auszuführen.
Koexistenz von Python2 und 3 mit CircleCI (1.0)
Ich habe mit Python einen Daemon erstellt
Ich habe die SMTP-Kommunikation mit Python versucht