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?

Mary-Kate Olsen
Freigeben: 2024-10-24 18:11:19
Original
630 Leute haben es durchsucht

Here are a few question-based titles that fit the content of your provided text:

* **Why Does My OpenCV Image Look Different When Plotted with Matplotlib?** 
* **Why Is There a Color Discrepancy When Using OpenCV and Matplotlib Together?**
* **How to Cor

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>
Nach dem Login kopieren

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!

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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!