Konvertieren Sie Bilder mit PIL (Python Imaging Library) in Sepia.

Was möchten Sie tun

Hier ist ein Beispiel für das Lesen von Pixeln.

Lesen Sie die Pixel des Originalbildes → Prozess → Schreiben Sie die verarbeiteten Daten Es wird das Verfahren wie.

Insbesondere Pixel lesen → in Graustufen konvertieren → in Sepia-Schattierungen konvertieren → Pixel schreiben Dieser Vorgang wird für alle Pixel einzeln ausgeführt.

Ich weiß, dass es einen effizienteren Weg gibt.

Ausführungsergebnis

Das Originalbild haku12.png

Ausführungsergebnis haku12sepia.png

Skript

Läuft unter Python 2.7. Es scheint, dass PIL die Python 3-Serie noch nicht unterstützt.

image-sepia.py


#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
Filter, um das Bild in Sepia umzuwandeln

Erstes Argument:Geben Sie den Dateinamen ein
Zweites Argument:Name der Ausgabedatei (optional)

Sepia ist eine schwarzbraune Farbe aus Tintenfischtinte. Wenn Sie das Bild sepiaartig machen, sieht es so aus, als wäre es gezeichnet worden.
-Extrahieren Sie Helligkeitsinformationen nach Graustufen
-Konvertieren Sie das Ganze in bräunlich
'''
import sys
import Image

def grayscale(r,g,b):
    '''
Konvertieren Sie RGB-Werte in Graustufen (Schwarzweiß).
    '''
    #NTSC-gewichtete Mittelungsmethode
    gray = int(r * 0.298912 + g * 0.586611 + b * 0.114478)
    #Einfache Mittelungsmethode
    #gray = int((r+g+b)/3)
    return gray

def sepiatone(r,g,b):
    '''
Konvertieren Sie RGB-Werte in Sepia
Es scheint keine Regel zu geben, um in den Sepia-Stil zu konvertieren. Wenn es also so aussieht, ist es in Ordnung.
    '''
    gray = grayscale(r,g,b)
    #sr = int(gray * 0.9);sg = int(gray * 0.7);sb = int(gray * 0.4)
    #sr = gray; sg = int(gray * 0.8);sb = int(gray * 0.6)
    sr = int(gray * 0.8 + 2); sg = int(gray * 0.6 + 2);sb = int(gray * 0.4 + 2)
    return sr,sg,sb

def make_image(infile, outfile):
    '''
