Je charge une image couleur dans Python OpenCV et la trace. Cependant, l'image que je reçois a ses couleurs toutes mélangées.
Voici le code:
import cv2
import numpy as np
from numpy import array, arange, uint8
from matplotlib import pyplot as plt
img = cv2.imread('lena_caption.png', cv2.IMREAD_COLOR)
bw_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
images = []
images.append(img)
images.append(bw_img)
titles = ['Original Image','BW Image']
for i in xrange(len(images)):
plt.subplot(1,2,i+1),plt.imshow(images[i],'gray')
plt.title(titles[i])
plt.xticks([]),plt.yticks([])
plt.show()
OpenCV utilise BGR comme ordre de couleur par défaut pour les images, matplotlib utilise le format RVB. Lorsque vous affichez une image chargée avec OpenCv dans matplotlib, les canaux sont rétablis.
Le moyen le plus simple de résoudre ce problème consiste à utiliser OpenCV pour le reconvertir explicitement en RVB, comme vous le faites lorsque vous créez une image en niveaux de gris.
RGB_img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
Et utilisez ensuite cela dans votre intrigue.