Python cv2.VideoCapture() 分辨率错误并读取裁剪图像
我正在尝试使用 Python 和 OpenCV 通过以太网从插入我的笔记本电脑的 IDS GV-5240CP 相机读取图像。
这就是我应该得到的:
但是使用这段代码:
import cv2
cap = cv2.VideoCapture(1)
_, frame = cap.read()
print(frame.shape)
cv2.imshow("Out", frame)
cv2.waitKey(2000)
cap.release()
cv2.destroyAllWindows()
cv2.imwrite('Test2.png', frame)
我得到:
如何将视频捕获设置为原始分辨率?
I'm trying to read images from an IDS GV-5240CP camera plugged to my laptop via ethernet using Python and OpenCV.
This is what I am supposed to get :
A 1280x1024 image (here resized for upload)
But using this code:
import cv2
cap = cv2.VideoCapture(1)
_, frame = cap.read()
print(frame.shape)
cv2.imshow("Out", frame)
cv2.waitKey(2000)
cap.release()
cv2.destroyAllWindows()
cv2.imwrite('Test2.png', frame)
I get:
How can I set my video capture to the native resolution?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
VideoCapture
默认使用 640x480。如果您想要不同的分辨率,请在构造函数中指定它或使用
set()
方法和CAP_PROP_FRAME_WIDTH
等。文档中的详细信息。VideoCapture
uses 640x480 by default.If you want a different resolution, specify it in the constructor or use the
set()
method withCAP_PROP_FRAME_WIDTH
and so on. Details in the docs.out = cv2.VideoWriter(("E:", 'output.avi'), fourcc, 20.0, (640, 480))
尝试使用它并根据您的需要更改分辨率,
它会下载或使用
cv2.resize(frame,(w,h),fx=0,fy=0, interpolation = cv2.INTER_CUBIC)
因为您不想这样做,所以使用 OpenCV 中的 set() 模块来设置特定分辨率。 docs.opencv.org/4.x/d8/dfe/… 此链接提供有关 set() 的完整信息
out = cv2.VideoWriter(("E:", 'output.avi'), fourcc, 20.0, (640, 480))
try using this and change the resolution according to your need,
tho it will download or use
cv2.resize(frame,(w,h),fx=0,fy=0, interpolation = cv2.INTER_CUBIC)
since you don't want to do this then use set() module in OpenCV to set specific resolution. docs.opencv.org/4.x/d8/dfe/… this link for the full info about set()