use*_*262 12 python opencv matplotlib
我一直在使用代码来显示电影中的帧.代码的基本内容如下:
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()
Run Code Online (Sandbox Code Playgroud)
因为我可以使用matplotlib显示图像,所以我知道我已经成功阅读了它.
我不明白为什么我创建窗口并尝试使用cv2显示图像不起作用.没有cv2窗口出现.奇怪的是,如果我创建第二个cv2窗口,会出现"输入"窗口,但它只是一个空白/白色窗口.
我在这里错过了什么?
phe*_*ev8 29
据我所知,你做得差不多好.缺少一件事:
cv2.imshow('image',img)
cv2.waitKey(0)
Run Code Online (Sandbox Code Playgroud)
所以可能你的窗口出现但很快就关闭了.
小智 25
你可以按照下面的代码
import cv2
# read image
image = cv2.imread('path to your image')
# show the image, provide window name first
cv2.imshow('image window', image)
# add wait key. window waits until user presses a key
cv2.waitKey(0)
# and finally destroy/close all open windows
cv2.destroyAllWindows()
Run Code Online (Sandbox Code Playgroud)
我想你的工作就完成了
小智 15
由于 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()
Run Code Online (Sandbox Code Playgroud)
使用 Jupyter Notebook 时,这个可能会派上用场
import cv2
import matplotlib.pyplot as plt
# reading image
image = cv2.imread("IMAGE_PATH")
# displaying image
plt.imshow(image)
plt.show()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
40559 次 |
| 最近记录: |