2 回答

TA貢獻(xiàn)1886條經(jīng)驗(yàn) 獲得超2個(gè)贊
OpenCV使用BGR作為圖像的默認(rèn)顏色順序,matplotlib使用RGB。當(dāng)您在matplotlib中顯示加載了OpenCv的圖像時(shí),通道將返回到前面。
解決此問題的最簡單方法是使用OpenCV將其顯式轉(zhuǎn)換回RGB,就像創(chuàng)建灰度圖像時(shí)一樣。
RGB_img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
然后在你的情節(jié)中使用它。

TA貢獻(xiàn)1995條經(jīng)驗(yàn) 獲得超2個(gè)贊
作為上一個(gè)答案的替代方案,您可以使用(稍快)
img = cv2.imread('lena_caption.png')[...,::-1]
%timeit [cv2.cvtColor(cv2.imread(f), cv2.COLOR_BGR2RGB) for f in files]
每循環(huán)231 ms±3.08 ms(平均值±標(biāo)準(zhǔn)偏差,7次運(yùn)行,每次1次循環(huán))
%timeit [cv2.imread(f)[...,::-1] for f in files]
每循環(huán)220 ms±1.81 ms(平均值±標(biāo)準(zhǔn)偏差,7次運(yùn)行,每次1次循環(huán))
添加回答
舉報(bào)