[Python] Maskiere das Bild mit Pillow zu einem Kreis

Einführung

Hier ist der Code, der Pythons ** Kissen ** verwendet, um den anderen Bereich als die Bildmitte in einem Kreis zu maskieren.

** Bildbeispiel nach Maskenverarbeitung ** maksed

Bild zu verwenden

Der andere Bereich als das Gesicht des Pferdes ist maskiert und im Kreis schwarz gestrichen. [Bild des Pferdes] (https://pixabay.com/ja/photos/%E9%A6%AC-%E5%8B%95%E7%89%A9-%E4%B9%97%E3%82%8B-%E3%83%AC%E3%82%A4%E3%82%BF%E3%83%BC%E3%83%9B%E3%83%95-4847088/) Horse

Das für die Maske verwendete Bild ist dieses Bild. Schwarzes Maskenbild Horse

Ablauf der Maskenverarbeitung

  1. Erstellen Sie ein Feld, in dem der maskierte Teil (außer dem Gesicht des Pferdes) weiß und der Teil, auf den der Maskierungsprozess nicht angewendet wird (Gesicht des Pferdes), schwarz ist. Der Rahmen des Bildes ist weiß und kann nicht gesehen werden, hat jedoch die gleiche Bildgröße wie das Pferdebild. panel

  2. Fügen Sie das aus dem Feld ausgehöhlte Maskenbild in das Pferdebild ein.

Code

Ich werde das Programm kurz erklären.

** Das gesamte Programm wird am Ende aufgelistet. ** ** **

Laden des Maskenbildes

Das Maskenbild wird auch entsprechend der Größe des Pferdebildes geladen.

Bild laden


from PIL import Image,ImageDraw

#Laden Sie das Bild des Pferdes
img = Image.open("horse.jpg ")

#Laden Sie das Maskenbild entsprechend dem Pferdebild
mask_width = img.size[0]
mask_height = img.size[1]
black_mask=Image.open("black.jpg ").resize((mask_width,mask_height))

Panel-Erstellung

Erstellen Sie ein Panel (circle_mask) mit der gleichen Größe wie das schwarze Maskenbild und zeichnen Sie einen Kreis darauf. Beim Erstellen des Bedienfelds wird "L": 8-Bit-Graustufenbild verwendet.

Das Maskenbild kann verwendet werden, wenn es dieselbe Größe wie das eingefügte Bild hat und der Modus die folgenden drei Typen hat. 1: 1bit Bild (Binärbild) L: 8-Bit-Graustufenbild RGBA: Bild mit Alphakanal

Wenn das Maskenbild eine 8-Bit-Graustufe aufweist (Modus = 'L'), bedeutet 0 (schwarz) 100% Basisbild, 255 (weiß) 100% eingefügtes Bild und 2 Bilder entsprechen dem Zwischenwert. Ist gemischt.

Panel-Erstellung



#Zeichnen Sie einen Kreis auf die Tafel
circle_mask = Image.new("L", black_mask.size, 255)
draw = ImageDraw.Draw(circle_mask)

Zeichne einen Kreis

Der Kreis wird mit der Ellipsenmethode gezeichnet. Beachten Sie jedoch, dass Sie die Begrenzungsrahmenkoordinaten (unten links und unten rechts) übergeben.

Einen Kreis zeichnen


#Koordinaten des Begrenzungsrahmens des Kreises
start_x = 600
start_y = 200
width = 900
height = 900 #Wenn Sie einen perfekten Kreis erstellen möchten, verwenden Sie den gleichen Wert für die Breite
end_x = start_x + width
end_y = start_y + height

#Zeichnung
draw.ellipse(((start_x, start_y),(end_x, end_y)), fill=0)

Das Bild aushöhlen und maskieren

Maskenverarbeitung


#Kreisförmige Platte(circle_mask)Als Maske schwarzes Maskenbild(black_mask)Zum Pferdebild
img.paste(black_mask, (0, 0), circle_mask)

#sparen
img.save("horse_masked.jpg ")
maksed

Ganzer Code

from PIL import Image,ImageDraw

#Laden Sie das Bild des Pferdes
img = Image.open("horse.jpg ")

#Laden Sie das Maskenbild entsprechend dem Pferdebild
mask_width = img.size[0]
mask_height = img.size[1]
black_mask=Image.open("black.jpg ").resize((mask_width,mask_height))

#Zeichnen Sie einen Kreis auf die Tafel
circle_mask = Image.new("L", black_mask.size, 255)
draw = ImageDraw.Draw(circle_mask)

#Koordinaten des Begrenzungsrahmens des Kreises
start_x = 600
start_y = 200
width = 900
height = 900 #Wenn Sie einen perfekten Kreis erstellen möchten, verwenden Sie den gleichen Wert für die Breite
end_x = start_x + width
end_y = start_y + height

#Zeichnung
draw.ellipse(((start_x, start_y),(end_x, end_y)), fill=0)

#Kreisförmige Platte(circle_mask)Als Maske schwarzes Maskenbild(black_mask)Zum Pferdebild
img.paste(black_mask, (0, 0), circle_mask)

#sparen
img.save("horse_masked.jpg ")

Referenz-URL

Eine ausführliche Erläuterung der Argumente wird eingeführt. note.nkmk.me

Recommended Posts

[Python] Maskiere das Bild mit Pillow zu einem Kreis
Probieren Sie die ähnliche Suche von Image Search mit Python SDK [Search] aus.
Erstellen Sie eine GIF-Datei mit Pillow in Python
Schneiden Sie einen Teil der Zeichenfolge mit einem Python-Slice aus
[CRUD] [Django] Erstellen Sie eine CRUD-Site mit dem Python-Framework Django ~ 1 ~
[CRUD] [Django] Erstellen Sie eine CRUD-Site mit dem Python-Framework Django ~ 2 ~
[CRUD] [Django] Erstellen Sie eine CRUD-Site mit dem Python-Framework Django ~ 3 ~
[CRUD] [Django] Erstellen Sie eine CRUD-Site mit dem Python-Framework Django ~ 4 ~
[CRUD] [Django] Erstellen Sie eine CRUD-Site mit dem Python-Framework Django ~ 5 ~
Das Bild ist Namekuji
[Python] Ändern Sie den Namen der Bilddatei in eine Seriennummer
Fügen Sie das Bild mit Pythons openpyxl in eine Excel-Datei ein
Generieren Sie ein Docker-Image mit Fabric
Verwandeln Sie Ihr Android-Smartphone mithilfe von Python in einen Webserver.
Steuern Sie den Motor mit einem Motortreiber mit Python auf Raspberry Pi 3!
Bilderfassung von Firefox mit Python
[Python] Verwenden von OpenCV mit Python (Bildfilterung)
Ich habe einen Line-Bot mit Python gemacht!
Suchen Sie mit Pythonista3 nach einem Bild von der Kamerarolle
Erstellen Sie mit tkinter eine Python-GUI
[Python] Verwenden von OpenCV mit Python (Bildtransformation)
Zeichnen einer Silbersteinkurve mit Python
Versuchen Sie, ein neues Bild mit dem trainierten StyleGAN2-Modell zu bearbeiten
Erstellen Sie einen einfachen geplanten Stapel mit Dockers Python Image und parse-crontab
[Python] Machen Sie die Funktion zu einer Lambda-Funktion
[Ev3dev] Erstellen Sie ein Programm, das das LCD (Bildschirm) mit Python erfasst
Ich habe das Objekt gerade mit Image Repair (Inpaint) (OpenCV: Python) gelöscht.
Extrahieren Sie die Targz-Datei mit Python
Versuchen Sie es mit dem Python Cmd-Modul
[Python] Eine einfache Funktion zum Ermitteln der Mittelkoordinaten eines Kreises
Ich habe GhostScript mit Python ausgeführt, das PDF in Seiten aufgeteilt und es in ein JPEG-Bild konvertiert.
Python-Skript, das mithilfe der Bing-Image-Suche automatisch typische Bilder sammelt
[EV3 x Python] Streame Kamerabilder mit mjpg-streamer auf deinen PC.
[Mac] Erstellen Sie mit Docker eine Python 3.x-Umgebung mit der schnellsten Geschwindigkeit
Ein Python-Programm, das die Größe eines Videos ändert und es in ein Bild verwandelt
Erstellen Sie mit dem Python-Anforderungsmodul einen Datensatz mit Anhängen in KINTONE
Ein nützlicher Hinweis, wenn Sie Python nach langer Zeit verwenden
Versuchen Sie es mit der Wunderlist-API in Python
Versuchen Sie, die Kraken-API mit Python zu verwenden
Hinter dem Flyer: Docker mit Python verwenden
Erstellen Sie mit Python + PIL ein Dummy-Image.
Schreiben Sie den Test in die Python-Dokumentzeichenfolge
Python: Anwendung der Bilderkennung mit CNN
Tweet mit der Twitter-API in Python
Erstellen Sie mit dem Sympy-Modul ein Diagramm
Durchsuche das Labyrinth mit dem Python A * -Algorithmus
[Python] Erstellen Sie eine Stapelumgebung mit AWS-CDK
Führen Sie den Python-Interpreter im Skript aus
[GIMP] [Python-Fu] Teilen Sie das Bild in Schwerter
Scraping von Websites mit JavaScript in Python
[Python] Eine Tabelle mit Beautiful Soup kratzen
Ich habe versucht, mit Pillow mit dem Bild zu spielen
Verarbeiten Sie Bilder in Python ganz einfach mit Pillow
Zeichnen Sie mit graphviz eine Baumstruktur in Python 3
Die Geschichte der Verarbeitung A von Blackjack (Python)
Fügen Sie mithilfe des Keras-Backends eine Ebene hinzu
Ein Programm, das Python zum Abspielen von Junk verwendet
[Python] Ein Fortschrittsbalken auf dem Terminal
Führen Sie graphviz in eine tragbare Python-Umgebung ein