繁体   English   中英

如何在 Python 中使用 cv2 显示图像

[英]How can one display an image using cv2 in Python

我一直在使用代码来显示电影中的帧。 代码的基本内容如下:

import cv2
import matplotlib.pyplot as plt

# Read single frame avi
cap = cv2.VideoCapture('singleFrame.avi')
rval, frame = cap.read()

# Attempt to display using cv2 (doesn't work)
cv2.namedWindow("Input")
cv2.imshow("Input", frame)

#Display image using matplotlib (Works)
b,g,r = cv2.split(frame)
frame_rgb = cv2.merge((r,g,b))
plt.imshow(frame_rgb)
plt.title('Matplotlib') #Give this plot a title, 
                        #so I know it's from matplotlib and not cv2
plt.show()

因为我可以使用 matplotlib 显示图像,所以我知道我已经成功读取了它。

我不明白为什么我创建的窗口并尝试使用 cv2 显示图像不起作用。 从未出现过 cv2 窗口。 奇怪的是,如果我创建第二个 cv2 窗口,则会出现“输入”窗口,但它只是一个空白/白色窗口。

我在这里错过了什么?

我一直在使用代码来显示电影中的帧。 代码的基本内容如下:

import cv2
import matplotlib.pyplot as plt

# Read single frame avi
cap = cv2.VideoCapture('singleFrame.avi')
rval, frame = cap.read()

# Attempt to display using cv2 (doesn't work)
cv2.namedWindow("Input")
cv2.imshow("Input", frame)

#Display image using matplotlib (Works)
b,g,r = cv2.split(frame)
frame_rgb = cv2.merge((r,g,b))
plt.imshow(frame_rgb)
plt.title('Matplotlib') #Give this plot a title, 
                        #so I know it's from matplotlib and not cv2
plt.show()

因为我可以使用 matplotlib 显示图像,所以我知道我已经成功读取了它。

我不明白为什么我创建的窗口并尝试使用 cv2 显示图像不起作用。 从未出现过 cv2 窗口。 奇怪的是,如果我创建第二个 cv2 窗口,则会出现“输入”窗口,但它只是一个空白/白色窗口。

我在这里缺少什么?

我一直在使用代码来显示电影中的帧。 代码的基本内容如下:

import cv2
import matplotlib.pyplot as plt

# Read single frame avi
cap = cv2.VideoCapture('singleFrame.avi')
rval, frame = cap.read()

# Attempt to display using cv2 (doesn't work)
cv2.namedWindow("Input")
cv2.imshow("Input", frame)

#Display image using matplotlib (Works)
b,g,r = cv2.split(frame)
frame_rgb = cv2.merge((r,g,b))
plt.imshow(frame_rgb)
plt.title('Matplotlib') #Give this plot a title, 
                        #so I know it's from matplotlib and not cv2
plt.show()

因为我可以使用 matplotlib 显示图像,所以我知道我已经成功读取了它。

我不明白为什么我创建的窗口并尝试使用 cv2 显示图像不起作用。 从未出现过 cv2 窗口。 奇怪的是,如果我创建第二个 cv2 窗口,则会出现“输入”窗口,但它只是一个空白/白色窗口。

我在这里缺少什么?

我一直在使用代码来显示电影中的帧。 代码的基本内容如下:

import cv2
import matplotlib.pyplot as plt

# Read single frame avi
cap = cv2.VideoCapture('singleFrame.avi')
rval, frame = cap.read()

# Attempt to display using cv2 (doesn't work)
cv2.namedWindow("Input")
cv2.imshow("Input", frame)

#Display image using matplotlib (Works)
b,g,r = cv2.split(frame)
frame_rgb = cv2.merge((r,g,b))
plt.imshow(frame_rgb)
plt.title('Matplotlib') #Give this plot a title, 
                        #so I know it's from matplotlib and not cv2
plt.show()

因为我可以使用 matplotlib 显示图像,所以我知道我已经成功读取了它。

我不明白为什么我创建的窗口并尝试使用 cv2 显示图像不起作用。 从未出现过 cv2 窗口。 奇怪的是,如果我创建第二个 cv2 窗口,则会出现“输入”窗口,但它只是一个空白/白色窗口。

我在这里缺少什么?

由于 OpenCV 读取 BGR 格式的图像,因此您可以在将图像传递给 pyplot 之前将其转换为 RGB 格式

import cv2
import matplotlib.pyplot as plt

image = cv2.imread('YOUR_FILEPATH')
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
plt.imshow(image)
plt.show()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM