Heim > Artikel > Backend-Entwicklung > Hier sind einige fragenbasierte Titel, die zum Inhalt Ihres bereitgestellten Textes passen: * **Warum sieht mein OpenCV-Bild beim Plotten mit Matplotlib anders aus?** * **Warum gibt es wann eine Farbabweichung?
OpenCV-Farbkonvertierungsdiskrepanz beim Laden von Bildern
Beim Versuch, ein Farbbild mit Python OpenCV zu laden und anzuzeigen, können Benutzer auf unerwartete Farbabweichungen stoßen im resultierenden Bild. Dieses Problem entsteht aufgrund eines Unterschieds in den standardmäßigen Farbreihenfolgeschemata zwischen OpenCV und der Matplotlib-Bibliothek.
Problembeschreibung
Der vom Benutzer bereitgestellte Code beinhaltet das Laden einer Farbe Erstellen Sie ein Bild mit der Funktion cv2.imread() von OpenCV und konvertieren Sie es mit cv2.cvtColor() in Graustufen. Anschließend werden sowohl das Originalbild als auch das Graustufenbild mit der Funktion plt.imshow() von Matplotlib geplottet. Trotz der Verwendung des IMREAD_COLOR-Flags weist das geplottete Bild verzerrte Farben auf.
Grundlegendes Problem
Standardmäßig verwendet OpenCV die Farbreihenfolge Blau-Grün-Rot (BGR) für Bilder, während Matplotlib Rot-Grün-Blau (RGB) verwendet. Wenn das von OpenCV geladene Bild in Matplotlib angezeigt wird, werden die Kanäle invertiert, was zu Farbabweichungen führt.
Lösung
Der Benutzer kann dieses Problem explizit beheben Konvertieren Sie das von OpenCV geladene BGR-Bild mit der Funktion cv2.cvtColor() in RGB. Das konvertierte RGB-Bild kann dann zum Plotten in Matplotlib verwendet werden.
<code class="python">import cv2 import matplotlib.pyplot as plt # Load image in BGR img = cv2.imread('lena_caption.png', cv2.IMREAD_COLOR) # Convert BGR to RGB RGB_img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # Plot RGB image in Matplotlib plt.imshow(RGB_img) plt.title('Original Image in RGB') plt.xticks([]), plt.yticks([]) plt.show()</code>
Das obige ist der detaillierte Inhalt vonHier sind einige fragenbasierte Titel, die zum Inhalt Ihres bereitgestellten Textes passen: * **Warum sieht mein OpenCV-Bild beim Plotten mit Matplotlib anders aus?** * **Warum gibt es wann eine Farbabweichung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!