如何解决使摄像机帧捕捉动态并在同一窗口中实时连接输出
我正在尝试使捕获帧的主题动态化。也就是说,用户将输入摄像机的数量,每个摄像机将开始捕获相应的帧。每个摄像机的每个输出都显示在一个窗口中,我还想实现的是将所有这些窗口连接起来,并一个接一个地显示它们,直到屏幕末端,一旦到达末端,就继续在行中连接它们下面就像形成一个窗口阵列。
下面,我附上我所测试的代码段,该代码段可以在其中工作,但最多只能容纳两到三个摄像机。如果我放置三个以上,则会出现错误。
#Variables
cap = []
ret = []
frame = []
final = ""
i = 0
number_cameras = 2
# Initialization of lists. I use them to make the frame capture dynamic
for x in range (number_cameras):
cap.append(cv2.VideoCapture(x))
ret.append(x)
frame.append(x)
#Start capturing frames
while (True):
ret[i],frame[i] = cap[i].read()
if i == number_cameras-1:
final = cv2.hconcat ([cv2.resize (frame[x],(400,400)) for x in in range (number of
cameras)])
cv2.namedWindow ('frame')
cv2.moveWindow ('frame',0)
cv2.imshow ('frame',final)
i = 0
else:
i = i + 1
if cv2.waitKey (1) & 0xFF == ord ('q'):
break
#I release the cameras
for x in range (number_cameras):
cap[x].release()
#Destroy the windows
cv2.destroyAllWindows()
使用四台摄像机进行测试时的错误消息如下:
Using TensorFlow backend.
Camara 0
Camara 1
Camara 2
[ WARN:0] global C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-wbmte9m7\opencv\modules\videoio\src\cap_msmf.cpp (435) `anonymous-namespace'::SourceReaderCB::~SourceReaderCB terminating async callback
Camara 3
Traceback (most recent call last):
File "D:/Programacion/Desarrollo/PyCharm/Software Terminal/Automatizacion.Liquidaciones.Mensuales.Colectivos/f_main/c_main/prueba.py",line 80,in <module>
final = cv2.hconcat([cv2.resize(frame[x],400)) for x in range(cant_camaras)])
File "D:/Programacion/Desarrollo/PyCharm/Software Terminal/Automatizacion.Liquidaciones.Mensuales.Colectivos/f_main/c_main/prueba.py",in <listcomp>
final = cv2.hconcat([cv2.resize(frame[x],400)) for x in range(cant_camaras)])
cv2.error: OpenCV(4.4.0) C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-wbmte9m7\opencv\modules\imgproc\src\resize.cpp:3929: error: (-215:Assertion failed) !ssize.empty() in function 'cv::resize'
[ WARN:1] global C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-wbmte9m7\opencv\modules\videoio\src\cap_msmf.cpp (435) `anonymous-namespace'::SourceReaderCB::~SourceReaderCB terminating async callback
[ WARN:0] global C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-wbmte9m7\opencv\modules\videoio\src\cap_msmf.cpp (435) `anonymous-namespace'::SourceReaderCB::~SourceReaderCB terminating async callback
从已经非常感谢您!问候。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。