use*_*339 2 python camera opencv image-processing
我正在使用 Python/OpenCV,从 USB 网络摄像头(Logitech C615 摄像头,据说是 HD 1080p)获取帧。1080p 的纵横比为 16:9,因此我应该能够以所有这些分辨率获取图像:
1920 x 1080
1600 x 900
1366 x 768
1280 x 720
1024 x 576
Run Code Online (Sandbox Code Playgroud)
然而,我没有编写相机驱动程序,所以我怎么知道我是否真的从相机中获取了这些像素?例如,我可以指定 3840 x 2160 并获得该大小的视频帧!
鉴于这些不同的分辨率设置,是否有一种系统的方法可以评估/确定相机的实际分辨率或有效分辨率?下面是一些用于演示的 Python/OpenCV 代码。
import numpy as np
import cv2, cv
import time
cap = cv2.VideoCapture(0) # note you may need to pass 1 instead of 0 into this to get your camera
cap.set(3,3840) #horizontal pixels
cap.set(4,2160) #vertical pixels
cap.set(5, 15) #frame rate
time.sleep(2) #trying to solve a delay issue ... never mind this
#acquire the video from the camera
while(cap.isOpened()):
ret, frame = cap.read()
cv2.imshow("captured video", frame)
if cv2.waitKey(33) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
Run Code Online (Sandbox Code Playgroud)
“鉴于这些不同的分辨率设置,有没有一种系统的方法可以评估/确定相机的实际分辨率或有效分辨率?” - 只需询问:
import cv2
cam = cv2.VideoCapture(0)
w = cam.get(cv2.CV_CAP_PROP_FRAME_WIDTH)
h = cam.get(cv2.CV_CAP_PROP_FRAME_HEIGHT)
print w,h
while cam.isOpened():
err,img = cam.read()
cv2.imshow("lalala", img)
k = cv2.waitKey(10) & 0xff
if k==27:
break
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7868 次 |
| 最近记录: |