我们从Python开源项目中,提取了以下29个代码示例,用于说明如何使用cv2.EVENT_MOUSEMOVE。
def brush_circle(event, x, y, flags, param): global ix, iy, drawing, mode, r,g,b,radius if event == cv2.EVENT_LBUTTONDOWN: drawing = True # start to draw when L button down ix, iy = x, y elif event == cv2.EVENT_MOUSEMOVE: if drawing == True and mode == True: cv2.circle(img, (x,y), radius, (b, g, r), -1) elif event == cv2.EVENT_LBUTTONUP: drawing = False # end drawing when L button up if mode == True: cv2.circle(img, (x,y), radius, (b, g, r), -1) # Create a black image, a window
def draw_circle(event,x,y,flags,param): global ix,iy,drawing,mode if event == cv2.EVENT_LBUTTONDOWN: drawing = True ix,iy = x,y elif event == cv2.EVENT_MOUSEMOVE: if drawing == True: if mode == True: cv2.rectangle(img,(ix,iy),(x,y),(0,255,0),-1) else: cv2.circle(img,(x,y),5,(0,0,255),-1) elif event == cv2.EVENT_LBUTTONUP: drawing = False if mode == True: cv2.rectangle(img,(ix,iy),(x,y),(0,255,0),-1) else: cv2.circle(img,(x,y),5,(0,0,255),-1)
def draw_circle(event,x,y,flags,param): global drawing,drawing1 if event == cv2.EVENT_LBUTTONDOWN: drawing = True if event == cv2.EVENT_RBUTTONDOWN: drawing1 = True if event == cv2.EVENT_MOUSEMOVE: if drawing == True: cv2.circle(img,(x,y),5,(0,0,255),-1) if drawing1 == True: cv2.circle(img,(x,y),5,(0,255,0),-1) if event == cv2.EVENT_LBUTTONUP: drawing = False if event == cv2.EVENT_RBUTTONUP: drawing1 = False #print (drawing)
def draw_rect(self,event,x,y,flags,param): if event == cv2.EVENT_LBUTTONDOWN: self.drawing = True self.rect_done = False self.ix1 = x self.iy1 = y elif event == cv2.EVENT_MOUSEMOVE: if self.drawing == True: self.ix2 = x self.iy2 = y elif event == cv2.EVENT_LBUTTONUP: self.drawing = False self.ix2 = x self.iy2 = y cv2.rectangle(self.rgb_image,(self.ix1,self.iy1),(self.ix2,self.iy2),(0,255,0),2) center_point = self.get_center_point() cv2.circle(self.rgb_image, tuple(center_point.astype(int)), 3, (0,0,255),-1) cv2.imshow('RGB Image', self.rgb_image) cv2.waitKey(5) self.rect_done = True
def _mouse_ops(self, event, x, y, flags, param): if event == cv2.EVENT_LBUTTONDOWN: self._drawing = True self._pt0 = (x, y) elif event == cv2.EVENT_LBUTTONUP: self._drawing = False self._pt1 = (x, y) self._bboxes.append((self._cur_label, (self._pt0, self._pt1))) elif event == cv2.EVENT_MOUSEMOVE: self._pt1 = (x, y) elif event == cv2.EVENT_RBUTTONUP: if self._bboxes: self._bboxes.pop()
def draw_rect(event,x,y,flags,param): global x1,y1,x2,y2,drawing,img,imgSmall,finishDraw # ?????????????? if event==cv2.EVENT_LBUTTONDOWN: drawing=True x1,y1=x,y # ???????????????? event ??????? flag ?????? elif event==cv2.EVENT_MOUSEMOVE and flags==cv2.EVENT_FLAG_LBUTTON: if drawing==True: img[:,:]=newGray[:,:] img[y1:y,x1:x]=imgSmall[y1:y,x1:x] cv2.rectangle(img,(x1,y1),(x,y),(0,0,255),1) # ?????????? elif event==cv2.EVENT_LBUTTONUP: drawing==False x2,y2=x,y finishDraw = True
def annotate(event, x, y, flags, param): """Callback for function 'annotate_tracks'. Tracks cursor and detects if mouse position is to be saved as a trackpoint. Track points are saved once per frame if the left mouse button is held down. """ global is_read global px, py if event == cv2.EVENT_MOUSEMOVE: px, py = x, y if event == cv2.EVENT_LBUTTONDOWN: is_read = 1 if event == cv2.EVENT_LBUTTONUP: is_read = 0
def draw_circle( event, x,y,flags, param): global ix, iy, drawing, mode if event == cv2.EVENT_LBUTTONDOWN: drawing = True ix, iy = x, y elif event == cv2.EVENT_MOUSEMOVE: if drawing == True: if mode == True: cv2.rectangle( img, (ix, iy), (x,y),(0,255,0), 1) # -1 for last argument like CV_FILLED else: cv2.circle( img, (x,y), 5, (0,0,255), -1) elif event == cv2.EVENT_LBUTTONUP: drawing = False if mode == True: cv2.rectangle( img, (ix, iy), (x,y), (0,255,0), 1) else: cv2.circle(img, (x,y), 5, (0,0,255),-1)
def draw(event, x, y, flags, param): global ix, iy, drawing if event == cv2.EVENT_LBUTTONDOWN: drawing = True ix, iy = x, y elif event == cv2.EVENT_MOUSEMOVE: if drawing: cv2.line(img, (ix, iy), (x, y), (0.9, 0.01, 0.9), pen_size) ix, iy = x, y elif event == cv2.EVENT_LBUTTONUP: drawing = False cv2.line(img, (ix, iy), (x, y), (0.9, 0.01, 0.9), pen_size)
def _callBack(self, event, x, y, flags, param): # ???????????????? if event == cv2.EVENT_LBUTTONDOWN: self._doEvent(self._press_func, x, y) self._is_drag = True # ???????????? elif event == cv2.EVENT_MOUSEMOVE: if self._is_drag: self._doEvent(self._drag_func, x, y) # ???????????????? elif event == cv2.EVENT_LBUTTONUP: self._doEvent(self._release_func, x, y) self._is_drag = False # ?????????
def make_mouse_callback(imgs, ref_pt): # initialize the list of reference points and boolean indicating # whether cropping is being performed or not cropping = [False] clone = imgs[0] def _click_and_crop(event, x, y, flags, param): # grab references to the global variables # global ref_pt, cropping # if the left mouse button was clicked, record the starting # (x, y) coordinates and indicate that cropping is being # performed if event == cv2.EVENT_LBUTTONDOWN: ref_pt[0] = (x, y) cropping[0] = True # check to see if the left mouse button was released elif event == cv2.EVENT_LBUTTONUP: # record the ending (x, y) coordinates and indicate that # the cropping operation is finished ref_pt[1] = (x, y) cropping[0] = False # draw a rectangle around the region of interest imgs[1] = image = clone.copy() cv2.rectangle(image, ref_pt[0], ref_pt[1], (0, 255, 0), 2) cv2.imshow("image", image) elif event == cv2.EVENT_MOUSEMOVE and cropping[0]: img2 = clone.copy() cv2.rectangle(img2, ref_pt[0], (x, y), (0, 255, 0), 2) imgs[1] = image = img2 cv2.imshow("image", image) return _click_and_crop
def click_and_crop(event, x, y, flags, param): # grab references to the global variables global refPt, cropping, i # if the left mouse button was clicked, record the starting # (x, y) coordinates and indicate that cropping is being # performed if event == cv2.EVENT_LBUTTONDOWN: if refPt == []: refPt = [(x, y)] else: refPt.append((x,y)) cropping = True i += 1 if event == cv2.EVENT_MOUSEMOVE and cropping: image2 = image.copy() cv2.rectangle(image2, refPt[2*i-2], (x,y), (0,255,0), 2) cv2.imshow("image",image2) # check to see if the left mouse button was released elif event == cv2.EVENT_LBUTTONUP: # record the ending (x, y) coordinates and indicate that # the cropping operation is finished refPt.append((x, y)) cropping = False # draw a rectangle around the region of interest cv2.rectangle(image, refPt[2*i-2], refPt[2*i-1], (0, 255, 0), 2) # cv2.rectangle(image2, refPt[2*i-2], refPt[2*i-1], (0, 255, 0), 2) cv2.imshow("image", image) # construct the argument parser and parse the arguments
def mouse(self, event, x, y, flags, param): """ Listen for mouse. """ if event == cv2.EVENT_MOUSEMOVE: self.currPosX, self.currPosY = x, y # print "curposX,Y", x, y elif event == cv2.EVENT_LBUTTONUP: self.click_point_x, self.click_point_y = x, y if self.curr_level == 0: self.easy_mode = True self.curr_level = 1 if self.curr_level == 2: self.reset() elif event == cv2.EVENT_RBUTTONUP: self.click_point_right_x, self.click_point_right_y = x, y if self.present_mode: self.reset() self.easy_mode = False self.curr_level = 1
def draw(event, x, y, flags, param): global drawing, ix, iy, shape, canvas, brush if event == cv2.EVENT_LBUTTONDOWN: drawing = True ix, iy = x, y elif event == cv2.EVENT_MOUSEMOVE: if drawing == True: if shape == 1: cv2.circle(canvas, (x, y), pencil, color, -1) elif shape == 2: cv2.circle(canvas, (x, y), brush, color, -1) elif shape == 3: cv2.circle(canvas, (x, y), eraser, (255, 255, 255), -1) elif shape == 5: cv2.rectangle(canvas, (ix, iy), (x, y), color, -1) elif shape == 6: cv2.circle(canvas, (x, y), calc_radius(x, y), color, -1) elif event == cv2.EVENT_LBUTTONUP: drawing = False if shape == 1: cv2.circle(canvas, (x, y), pencil, color, -1) elif shape == 2: cv2.circle(canvas, (x, y), brush, color, -1) elif shape == 3: cv2.circle(canvas, (x, y), eraser, (255, 255, 255), -1) elif shape == 4: cv2.line(canvas, (ix, iy), (x, y), color, pencil) elif shape == 5: cv2.rectangle(canvas, (ix, iy), (x, y), color, -1) elif shape == 6: cv2.circle(canvas, (x, y), calc_radius(x, y), color, -1)
def give_X_Y(event,x,y,flags, param): print '1' if event==cv2.EVENT_MOUSEMOVE: print x,y
def draw_rectangle(event,x,y,flags,param): if event == cv2.EVENT_LBUTTONDOWN: drawing = True param.drawing=True param.setxy(x,y) param.printxy() elif event == cv2.EVENT_MOUSEMOVE: if param.drawing == True: a=layering(param.layer_data,param.layer_index) img_temp_rect=a.copy() img_temp_rect=cv2.rectangle(img_temp_rect,(param.ix,param.iy),(x,y),(0,255,0),2) cv2.imshow('image',img_temp_rect) elif event == cv2.EVENT_LBUTTONUP: param.drawing = False shape_dimension1 = np.asarray((param.ix,param.iy)) shape_dimension2=np.asarray((x,y)) param.layer_data.resize(param.layer_data.shape[0]+1,4) k = param.layer_data.shape param.layer_data[k[0]-1, 0] = 1 param.layer_data[k[0]-1, 1] = shape_dimension1 param.layer_data[k[0]-1, 2] = shape_dimension2 param.layer_data[k[0]-1,3]=param.layer_index+1 param.layer_index=param.layer_index+1 print param.layer_data a=layering(param.layer_data,param.layer_index)
def draw_rect(self,event,x,y,flags,param): if event == cv2.EVENT_LBUTTONDOWN: self.drawing = True self.rect_done = False self.ix1 = x self.iy1 = y elif event == cv2.EVENT_MOUSEMOVE: if self.drawing == True: self.ix2 = x self.iy2 = y elif event == cv2.EVENT_LBUTTONUP: self.drawing = False self.ix2 = x self.iy2 = y tempimg = self.rgb_image.copy() cv2.rectangle(tempimg,(self.ix1,self.iy1),(self.ix2,self.iy2),(0,255,0),2) center_point = self.get_center_point() cv2.circle(tempimg, tuple(center_point.astype(int)), 3, (0,0,255),-1) cv2.imshow('RGB Image', tempimg) cv2.waitKey(5) self.rect_done = True
def click(event, x, y, flags, param): global upper_left_point global lower_right_point global current_mouse_pos if event == cv2.EVENT_LBUTTONDOWN: upper_left_point = [x, y] if event == cv2.EVENT_LBUTTONUP: lower_right_point = [x, y] if event == cv2.EVENT_MOUSEMOVE: current_mouse_pos = [x, y]
def Crop(img,title): def onmouse(event,x,y,flags,param): global ix,iy,roi,drawing # Draw Rectangle if event == cv2.EVENT_RBUTTONDOWN: drawing = True ix,iy = x,y elif event == cv2.EVENT_MOUSEMOVE: if drawing == True: cv2.rectangle(img,(ix,iy),(x,y),BLUE,-1) rect = (ix,iy,abs(ix-x),abs(iy-y)) elif event == cv2.EVENT_RBUTTONUP: drawing = False cv2.rectangle(img,(ix,iy),(x,y),BLUE,-1) rect = (ix,iy,x,y) roi.extend(rect) cv2.namedWindow(title,cv2.WINDOW_NORMAL) cv2.setMouseCallback(title,onmouse) print ("Right click and hold to draw a single rectangle ROI, beginning at the top left corner of the desired area. A blue box should appear. Hit esc to exit screen. Window can be resized by selecting borders.") while True: cv2.namedWindow(title,cv2.WINDOW_NORMAL) cv2.imshow(title,img) k = cv2.waitKey(1) & 0xFF if k == 27: break cv2.destroyAllWindows() print(roi) return(roi)
def test(m): class DrawingState: def __init__(self): self.x_prev = 0 self.y_prev = 0 self.drawing = False self.update = True def interactive_drawing(event, x, y, flags, param): image = param[0] state = param[1] if event == cv2.EVENT_LBUTTONDOWN: state.drawing = True state.x_prev, state.y_prev = x, y elif event == cv2.EVENT_MOUSEMOVE: if state.drawing: cv2.line(image, (state.x_prev, state.y_prev), (x, y), (1, 1, 1), 1) state.x_prev = x state.y_prev = y state.update = True elif event == cv2.EVENT_LBUTTONUP: state.drawing = False elif event == cv2.EVENT_RBUTTONDOWN: image.fill(0) state.update = True cv2.namedWindow('Canvas') image_input = np.zeros((FLAGS.input_height, FLAGS.input_width, 3), np.float32) state = DrawingState() cv2.setMouseCallback('Canvas', interactive_drawing, [image_input, state]) while cv2.getWindowProperty('Canvas', 0) >= 0: if state.update: reshaped_image_input = np.array([image_input]) image_output = m.test(reshaped_image_input) concatenated = np.concatenate((image_input, image_output[0]), axis=1) color_converted = cv2.cvtColor(concatenated, cv2.COLOR_RGB2BGR) cv2.imshow('Canvas', color_converted) state.update = False k = cv2.waitKey(1) & 0xFF if k == 27: # esc break cv2.destroyAllWindows()
def mouse_callback(event, x, y, flags, param): global refPt, image, tiles, wall, selected_tile, l_mouse_button_down, mouse_over_tile,\ clone, offsets if event == cv2.EVENT_LBUTTONDOWN: l_mouse_button_down = True refPt = [(x, y)] if not draw_tile: if find_hovered_tile(x,y): mouse_over_tile = True offsets = (x - selected_tile.wx - selected_tile.l, y-selected_tile.wy - selected_tile.t) else: mouse_over_tile = False elif event == cv2.EVENT_LBUTTONUP: l_mouse_button_down = False if draw_tile: #Restrict to create tiles that are at least 100 sqpixel big if (abs(refPt[0][0] - x) * abs(refPt[0][1] - y) >= 100): newTile = Tile(abs(refPt[0][0] - x), abs(refPt[0][1] - y)) wall.add_tile(newTile, min(refPt[0][0], x), min(refPt[0][1], y)) wall.draw(image) tiles.append(newTile) else: print("dragging the tile") elif event == cv2.EVENT_RBUTTONUP: if find_hovered_tile(x,y): tile_popup() elif event == cv2.EVENT_MOUSEMOVE: # TODO: Implement the t r b resize too if l_mouse_button_down and mouse_over_tile and x >= selected_tile.wx and x <= selected_tile.wx + 5: new_w = selected_tile.w + selected_tile.wx + selected_tile.l - x # TODO: Fix when the bezel is resized to the left print( "selected_tile.w = {} selected_tile.wx = {} x = {} new_w = {}".format(selected_tile.w, selected_tile.wx, x, new_w)) if new_w >= MINIMUM_RESIZE_WIDTH: selected_tile.w = new_w selected_tile.wx = x - selected_tile.l image = clone.copy() wall.draw(image) print("RESIZING") elif l_mouse_button_down and mouse_over_tile and not draw_tile: selected_tile.wx = x - offsets[0] selected_tile.wy = y - offsets[1] image = clone.copy() wall.draw(image) #TODO: Implement an else that will start drawing the tile while in the draw mode
def on_mouse(event, x, y, flags, param): layout, downpos, ismove = param # record downpos if event == cv2.EVENT_LBUTTONDOWN: print 'click at', x*2, y*2 # picture is half-sized. param[1] = (x, y) param[2] = False return # check if is moving if event == cv2.EVENT_MOUSEMOVE: if ismove: return if downpos is None: param[2] = False return _x, _y = downpos if (_x-x)**2 + (_y-y)**2 > 64: param[2] = True return if event != cv2.EVENT_LBUTTONUP: return # update layout.highlight b = layout.tree.bounds l, t = b.left, b.top w, h = b.right - b.left, b.bottom - b.top highlight = np.zeros((h, w, 3), np.uint8) if downpos and ismove: # drag node = layout.find_scrollable_node(x*2+l, y*2+t) print 'scroll to', x*2, y*2 if node: b = node.bounds print 'scrollable node', b, node.index, node.className, print 'resource_id:', node.resourceId, print 'text:', node.text.encode(encoding, 'ignore'), print 'desc:', node.description.encode(encoding, 'ignore') cv2.rectangle(highlight, (b.left-l, b.top-t), (b.right-l, b.bottom-t), (0,255,255), 4) else: node = layout.find_clickable_node(x*2+l, y*2+t) if node: b = node.bounds print 'clickable node', b, node.index, node.className, print 'resource_id:', node.resourceId, print 'text:', node.text.encode(encoding, 'ignore'), print 'desc:', node.description.encode(encoding, 'ignore') print device(className=node.className, index=node.index).info cv2.rectangle(highlight, (b.left-l, b.top-t), (b.right-l, b.bottom-t), (0,0,255), 4) cond, order = layout.find_selector(node) if cond: print 'selector', cond, order subnode = layout._filter_nodes(cond)[order or 0] b = subnode.bounds cv2.rectangle(highlight, (b.left-l, b.top-t), (b.right-l, b.bottom-t), (0,180,255), 4) param[0].highlight = highlight param[1], param[2] = None, False
def show_tool_01(real, pred, show_shape): """ """ real_shape = real.shape pred_shape = pred.shape _real = imgs_display(real, show_shape) _pred = gray2rgb(imgs_display(pred, show_shape)) select_imgs = [] def tool(event, x, y, flags, param): inx = int(x/real_shape[1]) iny = int(y/real_shape[2]) def find(): px = inx*pred_shape[1] py = iny*pred_shape[2] p = np.copy(_pred) # cv2.putText(p, "x:%s y:%s px:%s py:%s"%(x,y,px,py), (px,py), cv2.FONT_HERSHEY_SIMPLEX, 0.2, (255, 255, 255), 1) cv2.rectangle(p, (px, py), (px+pred_shape[1], py+pred_shape[2]), (0, 255, 0), 2) cv2.imshow("PRED", p) if event == cv2.EVENT_LBUTTONDOWN: select_imgs = param[0] select_imgs.append(pred[inx + iny*show_shape[1]]) select_imgs = select_imgs[-10*10:] cv2.imshow("SELECT", imgs_display(np.array(select_imgs), [10]*2)) elif event == cv2.EVENT_MOUSEMOVE: find() elif event == cv2.EVENT_LBUTTONUP: # cv2.destroyWindow(win_name) pass cv2.namedWindow("REAL") cv2.setMouseCallback("REAL", tool, [select_imgs]) cv2.imshow("PRED", _pred) # keep looping until the 'q' key is pressed while True: # display the image and wait for a keypress cv2.imshow("REAL", _real) key = cv2.waitKey(1) & 0xFF if key == ord('q'): break cv2.destroyAllWindows()