Ich habe vor einiger Zeit Jahresurlaub genommen und bin mit meiner Freundin auf eine lange Reise gegangen. Unterwegs fühlte ich mich glücklich und die Landschaft war angenehm, aber ich war auch sehr müde, besonders nachdem ich mich mehrere Male nicht gut ausgeruht hatte Tage und musste den ganzen Weg zurück nach Hause fahren.
Wer hätte gedacht, dass ich, sobald ich nach Hause kam und mich ausruhen wollte, diese Nachricht erhielt:
Sie speicherte die Bilder einzeln ab und machte in vier Tagen zweihundert Bilder.
Das ist mir etwas peinlich: Erstens erfordert meine aktuelle Arbeit kein Ausschneiden von Bildern und zweitens ist es nur eine Frage von PS, selbst wenn ich es habe Das Anwenden von Voreinstellungen auf Hunderte von Bildern wird eine Weile dauern. Es ist eine Qual, nur daran zu denken, müde und schläfrig zu sein und Dinge tun zu müssen.
Ich war etwas ratlos, also habe ich mir beim Nachdenken diese Fotos angeschaut:
Da die Qualität Die Originalbilder sind in Ordnung, Sie müssen also nicht viel reparieren, da es an diesem Tag viele Wolken gab und das Licht nicht sehr gut war kann die Sättigung entsprechend erhöhen und gleichzeitig die Helligkeit verringern, um ein gutes Foto zu erhalten.
Zu diesem Zeitpunkt fiel mir plötzlich eine API ein, die ich vor einiger Zeit beim Betrachten von OpenCV verwendet hatte. Mit Hilfe von Python könnten wir diese Hunderte von Bildern möglicherweise schnell verarbeiten.
Zunächst stellen wir HSV vor: Im Gegensatz zu RGB, das Farben durch eine Kombination aus Rot, Grün und Blau beschreibt, unterteilt HSV Farben in Farbton (H), Sättigung (S ) und Es gibt drei Helligkeitsdimensionen (V), die die Helligkeit und Lebendigkeit von Farben direkter ausdrücken können und daher im Bereich der Bilderkennung weit verbreitet sind.
Mit der Funktion split() von opencv können wir die HSV-Variablen des Bildes trennen, es dann ändern und dann die Funktion merge() verwenden, um Kombinieren Sie es zu einem neuen Bild, um den Effekt einer stapelweisen Änderung von Sättigung und Helligkeit zu erzielen. Gleichzeitig kann split() auch die drei RGB-Farbkanäle des Bildes trennen und dann einen Kanal unabhängig ändern.
Ohne weitere Umschweife beginnen wir mit der Operation:
import cv2 import numpy as np import os def modify_image(img_path, target_dir): # 读取全部Ich war drei Tage lang mit meiner Freundin unterwegs und Python hat meine geistige Behinderung geheilt ... pic = cv2.imread(img_path, cv2.IMREAD_UNCHANGED) # 将Ich war drei Tage lang mit meiner Freundin unterwegs und Python hat meine geistige Behinderung geheilt ...修改为HSV pichsv = cv2.cvtColor(pic, cv2.COLOR_BGR2HSV) # 提取饱和度和明度 H,S,V = cv2.split(pichsv) # S为饱和度,V为明度 new_pic = cv2.merge([np.uint8(H), np.uint8(S*1.4), np.uint8(V*0.9)]) # 将合并后的Ich war drei Tage lang mit meiner Freundin unterwegs und Python hat meine geistige Behinderung geheilt ...重置为RGB pictar = cv2.cvtColor(new_pic, cv2.COLOR_HSV2BGR) # 获取原文件名 file_name = img_path.split("/")[-1] # 将Ich war drei Tage lang mit meiner Freundin unterwegs und Python hat meine geistige Behinderung geheilt ...写入目录 cv2.imwrite(os.path.join(target_dir, file_name), pictar) root, dirs, files = next(os.walk("./test/")) for item in files: img_path = os.path.join(root,item) process_image(img_path, "./target/")
Nach drei Malen, fünf und zwei Mal bekam ich den Code, als ich nur auf das Telefon schaute, waren es Hunderte von Bildern verarbeitet. Die linke Seite ist vor der Änderung und die rechte Seite ist nach der Änderung. Sie können sehen, dass der Effekt immer noch sehr deutlich ist und die Farbe viel voller ist.
Meine Freundin sah ungläubig aus, aber ich war natürlich sehr zufrieden mit dem Ergebnis Ich werde ihr nicht sagen, wie ich es gemacht habe.
Das obige ist der detaillierte Inhalt vonIch war drei Tage lang mit meiner Freundin unterwegs und Python hat meine geistige Behinderung geheilt .... Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!