jjjjsum 发表于 2022-9-1 22:53:43

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

最近在学习opencv,发现里面的一些api可以做一些好玩的东西,接下来请看下面
https://www.bilibili.com/video/BV15a411G7sb

【使用软件】
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(40,y+40)], np.int32)
         cv2.polylines(img, , 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()   
软件附件如下
拿着自己的行空板快试试吧






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

666666666666

春秋大仙 发表于 2022-9-6 17:59:10

哇!up主前两篇帖子都很有意思,期待更新
页: [1]
查看完整版本: 上手行空板第二帖--做一个“掌中小画板”