Bild in Sepia konvertieren
    '''
    img = Image.open(infile)
    img = img.convert("RGB")
    x,y = img.size
    for ly in range( y):
        for lx in range( x):
            r,g,b = img.getpixel((lx, ly))
            sr,sg,sb = sepiatone(r,g,b)
            img.putpixel((lx,ly), (sr,sg,sb))
            #↓ Wenn Sie möchten, dass es etwas verblasst aussieht
            #img.putpixel((lx,ly), ((r+sr)/2,(g+sg)/2,(b+sb)/2))
    img.save(outfile)
    return

def usage():
    sys.stderr.write("Usage: %s infile [outfile] \n" % sys.argv[0])
    return

if __name__ == '__main__':
    argvs = sys.argv
    argc = len(argvs)
    #Argumentprüfung
    if ((argc == 1 ) or (argc > 3)):
        usage()
        sys.exit(1)
    if (argc > 2):
        outfile = argvs[2]
    else:
        outfile = "output.png "

    infile = argvs[1]

    make_image(infile , outfile)

# EOF

Recommended Posts

Konvertieren Sie Bilder mit PIL (Python Imaging Library) in Sepia.
Konvertieren Sie PDFs mit Python in Massenbilder
Konvertieren Sie die Liste mit Python in DataFrame
Ein Beispiel zum Zeichnen von Punkten mit PIL (Python Imaging Library).
PIL-Installationsmemorandum (Python Imaging Library)
Konvertieren Sie Bilder aus dem PIL-Format, die mit Django aus dem Formular gelesen wurden, in das base64-Format
Konvertieren Sie Memos sofort mit Python 2to3
Konvertieren Sie Excel-Daten mit Python in JSON
Konvertiere Hiragana mit Python (Beta) in Romaji
Fügen Sie Bildern mit Python2.7 Gaußsches Rauschen hinzu
Konvertieren Sie chinesische Zahlen mit Python in arabische Zahlen
Laden Sie Bilder mit Python auf Google Drive hoch
Beispiel für die Wavelet-Konvertierung von Bildern in Python
Zusammenfassung des Bibliotheksvergleichs zum Generieren von PDF mit Python
Konvertieren Sie PDF in Bilder (JPEG / PNG) mit Python
Konvertieren Sie die SVG-Datei mit Python in png / ico
Konvertieren Sie Windows-Epochenwerte mit Python in das Datum
Einführung der Python Imaging Library (PIL) mit HomeBrew
Konvertieren Sie die Zeichenfolge mit Python in ein zeichenweises Listenformat
Konvertieren Sie 202003 bis 2020-03 mit Pandas
So konvertieren / wiederherstellen Sie einen String mit [] in Python
Erstellen Sie eine Bilddatei mit PIL (Python Imaging Library).
Konvertieren Sie das Bild in .zip mit Python in PDF
So konvertieren Sie eine JSON-Datei mit Python Pandas in eine CSV-Datei
PyInstaller-Memorandum Konvertieren Sie Python [.py] in [.exe] mit 2 Zeilen
Ich habe ein Programm erstellt, um Bilder mit Python und OpenCV in ASCII-Grafik umzuwandeln
Angrenzende Bilder mit Python Teil 1
[Python] Datum in Zeichenfolge konvertieren
Konvertieren Sie numpy int64 in python int
[Python] Liste in Pandas konvertieren [Pandas]
So konvertieren Sie mit Python [Anwendung] von einem Array in ein Wörterbuch
Stellen Sie mit Python eine Verbindung zu Wikipedia her
[AWS] Versuchen Sie, die Python-Bibliothek mit SAM + Lambda (Python) zur Ebene hinzuzufügen.
Post to Slack mit Python 3
Konvertieren Sie den Farbraum von RGB nach CIELAB mit PIL (Pillow)
Konvertieren Sie verstümmelte gescannte Bilder mit Pillow und PyPDF in PDF
Konvertieren Sie das Scratch-Projekt in Python
[Python] Konvertieren Sie Shift_JIS in UTF-8
Schalten Sie Python mit Alternativen auf 2.7 um
Schreiben Sie mit Python in csv
Konvertieren Sie das an Jason Stay Samlike in Python übergebene Bild in ASCII Art
Speichern Sie Bilder im Web mit Python (Colab) auf einem Laufwerk.
Konvertieren Sie Videos mit ffmpeg + python + opencv in Schwarzweiß
Konvertieren Sie Python 3.x-Code in Python 2.x.
Konvertieren Sie in eine Zeichenfolge, während Sie die Standardausgabe mit dem Python-Unterprozess ausgeben
Aktiviert, um PNG mit Pillow of Python in JPG zu konvertieren
Ich habe eine Bibliothek erstellt, die Konfigurationsdateien mit Python einfach lesen kann
Konvertieren Sie in Python usw. geschriebene Dateien in PDF mit Syntax-Hervorhebung
Ich habe versucht, automatisch Bilder von Kanna Hashimoto mit Python zu sammeln! !!
Der schnellste Weg, um regelmäßig Kamerabilder mit Pythons OpenCV zu erhalten
[Python] Versuchen Sie, Zeichen aus Bildern mit OpenCV und pyocr zu erkennen
Zahlenerkennung in Bildern mit Python
Konvertieren Sie .ipynb in .html (mit BatchFile)
Python: So verwenden Sie Async mit
Link, um mit Python zu beginnen
Einführung in die Python Numerical Calculation Library NumPy
[Python] Mit Python in eine CSV-Datei schreiben