opencv和picamera(V2)的高分辨率白/蓝平衡错误



我的问题是,当我将分辨率设置为高于640x480时,输出颜色只在右下角。输出的其余部分为蓝色。

我有一个带有4GB内存的RaspyberryPi4和一个PiCamera V2。在最高分辨率下,CPU使用率不超过~65%。同样的错误也出现在另一只rapberrypi及其picamera(V2 NOIR(上。

以下是图片(不要在意角落里的白条:它们来自糟糕的屏幕拍摄(

640x480-正常

1920x1080-错误

3280x2464-错误

这是我的python脚本:

import cv2
cap = cv2.VideoCapture(0)
width = 640; height = 480
# width = 1920; height = 1080
# width = 3280; height = 2464
cap.set(cv2.CAP_PROP_FRAME_WIDTH, width)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, height)
cv2.waitKey()
print(cap.get(cv2.CAP_PROP_FRAME_WIDTH),cap.get(cv2.CAP_PROP_FRAME_WIDTH))
while cap.isOpened():
ret, frame = cap.read()
cv2.imshow('Resolution: '+str(width)+'x'+str(height), frame)
if cv2.waitKey(25) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()

我知道分辨率越高,帧速率就越高。

有人知道错误的来源和/或我如何解决这个错误吗?

问候

我会自己回答这个问题:主要问题是picamera硬件以及复盆子是如何通过Gpu读取的。

快速的解决方案是将分辨率更改为32的倍数。对于FullHd情况,它需要是1920*1088,而不是1920*1080。然后颜色又恢复正常了。

我还发现了fps下降淹没前的最高分辨率:
水平1280*704
垂直640*672
每提高一个分辨率,fps就会从30+下降到~6-8。

相机传感器的哪一部分正在检测/使用也取决于分辨率。有关详细信息,请仔细阅读文档;-(

Picamera官方文档

相关内容

  • 没有找到相关文章