线程,并发期货或Asyncio

问题描述

美好的一天,

我有一个正在尝试编写代码的应用程序,但我需要更好地了解解决问题的最佳方法

问题:正在监视街道(东西向行驶)的网络摄像头流。我有两个面具投资回报率。我想检测汽车何时通过一个ROI启动计时器,然后当它通过第二个掩模ROI时停止计时器。我还想评估汽车是在向东还是向西行驶。

enter image description here

对于您能为我提供最好的方法

enter image description here

所提供的帮助,我深表感谢。

我发现了这个示例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=[]

enter image description here

如您所见,已经成功实施了一个阈值来隔离过往车辆造成的冲动。不幸的是,我每次都会得到六点补充。我真的想对这些点求平均值。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)