Python基于opencv實現(xiàn)的簡單畫板功能示例
本文實例講述了Python基于opencv實現(xiàn)的簡單畫板功能。分享給大家供大家參考,具體如下:
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()
運行效果:
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)學(xué)運算技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》、《Python文件與目錄操作技巧匯總》及《Python圖片操作技巧總結(jié)》
希望本文所述對大家Python程序設(shè)計有所幫助。
相關(guān)文章
python?pandas庫讀取excel/csv中指定行或列數(shù)據(jù)
通過閱讀表格,可以發(fā)現(xiàn)Pandas中提供了非常豐富的數(shù)據(jù)讀寫方法,下面這篇文章主要給大家介紹了關(guān)于python利用pandas庫讀取excel/csv中指定行或列數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2022-02-02Python 實現(xiàn)簡單的shell sed替換功能(實例講解)
下面小編就為大家?guī)硪黄狿ython 實現(xiàn)簡單的shell sed替換功能(實例講解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-09-09Python內(nèi)置函數(shù)reversed()用法分析
這篇文章主要介紹了Python內(nèi)置函數(shù)reversed()用法,結(jié)合實例形式分析了reversed()函數(shù)的功能及針對序列元素相關(guān)操作技巧與使用注意事項,需要的朋友可以參考下2018-03-03