Ich lade ein Farbbild in Python OpenCV und zeichne dasselbe. Das Bild, das ich bekomme, hat jedoch alle Farben durcheinander.
Hier ist der 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()
img = cv2.imread('lena_caption.png', cv2.COLOR_BGR2RGB)
Alternativ zur vorherigen Antwort können Sie (etwas schneller) verwenden
img = cv2.imread('lena_caption.png')[...,::-1]
%timeit [cv2.cvtColor(cv2.imread(f), cv2.COLOR_BGR2RGB) for f in files]
231 ms ± 3,08 ms pro Schleife (Mittelwert ± Standardabweichung von 7 Läufen, jeweils 1 Schleife)
%timeit [cv2.imread(f)[...,::-1] for f in files]
220 ms ± 1,81 ms pro Schleife (Mittelwert ± Standardabweichung von 7 Läufen, jeweils 1 Schleife)
quelle
RGB_img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)