Python基于opencv實(shí)現(xiàn)的簡(jiǎn)單畫(huà)板功能示例
本文實(shí)例講述了Python基于opencv實(shí)現(xiàn)的簡(jiǎn)單畫(huà)板功能。分享給大家供大家參考,具體如下:
import cv2
import numpy as np
drawing = False # true if mouse is pressed
ix,iy = -1,-1
def nothing(x):
pass
# mouse callback function
def draw_circle(event,x,y,flags,param):
global ix,iy,drawing
g = param[0]
b = param[1]
r = param[2]
shape = param[3]
if event == cv2.EVENT_LBUTTONDOWN:
drawing = True
ix,iy = x,y
elif event == cv2.EVENT_MOUSEMOVE:
if drawing == True:
if shape == 0:
cv2.rectangle(img,(ix,iy),(x,y),(g,b,r),-1)
else:
cv2.circle(img,(x,y),5,(g,b,r),-1)
elif event == cv2.EVENT_LBUTTONUP:
drawing = False
if shape == 0:
cv2.rectangle(img,(ix,iy),(x,y),(g,b,r),-1)
else:
cv2.circle(img,(x,y),5,(g,b,r),-1)
# Create a black image, a window
img = np.zeros((300,512,3), np.uint8)
cv2.namedWindow('image')
# create trackbars for color change
cv2.createTrackbar('R','image',0,255,nothing)
cv2.createTrackbar('G','image',0,255,nothing)
cv2.createTrackbar('B','image',0,255,nothing)
# create switch for ON/OFF functionality
switch1 = '0 : OFF \n1 : ON'
switch2 = '0: Rectangle \n1: Line '
cv2.createTrackbar(switch1, 'image',0,1,nothing)
cv2.createTrackbar(switch2, 'image',0,1,nothing)
while(1):
cv2.imshow('image',img)
k = cv2.waitKey(1) & 0xFF
# get current positions of four trackbars
if k == 27:
break
r = cv2.getTrackbarPos('R','image')
g = cv2.getTrackbarPos('G','image')
b = cv2.getTrackbarPos('B','image')
shape = cv2.getTrackbarPos(switch2,'image')
s = cv2.getTrackbarPos(switch1,'image')
if s == 0:
img[:] = 0
else:
if k == 27:
break
cv2.setMouseCallback('image',draw_circle,(b,g,r,shape))
cv2.destroyAllWindows()
運(yùn)行效果:

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)學(xué)運(yùn)算技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》、《Python文件與目錄操作技巧匯總》及《Python圖片操作技巧總結(jié)》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
使用Python pandas讀取CSV文件應(yīng)該注意什么?
本文是給使用pandas的新手而寫(xiě),主要列出一些常見(jiàn)的問(wèn)題,根據(jù)筆者所踩過(guò)的坑,進(jìn)行歸納總結(jié),希望對(duì)讀者有所幫助,需要的朋友可以參考下2021-06-06
詳解pytest中runtestprotocol方法的實(shí)現(xiàn)
runtestprotocol 是 pytest 執(zhí)行測(cè)試流程中的一個(gè)核心函數(shù),它主要負(fù)責(zé)調(diào)用測(cè)試函數(shù)的“setup”、“call”和“teardown”鉤子函數(shù),并生成對(duì)應(yīng)的測(cè)試報(bào)告,本文將深入探究pytest中runtestprotocol方法的實(shí)現(xiàn),需要的朋友可以參考下2023-10-10
淺述python中argsort()函數(shù)的實(shí)例用法
本篇文章主要介紹了淺述python中argsort()函數(shù)的實(shí)例用法,詳細(xì)的介紹了argsort()函數(shù)的用法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-03-03
如何使用python的xml庫(kù)實(shí)現(xiàn)自閉合標(biāo)簽
文章介紹了作者編寫(xiě)一個(gè)URDF格式化插件的初衷,目的是解決sw2urdf導(dǎo)出的URDF文件格式混亂的問(wèn)題,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2025-01-01
python編寫(xiě)腳本之pyautogui的安裝和使用教程
pyautogui一個(gè)神奇的圖像自動(dòng)化庫(kù),學(xué)會(huì)之后無(wú)所不能,下面這篇文章主要給大家介紹了關(guān)于python編寫(xiě)腳本之pyautogui的安裝和使用的相關(guān)資料,需要的朋友可以參考下2021-12-12
Python調(diào)用兩個(gè)機(jī)器人聊天的實(shí)戰(zhàn)
本文主要介紹了Python調(diào)用兩個(gè)機(jī)器人聊天,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
Python MySQLdb 執(zhí)行sql語(yǔ)句時(shí)的參數(shù)傳遞方式
這篇文章主要介紹了Python MySQLdb 執(zhí)行sql語(yǔ)句時(shí)的參數(shù)傳遞方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03
Python運(yùn)行提示缺少模塊問(wèn)題解決方案
這篇文章主要介紹了Python運(yùn)行提示缺少模塊問(wèn)題解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04

