while runflag: #print uflag1.value #print uflag2.value dat1 = uflag1.value dat2 = uflag2.value frame = vs.read() #for testing #datrecv1 = pipeul1.recv() #Blocking #datrecv2 = pipeul2.recv() #Blocking #if datrecv1[0] and datrecv2[0]: if (dat1 == 2) and (dat2 ==2): #pos3d = calc3d(datrecv2[2].ravel(),datrecv1[2].ravel()) ######## with uarray1.get_lock(): arr1 = np.frombuffer(uarray1.get_obj()) with uarray2.get_lock(): arr2 = np.frombuffer(uarray2.get_obj()) pos3d = calc3d(arr1,arr2) #print np.asarray(pos3d) imgpts, jac = cv2.projectPoints(np.float32([np.asarray(pos3d)]).reshape(-1,3), rvecs, tvecs, mtx, dist) cv2.rectangle(frame,(int(imgpts[0,0,0]) - 2,int(imgpts[0,0,1]) - 2),(int(imgpts[0,0,0]) + 2 ,int(imgpts[0,0,1]) + 2),(255,0,0),1) #elif not datrecv1[1] or not datrecv2[1]: elif (dat1 == 0) or (dat2 ==0): runflag = False cv2.imshow('frame',frame) if cv2.waitKey(1) & 0xFF == ord('q'): break print "Waiting for both processes to stop..." #while pipeul1.poll(0.5) or pipeul2.poll(0.5): while (uflag1.value != 0) or (uflag2.value != 0): continue
Dat2 = proc2.read() print Dat1 print Dat2 # dat1 = uflag1.value # dat2 = uflag2.value frame = vs.read() #for testing #datrecv1 = pipeul1.recv() #Blocking #datrecv2 = pipeul2.recv() #Blocking #if datrecv1[0] and datrecv2[0]: if (Dat1[0]== 2) and (Dat2[0] ==2): #pos3d = calc3d(datrecv2[2].ravel(),datrecv1[2].ravel()) ######## # with uarray1.get_lock(): # arr1 = np.frombuffer(uarray1.get_obj()) # with uarray2.get_lock(): # arr2 = np.frombuffer(uarray2.get_obj()) pos3d = calc3d(Dat1[1],Dat2[1]) #print np.asarray(pos3d) imgpts, jac = cv2.projectPoints(np.float32([np.asarray(pos3d)]).reshape(-1,3), rvecs, tvecs, mtx, dist) cv2.rectangle(frame,(int(imgpts[0,0,0]) - 2,int(imgpts[0,0,1]) - 2),(int(imgpts[0,0,0]) + 2 ,int(imgpts[0,0,1]) + 2),(255,0,0),1) #elif not datrecv1[1] or not datrecv2[1]: elif (Dat1[0] == 0) or (Dat2[0] ==0): runflag = False cv2.imshow('frame',frame) if cv2.waitKey(1) & 0xFF == ord('q'): break print "Waiting for both processes to stop..." #while pipeul1.poll(0.5) or pipeul2.poll(0.5): while (proc1.read()[0] != 0) or (proc2.read()[0] != 0): continue