It is in dlclivegui.py Use OpencV to identify another target def display_frame(self): """ Display a frame in display window """ x=0 y=0 if self.cam_pose_proc and self.display_window: frame = self.cam_pose_proc.get_display_frame() if frame is not None: img = Image.fromarray(frame) if frame.ndim == 3: b, g, r = img.split() img = Image.merge("RGB", (b, g, r)) ############################################################################## another object img_z=cv2.cvtColor(numpy.asarray(img),cv2.COLOR_RGB2BGR) img_hsv = cv2.cvtColor(img_z, cv2.COLOR_BGR2HSV) mask_blue = cv2.inRange(img_hsv, lower_blue, higher_blue) mask_blue = cv2.medianBlur(mask_blue, 3) contoursji, hierarchy2 = cv2.findContours(mask_blue, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE) for e in contoursji: perimeter2 = cv2.arcLength(e,True) if perimeter2 > 0: p,q,m,n = cv2.boundingRect(e) center2=(int(p+m/2),int(q+n/2)) x=center2[0] # print("xxxx",self.x) y=center2[1] # print("yyyy",self.y) pts2.appendleft(center2) else: center2=(0,0) ######################################################### pose = ( self.cam_pose_proc.get_display_pose() if self.display_keypoints.get() else None ) if pose is not None: im_size = (frame.shape[1], frame.shape[0]) if not self.display_colors: self.set_display_colors(pose.shape[0]) img_draw = ImageDraw.Draw(img) x1=pose[0,0] y1=pose[0,1] # x2=pose[2,0] # y2=pose[2,1] center1=(int(x1),int(y1)) # center2=(int(x2),int(y2)) pts.appendleft(center1) # pts2.appendleft(center2) for i in range(pose.shape[0]): if pose[i, 2] > self.display_lik_thresh: try: x0 = ( pose[i, 0] - self.display_radius if pose[i, 0] - self.display_radius > 0 else 0 ) x1 = ( pose[i, 0] + self.display_radius if pose[i, 0] + self.display_radius < im_size[1] else im_size[1] ) y0 = ( pose[i, 1] - self.display_radius if pose[i, 1] - self.display_radius > 0 else 0 ) y1 = ( pose[i, 1] + self.display_radius if pose[i, 1] + self.display_radius < im_size[0] else im_size[0] ) coords = [x0, y0, x1, y1] img_draw.ellipse( coords, fill=self.display_colors[i], outline=self.display_colors[i], ) # img_draw.text((200,200),'ceshi',fill=(255,0,0)) # img_draw.line([(pose[0,0],pose[0,1]),(320,240)],fill=0,width=10) for k in range(1,len(pts)): if pts[k-1]is None or pts[k]is None: continue img_draw.line([(pts[k - 1]), (pts[k])] ,fill=0,width=2) for j in range(1,len(pts2)): if pts2[j-1]is None or pts2[j]is None: continue img_draw.line([(pts2[j - 1]), (pts2[j])] ,fill=180,width=2) except Exception as e: print(e) imgtk = ImageTk.PhotoImage(image=img) self.display_frame_label.imgtk = imgtk self.display_frame_label.configure(image=imgtk) self.display_frame_label.after(10,self.display_frame) print("insidexy",x,y) return x,y Processor: Custom calling functions in Process def process(self, pose, **kwargs): if not self.hasgui: self.gui=DLCLiveGUI() self.hasgui=True # print("opqrst") y=self.gui.display_frame() # print("abcdeg") print("outsidex",y) Some result: insidexy 340 101 insidexy 340 101 insidexy 0 0 outsidex (0, 0) insidexy 340 101 insidexy 340 101 insidexy 0 0 outsidex (0, 0) insidexy 340 101 insidexy 340 101 insidexy 0 0 outsidex (0, 0) insidexy 340 101 insidexy 340 101 insidexy 340 101 insidexy 0 0 outsidex (0, 0) insidexy 340 101 insidexy 340 101 insidexy 340 101 insidexy 0 0 outsidex (0, 0) insidexy 340 101 insidexy 340 101 insidexy 0 0 outsidex (0, 0) insidexy 340 101 insidexy 340 101 insidexy 0 0 outsidex (0, 0) insidexy 340 101 insidexy 340 101 insidexy 340 101 insidexy 0 0 outsidex (0, 0) insidexy 340 101 insidexy 340 101 insidexy 0 0 outsidex (0, 0) insidexy 340 101 insidexy 340 101 insidexy 0 0 outsidex (0, 0) insidexy 340 101 insidexy 0 0 outsidex (0, 0)