问题描述
美好的一天,
我有一个正在尝试编写代码的应用程序,但我需要更好地了解解决问题的最佳方法
问题:正在监视街道(东西向行驶)的网络摄像头流。我有两个面具投资回报率。我想检测汽车何时通过一个ROI启动计时器,然后当它通过第二个掩模ROI时停止计时器。我还想评估汽车是在向东还是向西行驶。
对于您能为我提供最好的方法
我发现了这个示例https://www.youtube.com/watch?v=xWt5lpn8fN8,我认为它可以使用async进行,除非最终使用。一旦在Main中创建了ROI,就可以使用异步def来采样ROI max是否大于50,从而触发一个计时器。在我不确定代码的体系结构/语法之前,从未使用过异步。我希望我有道理....
这是我的同步代码。创建投资回报率的相当标准
L_mask_E = cv2.imread('left_mask_East.png',0)
R_mask_E = cv2.imread('far_right_mask_East-1.png',0)
L_mask_E_sized=cv2.resize(L_mask_E,frameDelta.shape[1::-1])
R_mask_E_sized=cv2.resize(R_mask_E,frameDelta.shape[1::-1])
L_mask_E_roi = cv2.bitwise_and(frameDelta,L_mask_E_sized)
L_smallest_E = L_mask_E_roi.min(axis=(0,1))
L_largest_E=L_mask_E_roi.max(axis=(0,1))
R_mask_E_roi = cv2.bitwise_and(frameDelta,R_mask_E_sized)
R_smallest_E=R_mask_E_roi.min(axis=(0,1))
R_largest_E = R_mask_E_roi.max(axis=(0,1))
L_end=0
R_end=0
L_time.append(abs(time.time()-L_start))
R_time.append(R_start-time.time())
L_Largest_E_list.append(L_largest_E)
R_Largest_E_list.append(R_largest_E)
if L_Largest_E_list[len(L_Largest_E_list)-1]>100:
L_time_peak=[]
if abs(L_time[-1]-L_time[-2])<.15:
print('abs(L_time[-1]-L_time[-2]=',abs(L_time[-1]-L_time[-2]))
Lpeak.append(L_Largest_E_list)
L_time_peak.append(L_time[-1])
print('L_time_peak=',L_time_peak[-1])
print('L_time=',L_time[-1])
#print('Lpeak=',Lpeak)
#print('L_time_peak=',L_time_peak)
avg_Lpeaks.append(statistics.mean(Lpeak[-1]))
L_time_peaks.append(L_time[-1])
avg_L_time_peak.append(statistics.mean(L_time_peak))
print('avg_L_time_peak=',avg_L_time_peak)
L_time_peak=[]
Lpeak=[]
如您所见,已经成功实施了一个阈值来隔离过往车辆造成的冲动。不幸的是,我每次都会得到六点补充。我真的想对这些点求平均值。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)