我买了RPI high quality camera,并试图使它与opencv和python一起工作。
我正在使用Raspbery PI4与最新更新(sudo apt update && sudo apt full-upgrade
)
它的最大分辨率是4056x3040,但它不会在分辨率超过2560x1680的opencv上工作。
使用raspistill
时,即使在4056x3040上也能正常工作
- 我尝试了opencv中的下一个决议:**
- 2048x1536作品
- 2048x1680作品
- 2240x1680工程
- 2560x1440工程
- 2560x1680及更高版本无法正常工作
- raspistill命令(工作):**
raspistill -w 4056 -h 3040
- 使用最大分辨率的Python示例代码(不起作用):**
import cv2 as cv2
cap = cv2.VideoCapture(0)
if not cap.isOpened():
print("Cannot open camera")
exit()
HIGH_VALUE = 10000
# (Of cause, I tried to set manually all resolutions in next two lines)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, HIGH_VALUE)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, HIGH_VALUE)
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
print(f"Camera resolution: {width}x{height}") # prints 4056x3040
while True:
ret, frame = cap.read()
if not ret:
# Here it exit if resolution is 2560x1680 and above
print("Can't receive frame (stream end?). Exiting ...")
break
cv2.imshow('frame', frame)
if cv2.waitKey(1) == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
谢谢你的帮助。
1条答案
按热度按时间wvmv3b1j1#
如果你看到相机的规格,我认为这就解释了为什么你只能以你提到的分辨率录制视频:
请注意,仅支持的视频模式为2028 × 1080p50、2028 × 1520p40和1332 × 990p120。