Voici quelques titres basés sur des questions qui correspondent au contenu du texte fourni : * **Pourquoi mon image OpenCV est-elle différente lorsqu'elle est tracée avec Matplotlib ?** * **Pourquoi y a-t-il une différence de couleur lorsque

Mary-Kate Olsen
Libérer: 2024-10-24 18:11:19
original
630 Les gens l'ont consulté

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

Écart de conversion des couleurs OpenCV lors du chargement de l'image

Lors de la tentative de chargement et d'affichage d'une image couleur à l'aide de Python OpenCV, les utilisateurs peuvent rencontrer des écarts de couleur inattendus dans l’image résultante. Ce problème est dû à une différence dans les schémas d'ordre des couleurs par défaut entre OpenCV et la bibliothèque Matplotlib.

Description du problème

Le code fourni par l'utilisateur implique le chargement d'une couleur image en utilisant la fonction cv2.imread() d'OpenCV et en la convertissant en niveaux de gris à l'aide de cv2.cvtColor(). Par la suite, l'image originale et l'image en niveaux de gris sont tracées à l'aide de la fonction plt.imshow() de Matplotlib. Malgré l'utilisation de l'indicateur IMREAD_COLOR, l'image tracée présente des couleurs déformées.

Problème sous-jacent

Par défaut, OpenCV utilise l'ordre des couleurs Bleu-Vert-Rouge (BGR) pour images, tandis que Matplotlib utilise Rouge-Vert-Bleu (RVB). Lorsque l'image chargée par OpenCV est affichée dans Matplotlib, les canaux sont inversés, entraînant un écart de couleur.

Solution

Pour résoudre ce problème, l'utilisateur peut explicitement convertissez l'image BGR chargée depuis OpenCV en RVB à l'aide de la fonction cv2.cvtColor(). L'image RVB convertie peut ensuite être utilisée pour le traçage dans Matplotlib.

<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>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!