def run(im):
im_disp = im.copy()
window_name = "Draw line here."
cv2.namedWindow(window_name,cv2.WINDOW_AUTOSIZE)
cv2.moveWindow(window_name, 910, 0)
print " Drag across the screen to set lines.\n Do it twice"
print " After drawing the lines press 'r' to resume\n"
l1 = np.empty((2, 2), np.uint32)
l2 = np.empty((2, 2), np.uint32)
list = [l1,l2]
mouse_down = False
def callback(event, x, y, flags, param):
global trigger, mouse_down
if trigger<2:
if event == cv2.EVENT_LBUTTONDOWN:
mouse_down = True
list[trigger][0] = (x, y)
if event == cv2.EVENT_LBUTTONUP and mouse_down:
mouse_down = False
list[trigger][1] = (x,y)
cv2.line(im_disp, (list[trigger][0][0], list[trigger][0][1]),
(list[trigger][1][0], list[trigger][1][1]), (255, 0, 0), 2)
trigger += 1
else:
pass
cv2.setMouseCallback(window_name, callback)
while True:
cv2.imshow(window_name,im_disp)
key = cv2.waitKey(10) & 0xFF
if key == ord('r'):
# Press key `q` to quit the program
return list
exit()
python类EVENT_LBUTTONUP的实例源码
def mouseInteraction(self, event, x, y, flags, params):
if self.userInteraction is True:
if event == cv2.EVENT_LBUTTONDOWN:
self.refPt = [(x, y)]
self.workingFrame[y, x] = [0, 0, 255]
self.showFrame(self.selectionWindow, self.workingFrame)
elif event == cv2.EVENT_LBUTTONUP:
self.undoFrames.append(self.workingFrame.copy())
self.refPt.append((x, y))
if self.refPt[0][0] != self.refPt[1][0] and self.refPt[0][1] != self.refPt[1][1]:
area = trackedArea(self.refPt)
area.setStackSize(30)
area.setTemplate(self.processedFrame)
# area.initKalman()
corn = area.getCorners()
self.trackedAreasList.append(area)
cv2.rectangle(self.workingFrame,
corn[0], corn[1],
(0, 0, 255), 1)
self.showFrame(self.selectionWindow, self.workingFrame)
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 on_mouse(event, x, y, flags, params):
# global img
t = time()
if event == cv2.EVENT_LBUTTONDOWN:
print 'Start Mouse Position: '+str(x)+', '+str(y)
sbox = [x, y]
boxes.append(sbox)
# print count
# print sbox
elif event == cv2.EVENT_LBUTTONUP:
print 'End Mouse Position: '+str(x)+', '+str(y)
ebox = [x, y]
boxes.append(ebox)
print boxes
crop = img[boxes[-2][1]:boxes[-1][1],boxes[-2][0]:boxes[-1][0]]
cv2.imshow('crop',crop)
k = cv2.waitKey(0)
if ord('r')== k:
cv2.imwrite('Crop'+str(t)+'.jpg',crop)
print "Written to file"
def on_mouse(event, x, y, flags, params):
global boxes;
global selection_in_progress;
current_mouse_position[0] = x;
current_mouse_position[1] = y;
if event == cv2.EVENT_LBUTTONDOWN:
boxes = [];
# print 'Start Mouse Position: '+str(x)+', '+str(y)
sbox = [x, y];
selection_in_progress = True;
boxes.append(sbox);
elif event == cv2.EVENT_LBUTTONUP:
# print 'End Mouse Position: '+str(x)+', '+str(y)
ebox = [x, y];
selection_in_progress = False;
boxes.append(ebox);
#####################################################################
# controls
def on_mouse(event, x, y, flags, params):
global boxes;
global selection_in_progress;
current_mouse_position[0] = x;
current_mouse_position[1] = y;
if event == cv2.EVENT_LBUTTONDOWN:
boxes = [];
# print 'Start Mouse Position: '+str(x)+', '+str(y)
sbox = [x, y];
selection_in_progress = True;
boxes.append(sbox);
elif event == cv2.EVENT_LBUTTONUP:
# print 'End Mouse Position: '+str(x)+', '+str(y)
ebox = [x, y];
selection_in_progress = False;
boxes.append(ebox);
#####################################################################
# return centre of a set of points representing a rectangle
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_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)
interaction_updated_global.py 文件源码
项目:Interactive-object-tracking
作者: abhishekarya286
项目源码
文件源码
阅读 26
收藏 0
点赞 0
评论 0
def click_and_crop(event, x, y, flags, param):
# grab references to the global variables
global refPt, 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:
refPt = [(x, y)]
cropping = 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
refPt.append((x, y))
cropping = False
# draw a rectangle around the region of interest
cv2.rectangle(img_copy, refPt[0], refPt[1], (0, 255, 0), 2)
cv2.imshow("image", img_copy)
cv2.waitKey(0)
lab_global_optimisation.py 文件源码
项目:Interactive-object-tracking
作者: abhishekarya286
项目源码
文件源码
阅读 22
收藏 0
点赞 0
评论 0
def click_and_crop(event, x, y, flags, param):
# grab references to the global variables
global refPt, 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:
refPt = [(x, y)]
cropping = 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
refPt.append((x, y))
cropping = False
# draw a rectangle around the region of interest
cv2.rectangle(img_copy, refPt[0], refPt[1], (0, 255, 0), 2)
cv2.imshow("image", img_copy)
cv2.waitKey(0)
def on_mouse(self, event, x, y, flags, param):
pt = (x, y)
if event == cv2.EVENT_LBUTTONDOWN:
self.prev_pt = pt
elif event == cv2.EVENT_LBUTTONUP:
self.prev_pt = None
if self.prev_pt and flags & cv2.EVENT_FLAG_LBUTTON:
for dst, color in zip(self.dests, self.colors_func()):
cv2.line(dst, self.prev_pt, pt, color, 5)
self.dirty = True
self.prev_pt = pt
self.show()
# palette data from matplotlib/_cm.py
image_to_world.py 文件源码
项目:Kinect-ASUS-Xtion-Pro-Live-Calibration-Tutorials
作者: taochenshh
项目源码
文件源码
阅读 28
收藏 0
点赞 0
评论 0
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 on_mouse(self, event, x, y, flags, param):
pt = (x, y)
if event == cv2.EVENT_LBUTTONDOWN:
self.prev_pt = pt
elif event == cv2.EVENT_LBUTTONUP:
self.prev_pt = None
if self.prev_pt and flags & cv2.EVENT_FLAG_LBUTTON:
for dst, color in zip(self.dests, self.colors_func()):
cv2.line(dst, self.prev_pt, pt, color, 5)
self.dirty = True
self.prev_pt = pt
self.show()
# palette data from matplotlib/_cm.py
def click_and_crop(event, x, y, flags, param):
# grab references to the global variables
global refPt, 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:
refPt = [(x, y)]
cropping = 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
refPt.append((x, y))
cropping = False
# draw a rectangle around the region of interest
cv2.rectangle(image, refPt[0], refPt[1], (0, 255, 0), 2)
cv2.imshow("image", image)
def on_mouse(self, event, x, y, flags, param):
pt = (x, y)
if event == cv2.EVENT_LBUTTONDOWN:
self.prev_pt = pt
elif event == cv2.EVENT_LBUTTONUP:
self.prev_pt = None
if self.prev_pt and flags & cv2.EVENT_FLAG_LBUTTON:
for dst, color in zip(self.dests, self.colors_func()):
cv2.line(dst, self.prev_pt, pt, color, 5)
self.dirty = True
self.prev_pt = pt
self.show()
# palette data from matplotlib/_cm.py
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 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 video_click(self,e, x, y, flags, param):
if e == cv2.EVENT_LBUTTONDOWN:
self.video_stat.is_drug = 1
self.video_stat.p0 = (x, y)
print("rect start", x, y)
elif e == cv2.EVENT_LBUTTONUP:
self.video_stat.is_drug = 0
self.video_stat.p1 = (x, y)
print("rect end", x, y)
self.video_stat.append_box(self.label_stat.get_label_name())
elif e== cv2.EVENT_RBUTTONDOWN:
self.video_stat.remove_point_box((x,y))
self.video_stat.p=(x,y)
def click_and_crop(event, x, y, flags, param):
global bbs, x_upper, id
if event == cv2.EVENT_LBUTTONDOWN:
if x_upper:
bbs.append([x,y,0,0, 0,0,0,0])
else:
bbs[-1][4] = x
bbs[-1][5] = y
elif event == cv2.EVENT_LBUTTONUP:
if x_upper:
bbs[-1][2] = abs(x - bbs[-1][0])
bbs[-1][3] = abs(y - bbs[-1][1])
bbs[-1][0] = min(x, bbs[-1][0])
bbs[-1][1] = min(y, bbs[-1][1])
cv2.rectangle(image, (bbs[-1][0],bbs[-1][1]), (bbs[-1][0]+bbs[-1][2],bbs[-1][1]+bbs[-1][3]), (0,0,255), 2)
#cv2.putText(image, 'Upper %d' % id, (bbs[-1][0],bbs[-1][1]), cv2.FONT_HERSHEY_SIMPLEX, 0.75, (0,0,255))
else:
bbs[-1][6] = abs(x - bbs[-1][4])
bbs[-1][7] = abs(y - bbs[-1][5])
bbs[-1][4] = min(x, bbs[-1][4])
bbs[-1][5] = min(y, bbs[-1][5])
cv2.rectangle(image, (bbs[-1][4],bbs[-1][5]), (bbs[-1][4]+bbs[-1][6],bbs[-1][5]+bbs[-1][7]), (0,255,0), 2)
cv2.putText(image, 'Body %d' % id, (bbs[-1][4],bbs[-1][5]), cv2.FONT_HERSHEY_SIMPLEX, 0.75, (0,255,0))
cv2.imshow("image", image)
x_upper = not x_upper
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 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 do_draw(self, event, x, y, flags, param):
draw_vals = {1: 100, 2: 0}
if event == cv2.EVENT_LBUTTONUP or event == cv2.EVENT_RBUTTONUP:
self.drawing = 0
elif event == cv2.EVENT_LBUTTONDOWN:
self.drawing = 1
elif event == cv2.EVENT_RBUTTONDOWN:
self.drawing = 2
elif self.drawing != 0:
cv2.circle(self.img, (x, y), 5, draw_vals[self.drawing], -1)
extract_signals.py 文件源码
项目:traffic-light-detection
作者: ranveeraggarwal
项目源码
文件源码
阅读 20
收藏 0
点赞 0
评论 0
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