Python cv2 returns 与指定大小不同的 numpy 数组
Python cv2 returns numpy array of other size than specified
我有一个小程序,我想从我的笔记本电脑的相机流式传输图像并处理它们(此处无关紧要),然后将其输出到我的屏幕。我当前的代码如下所示:
Python 3.7.1 / cv2 4.1.0
import cv2 as cv
import numpy as np
cap = cv.VideoCapture(0)
cap.set(cv.CAP_PROP_FPS, 20)
cap.set(cv.CAP_PROP_FRAME_WIDTH, 320)
cap.set(cv.CAP_PROP_FRAME_HEIGHT, 200)
while True:
frame_created, frame = cap.read()
print(frame.shape) # writes (360, 640, 3)
cv.imshow('frame', self.frame)
key = cv.waitKey(5) & 0xFF
if key == 27:
break
现在我想知道为什么我用cap.set()
指定了其他框架高度和框架宽度,返回的框架有如上图所示的形状?我在这里遗漏了什么还是当前版本中的错误?输出帧也有 'wrong' 形状。
除非你的相机本身支持 300x200,否则要求它只会让你接近。 OpenCV 文档在这方面可能会更清楚,而不是让你去弄清楚是什么
Effective behaviour depends from device driver and API Backend
表示。
请参阅 here 了解更多信息。
我有一个小程序,我想从我的笔记本电脑的相机流式传输图像并处理它们(此处无关紧要),然后将其输出到我的屏幕。我当前的代码如下所示:
Python 3.7.1 / cv2 4.1.0
import cv2 as cv
import numpy as np
cap = cv.VideoCapture(0)
cap.set(cv.CAP_PROP_FPS, 20)
cap.set(cv.CAP_PROP_FRAME_WIDTH, 320)
cap.set(cv.CAP_PROP_FRAME_HEIGHT, 200)
while True:
frame_created, frame = cap.read()
print(frame.shape) # writes (360, 640, 3)
cv.imshow('frame', self.frame)
key = cv.waitKey(5) & 0xFF
if key == 27:
break
现在我想知道为什么我用cap.set()
指定了其他框架高度和框架宽度,返回的框架有如上图所示的形状?我在这里遗漏了什么还是当前版本中的错误?输出帧也有 'wrong' 形状。
除非你的相机本身支持 300x200,否则要求它只会让你接近。 OpenCV 文档在这方面可能会更清楚,而不是让你去弄清楚是什么
Effective behaviour depends from device driver and API Backend
表示。
请参阅 here 了解更多信息。