久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python 基于opencv 實(shí)現(xiàn)一個(gè)鼠標(biāo)繪圖小程序

瀏覽:125日期:2022-07-02 14:47:31
需求

在畫(huà)布上用鼠標(biāo)畫(huà)圖,可以畫(huà)圓或矩形,按m鍵在兩種模式下切換。左鍵按下時(shí)開(kāi)始畫(huà)圖,移動(dòng)到哪兒畫(huà)到哪兒,左鍵釋放時(shí)結(jié)束畫(huà)圖。

實(shí)現(xiàn)思想

用鼠標(biāo)畫(huà)圖:需要定義鼠標(biāo)的回調(diào)函數(shù)mouse_event畫(huà)圓或矩形:需要定義一個(gè)畫(huà)圖的模式mode左鍵單擊、移動(dòng)、釋放:需要捕獲三個(gè)不同的事件開(kāi)始畫(huà)圖,結(jié)束畫(huà)圖:需要定義一個(gè)畫(huà)圖的標(biāo)記位drawing

實(shí)現(xiàn)代碼

import cv2 as cvimport numpy as npdrawing = False # 是否開(kāi)始畫(huà)圖mode = True # True:畫(huà)矩形,F(xiàn)alse:畫(huà)圓start = (-1, -1)# 鼠標(biāo)的回調(diào)函數(shù)的參數(shù)格式是固定的,不要隨意更改。def mouse_event(event, x, y, flags, param): global start, drawing, mode # 左鍵按下:開(kāi)始畫(huà)圖 if event == cv.EVENT_LBUTTONDOWN: drawing = True start = (x, y) # 鼠標(biāo)移動(dòng),畫(huà)圖 elif event == cv.EVENT_MOUSEMOVE: if drawing: if mode:cv.rectangle(img, start, (x, y), (0, 255, 0), -1) else:cv.circle(img, (x, y), 5, (0, 0, 255), -1) # 左鍵釋放:結(jié)束畫(huà)圖 elif event == cv.EVENT_LBUTTONUP: drawing = False if mode: cv.rectangle(img, start, (x, y), (0, 255, 0), -1) else: cv.circle(img, (x, y), 5, (0, 0, 255), -1)img = np.zeros((512, 512, 3), np.uint8)cv.namedWindow(’image’)cv.setMouseCallback(’image’, mouse_event)while(True): cv.imshow(’image’, img) # 按下m切換模式 if cv.waitKey(1) == ord(’m’): mode = not mode # 按ESC鍵退出程序 elif cv.waitKey(1) == 27: break實(shí)驗(yàn)結(jié)果

python 基于opencv 實(shí)現(xiàn)一個(gè)鼠標(biāo)繪圖小程序

以上就是python 基于opencv 實(shí)現(xiàn)一個(gè)鼠標(biāo)繪圖小程序的詳細(xì)內(nèi)容,更多關(guān)于python 鼠標(biāo)繪圖的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 崇明县| 威海市| 九龙县| 青阳县| 汉阴县| 甘谷县| 平武县| 东平县| 曲麻莱县| 嵩明县| 桓台县| 右玉县| 五指山市| 漳平市| 涞水县| 内黄县| 普陀区| 乐昌市| 泾源县| 如东县| 钟祥市| 龙里县| 大方县| 长海县| 双鸭山市| 丹寨县| 田阳县| 东源县| 仁化县| 原阳县| 秦皇岛市| 黄浦区| 中西区| 阜新| 潢川县| 寻乌县| 洛浦县| 塔河县| 江油市| 叶城县| 内黄县|