2016-06-16 7 views
1

私はビデオからフレームを抽出し、各フレームを画像として表示しようとしています。比較のため、私はサブプロットを試みた。読み取られたRGB画像はプロットされたときに異なる。どこが間違っている可能性がありますか?サブプロットで画像の色が変わるのはなぜですか?

vid = cv2.VideoCapture(file1) 
num_frames = int(vid.get(cv2.cv.CV_CAP_PROP_FRAME_COUNT)) 
fig, ax = plt.subplots(nrows=1, ncols=3) 
plt.ion() 
for i in range(num_frames): 
    f,img = vid.read(i) 
    cv2.imshow("V",img) 

RGB画像が正しく読み込まれるが、表示画像の

for i in range(num_frames): 
    f,img = vid.read(i) 
    ax[0].imshow(img) 
    ax[1].imshow(img) 
    ax[2].imshow(img) 
    plt.draw() 
    plt.pause(0.01) 

色が subplot imagecv2 image

+0

をお試しくださいRGBではなくBGRで表示する画像 – user3404344

答えて

0

を変更した場合は、をどうする可能性がある

ax[0].imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)) 
+0

Thそれが起こっている理由は、あなたがBGR形式の画像を読み込む画像をcv2から読み込んでいて、RGB形式の画像を表示しているmatplotlibからpyplotで画像を表示しているので、Redのチャンネルに反転があるからですブルー。今はっきりしたい –

関連する問題