Heim  >  Artikel  >  Backend-Entwicklung  >  So passen Sie Bilder mit Python farblich an

So passen Sie Bilder mit Python farblich an

PHPz
PHPzOriginal
2023-08-19 14:10:521222Durchsuche

So passen Sie Bilder mit Python farblich an

So verwenden Sie Python zur Farbanpassung von Bildern

Einführung:
In der modernen Gesellschaft ist die Bildverarbeitung in vielen Bereichen weit verbreitet, beispielsweise bei Filmspezialeffekten, bei der medizinischen Bilddiagnose usw. Unter diesen ist die Bildfarbanpassung eine wichtige Technologie, die die Farben zwischen verschiedenen Bildern einheitlich machen und so das Benutzererlebnis verbessern kann. In diesem Artikel wird die Verwendung von Python zum Farbabgleich von Bildern vorgestellt und anhand von Codebeispielen ausführlich erläutert.

1. Abhängige Bibliotheken installieren

Bevor wir beginnen, müssen wir sicherstellen, dass wir die Python-Umgebung und die PIL-Bibliothek (Python Imaging Library) installiert haben. Wenn die PIL-Bibliothek nicht installiert ist, können Sie sie mit dem folgenden Befehl installieren:

pip install pillow

2. Bilddaten lesen

Zuerst müssen wir die Daten des abzugleichenden Bilds und des Referenzbilds lesen und in konvertieren eine betriebsfähige Datenstruktur. Angenommen, wir haben zwei Bilder: image.jpg是待匹配的图片,reference.jpg ist das Referenzbild:

from PIL import Image

def read_image(filename):
    image = Image.open(filename)
    data = list(image.getdata())
    width, height = image.size
    return data, width, height

image_data, image_width, image_height = read_image('image.jpg')
reference_data, reference_width, reference_height = read_image('reference.jpg')

3. Berechnen Sie den Mittelwert und die Standardabweichung jedes Kanals.

Um eine Farbanpassung zu erreichen, müssen wir jeden einzelnen Kanal berechnen -Abgeglichenes Bild und das Referenzbild. Der Mittelwert und die Standardabweichung des Kanals. Das Codebeispiel lautet wie folgt:

import numpy as np

def calculate_mean_std(data):
    pixels = np.array(data, dtype=np.float32)
    mean = np.mean(pixels, axis=0)
    std = np.std(pixels, axis=0)
    return mean, std

image_mean, image_std = calculate_mean_std(image_data)
reference_mean, reference_std = calculate_mean_std(reference_data)

4. Farbabgleich

Mit dem Mittelwert und der Standardabweichung jedes Kanals können wir die folgende Formel für den Farbabgleich verwenden:

matched_data = (image_data - image_mean) / image_std * reference_std + reference_mean

Das Codebeispiel lautet wie folgt:

def match_color(data, mean, std, reference_mean, reference_std):
    matched_data = np.array(data, dtype=np.float32)
    matched_data = (matched_data - mean) / std * reference_std + reference_mean
    matched_data = matched_data.clip(0, 255)
    return list(matched_data.astype(np.uint8))

matched_image_data = match_color(image_data, image_mean, image_std, reference_mean, reference_std)

5 . Nach dem Speichern der Übereinstimmung

Abschließend speichern wir die übereinstimmenden Bilddaten als neue Bilddatei. Das Codebeispiel lautet wie folgt:

def save_image(data, width, height, filename):
    image = Image.new('RGB', (width, height))
    image.putdata(data)
    image.save(filename)

save_image(matched_image_data, image_width, image_height, 'matched_image.jpg')

Fazit:
Durch die obigen Schritte haben wir gelernt, wie man Python zum Farbabgleich von Bildern verwendet . Diese Technologie wird häufig in der Bildverarbeitung, im Design und in anderen Bereichen eingesetzt und kann die Qualität und Konsistenz von Bildern effektiv verbessern. Ich hoffe, dieser Artikel ist hilfreich für Sie und Sie können ihn gerne ausprobieren und auf tatsächliche Projekte anwenden.

Das obige ist der detaillierte Inhalt vonSo passen Sie Bilder mit Python farblich an. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn