Python 为什么子地块会改变我图像的颜色?

Python 为什么子地块会改变我图像的颜色?,python,subplot,Python,Subplot,我试图从视频中提取一帧并将每一帧显示为图像。为了比较,我尝试了子绘图。打印时读取的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)

我试图从视频中提取一帧并将每一帧显示为图像。为了比较,我尝试了子绘图。打印时读取的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)
显示图像的颜色已更改 试试看

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


这可能与BGR中的图像显示有关,而不是RGB。这可能与BGR中的图像显示有关,而不是RGB。发生这种情况的原因是,您使用cv2中的imread读取图像,该图像以BGR格式读取图像,并且您使用matplotlib中的pyplot显示图像,matplotlib以RGB格式显示图像,因此,在红色和蓝色通道中存在反转。希望现在清楚发生这种情况的原因是因为您使用cv2中的imread读取图像,该图像以BGR格式读取图像,并且您使用matplotlib中的pyplot显示图像,matplotlib以RGB格式显示图像,因此在红色和蓝色通道中存在反转。希望现在天气转晴