1222浏览
查看: 1222|回复: 2

[教程] 上手行空板第二帖--做一个“掌中小画板”

[复制链接]
最近在学习opencv,发现里面的一些api可以做一些好玩的东西,接下来请看下面


【使用软件】
mind+的python编程区
【使用硬件】
行空板 数据线
【制作步骤】
1.首先导入opencv的库文件上手行空板第二帖--做一个“掌中小画板”图1
2.接下来运用opencv里面的鼠标回调函数编写一些程序
上手行空板第二帖--做一个“掌中小画板”图2
3.完成编写,接下来让我们看看效果吧
【功能展示】
1.当按下a键时,可以用手指绘制多边形
上手行空板第二帖--做一个“掌中小画板”图3
2.当按下b键时,可以用手指绘制圆形
上手行空板第二帖--做一个“掌中小画板”图4
【代码实例】
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()   
软件附件如下
拿着自己的行空板快试试吧
上手行空板第二帖--做一个“掌中小画板”图4





vvjr  见习技师

发表于 2022-9-6 13:01:51

666666666666
回复

使用道具 举报

春秋大仙  高级技师

发表于 2022-9-6 17:59:10

哇!up主前两篇帖子都很有意思,期待更新
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail