首页 > 编程 > Python > 正文

Python基于opencv实现的简单画板功能示例

2020-01-04 13:34:31
字体:
来源:转载
供稿:网友

本文实例讲述了Python基于opencv实现的简单画板功能。分享给大家供大家参考,具体如下:

import cv2import numpy as npdrawing = False # true if mouse is pressedix,iy = -1,-1def nothing(x):  pass# mouse callback functiondef draw_circle(event,x,y,flags,param):  global ix,iy,drawing  g = param[0]  b = param[1]  r = param[2]  shape = param[3]  if event == cv2.EVENT_LBUTTONDOWN:    drawing = True    ix,iy = x,y  elif event == cv2.EVENT_MOUSEMOVE:    if drawing == True:      if shape == 0:        cv2.rectangle(img,(ix,iy),(x,y),(g,b,r),-1)      else:        cv2.circle(img,(x,y),5,(g,b,r),-1)  elif event == cv2.EVENT_LBUTTONUP:    drawing = False    if shape == 0:      cv2.rectangle(img,(ix,iy),(x,y),(g,b,r),-1)    else:      cv2.circle(img,(x,y),5,(g,b,r),-1)# Create a black image, a windowimg = np.zeros((300,512,3), np.uint8)cv2.namedWindow('image')# create trackbars for color changecv2.createTrackbar('R','image',0,255,nothing)cv2.createTrackbar('G','image',0,255,nothing)cv2.createTrackbar('B','image',0,255,nothing)# create switch for ON/OFF functionalityswitch1 = '0 : OFF /n1 : ON'switch2 = '0: Rectangle /n1: Line 'cv2.createTrackbar(switch1, 'image',0,1,nothing)cv2.createTrackbar(switch2, 'image',0,1,nothing)while(1):  cv2.imshow('image',img)  k = cv2.waitKey(1) & 0xFF  # get current positions of four trackbars  if k == 27:      break  r = cv2.getTrackbarPos('R','image')  g = cv2.getTrackbarPos('G','image')  b = cv2.getTrackbarPos('B','image')  shape = cv2.getTrackbarPos(switch2,'image')  s = cv2.getTrackbarPos(switch1,'image')  if s == 0:    img[:] = 0  else:    if k == 27:      break    cv2.setMouseCallback('image',draw_circle,(b,g,r,shape))cv2.destroyAllWindows()

运行效果:

Python,opencv,画板

希望本文所述对大家Python程序设计有所帮助。


注:相关教程知识阅读请移步到python教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表