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

So passen Sie Bilder mit Python farblich an

WBOY
Freigeben: 2023-08-25 23:07:47
Original
1740 Leute haben es durchsucht

So passen Sie Bilder mit Python farblich an

So verwenden Sie Python zur Farbanpassung von Bildern

1. Einführung

In den Bereichen Bildverarbeitung und Computer Vision ist die Farbanpassung eine häufige Aufgabe. Die Farbanpassung kann in verschiedenen Anwendungen verwendet werden, z. B. bei der Bildwiederherstellung, Bildsynthese, Bildklassifizierung usw. In diesem Artikel wird erläutert, wie Sie mit Python Bilder farblich anpassen und entsprechenden Beispielcode bereitstellen.

2. Vorbereitung

Bevor wir beginnen, müssen wir die notwendige Arbeitsumgebung vorbereiten. Zuerst müssen Sie Python und zugehörige Bibliotheken installieren.

  1. Python installieren

Python ist eine Programmiersprache auf hohem Niveau und die entsprechende Version kann auf der offiziellen Website https://www.python.org/ heruntergeladen und installiert werden.

  1. Installieren Sie relevante Bibliotheken

Für die Bildverarbeitung müssen wir die Bibliotheken OpenCV und NumPy verwenden. Sie können den pip-Befehl verwenden, um diese beiden Bibliotheken zu installieren:

pip install opencv-python
pip install numpy
Nach dem Login kopieren

3. Farbraumkonvertierung

Vor der Farbanpassung müssen wir das Bild zunächst vom RGB-Farbraum in andere Farbräume konvertieren. Der RGB-Farbraum ist eine der gebräuchlichsten Methoden zur Farbdarstellung, eignet sich jedoch nicht für die Farbanpassung. Zu den häufig verwendeten Farbabstimmungsfarbräumen gehören der Lab-Farbraum und der HSV-Farbraum.

  1. Lab-Farbraumkonvertierung

Der Lab-Farbraum basiert auf der Farbwahrnehmung des menschlichen Auges. Es unterteilt Farben in Helligkeit (L) und zwei Farbkanäle (a und b). Durch die Konvertierung eines RGB-Bildes in den Lab-Farbraum können wir die Farbeigenschaften des Bildes besser beschreiben.

Der Beispielcode lautet wie folgt:

import cv2

def rgb2lab(image):
    lab_image = cv2.cvtColor(image, cv2.COLOR_RGB2Lab)
    return lab_image
Nach dem Login kopieren
  1. HSV-Farbraumkonvertierung

Der HSV-Farbraum wird verwendet, um den Farbton (H), die Sättigung (S) und die Helligkeit (V) der Farbe zu beschreiben. Der HSV-Farbraum eignet sich besser zur Darstellung von Farbmerkmalen.

Der Beispielcode lautet wie folgt:

import cv2

def rgb2hsv(image):
    hsv_image = cv2.cvtColor(image, cv2.COLOR_RGB2HSV)
    return hsv_image
Nach dem Login kopieren

4. Farbanpassung

Nach der Konvertierung des Bildes in den Zielfarbraum können wir verschiedene Methoden zur Farbanpassung verwenden. In diesem Artikel werden zwei häufig verwendete Methoden vorgestellt: Histogrammabgleich und Farbmigration.

  1. Histogramm-Matching

Histogramm-Matching ist eine häufig verwendete Methode zur Farbanpassung. Es vergleicht die Farbhistogramme zweier Bilder und wendet die Farbverteilung eines Bildes auf das andere Bild an, um eine Farbanpassung zu erreichen.

Der Beispielcode lautet wie folgt:

import cv2

def histogram_matching(source_image, target_image):
    source_hist = cv2.calcHist([source_image], [0, 1, 2], None, [8, 8, 8], [0, 256, 0, 256, 0, 256])
    target_hist = cv2.calcHist([target_image], [0, 1, 2], None, [8, 8, 8], [0, 256, 0, 256, 0, 256])
    source_hist = cv2.normalize(source_hist, source_hist).flatten()
    target_hist = cv2.normalize(target_hist, target_hist).flatten()
    
    mapping = cv2.calcHist([source_hist], [0], None, [256], [0, 256])
    mapping = cv2.normalize(mapping, mapping).flatten()
    
    matched_image = mapping[target_image]
    
    return matched_image
Nach dem Login kopieren
  1. Farbübertragung

Farbübertragung ist eine Methode, bei der Farbmerkmale aus einem Bild gelernt und auf ein anderes Bild angewendet werden. Die Gesamtfarbanpassung des Bildes gelingt ihm sehr gut.

Der Beispielcode lautet wie folgt:

import cv2

def color_transfer(source_image, target_image):
    source_hsv = cv2.cvtColor(source_image, cv2.COLOR_RGB2HSV)
    target_hsv = cv2.cvtColor(target_image, cv2.COLOR_RGB2HSV)
    
    target_hsv[:,:,0] = source_hsv[:,:,0]
    target_hsv[:,:,1] = source_hsv[:,:,1]
    
    matched_image = cv2.cvtColor(target_hsv, cv2.COLOR_HSV2RGB)
    
    return matched_image
Nach dem Login kopieren

5. Beispielanwendung

Das Folgende ist eine Beispielanwendung, die die Farbeigenschaften eines Bildes durch Farbanpassung auf ein anderes Bild anwendet.

import cv2
import numpy as np

def color_matching(source_image, target_image):
    source_lab = rgb2lab(source_image)
    target_lab = rgb2lab(target_image)
    
    matched_image = histogram_matching(source_lab, target_lab)
    
    return matched_image

# 读取源图片和目标图片
source_image = cv2.imread('source.jpg')
target_image = cv2.imread('target.jpg')

# 进行色彩匹配
matched_image = color_matching(source_image, target_image)

# 显示结果图片
cv2.imshow('matched_image', matched_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
Nach dem Login kopieren

6. Zusammenfassung

Dieser Artikel stellt vor, wie man mit Python Bilder farblich anpasst, und stellt den entsprechenden Beispielcode bereit. Der Leser kann je nach Bedarf verschiedene Methoden zur Farbanpassung wählen. Farbanpassung wird in den Bereichen Bildverarbeitung und Computer Vision häufig verwendet. Ich hoffe, dass dieser Artikel den Lesern bei ihrem Studium und ihrer Forschung in diesem Bereich hilfreich sein kann.

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage