#coding:utf-8 #作者 :思 #创建时间:2021/6/29 13:58 #功能 : 使用 python +opencv ,完成轨迹栏获取画笔颜色,画笔大小可调的点击鼠标并移动的画图程序 import numpy as np import cv2 def nothing(x): pass #创建一个黑色图像,一个窗口 img = np.zeros((512,512,3),np.uint8) cv2.namedWindow('draw_window') #创建开关轨迹栏:1,程序可正常应用,0,程序不可应用 cv2.createTrackbar('0:OFF\n1:ON','draw_window',0,1,nothing) #创建笔的粗细 1~10 cv2.createTrackbar('width','draw_window',1,10,nothing) #创建颜色变化的轨迹栏 cv2.createTrackbar('R','draw_window',0,255,nothing) cv2.createTrackbar('G','draw_window',0,255,nothing) cv2.createTrackbar('B','draw_window',0,255,nothing) #鼠标画图回调函数 draw = False def draw_fun(event,x,y,flags,param): radius = param[0] color = param[1] global draw if event == cv2.EVENT_LBUTTONDOWN: draw = True elif event == cv2.EVENT_MOUSEMOVE: if draw: cv2.circle(img,(x,y),radius,color,-1) # cv2.circle(img,(x,y), 20, (0,255,0), -1) elif event == cv2.EVENT_LBUTTONUP: draw = False #主程序 while(1): # cv2.imshow('draw_window',img) if cv2.waitKey(20)&0xFF ==27: break #获取轨迹栏数值 r = cv2.getTrackbarPos('R','draw_window') g = cv2.getTrackbarPos('G', 'draw_window') b = cv2.getTrackbarPos('B', 'draw_window') #开关栏数值 switch = cv2.getTrackbarPos('0:OFF\n1:ON', 'draw_window') if switch ==0: color =0 img[:]=color #仍为黑色图 else: #获取笔的粗细 radius = cv2.getTrackbarPos('width','draw_window') color = (b,g,r) ##执行鼠标点击画图 cv2.setMouseCallback('draw_window',draw_fun,[radius,color]) cv2.imshow('draw_window', img) cv2.destroyAllWindows()
使用 python +opencv ,完成轨迹栏获取画笔颜色,画笔大小可调的点击鼠标并移动的画图程序
最新推荐文章于 2023-07-02 11:21:28 发布