2216| 2
|
[M10教程] 上手行空板第二帖--做一个“掌中小画板” |
最近在学习opencv,发现里面的一些api可以做一些好玩的东西,接下来请看下面 【使用软件】 mind+的python编程区 【使用硬件】 行空板 数据线 【制作步骤】 1.首先导入opencv的库文件 2.接下来运用opencv里面的鼠标回调函数编写一些程序 3.完成编写,接下来让我们看看效果吧 【功能展示】 1.当按下a键时,可以用手指绘制多边形 2.当按下b键时,可以用手指绘制圆形 【代码实例】 import cv2 import numpy as np curshape = 0 startops = (0, 0) img = np.zeros((320, 240, 3), np.uint8) cv2.namedWindow('drawshape', cv2.WINDOW_NORMAL) def mouse_callback(event, x, y, flags, userdate): global curshape, startops if(event & cv2.EVENT_LBUTTONDOWN == cv2.EVENT_LBUTTONDOWN): startops = (x,y) elif(event & cv2.EVENT_LBUTTONUP == cv2.EVENT_LBUTTONUP): if curshape == 1: pts = np.array([startops, (x,y), (x+40,y+40)], np.int32) cv2.polylines(img, [pts], True, (0,0,255)) elif curshape == 2: a = (x - startops[0]) b = (y - startops[1]) r = int((a**2+b**2)**0.5) cv2.circle(img, startops, r, (255, 0, 0)) else: print('error:no shape') cv2.setMouseCallback('drawshape', mouse_callback, "123") while True: cv2.imshow('drawshape', img) key = cv2.waitKey(0) & 0xFF if key == ord("q"): break elif key == ord('a'): curshape = 1 elif key == ord('b'): curshape = 2 cv2.distoryAllWindow() 软件附件如下 拿着自己的行空板快试试吧 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed