简单的python画图代码_python opencv如何实现简易画图板 python opencv实现简易画图板代码...
python opencv如何實現(xiàn)簡易畫圖板?本篇文章小編給大家分享一下python opencv實現(xiàn)簡易畫圖板代碼,小編覺得挺不錯的,現(xiàn)在分享給大家供大家參考,有需要的小伙伴們可以來看看。
代碼如下:
# -*- coding: utf-8 -*-
"""
Created on Sat May 19 17:34:54 2018
@author: xxx
"""
import cv2 as cv
import numpy as np
def nothing(x):
pass
# 當鼠標按下時變?yōu)?True
drawing = False
# 如果 mode 為 True 繪制矩形。按下 'm' 變成繪制曲線
mode = True
ix, iy = -1, -1
#創(chuàng)建回調(diào)函數(shù)
def draw_circle(event, x, y, flags, param):
r = cv.getTrackbarPos('R', 'image')
g = cv.getTrackbarPos('G', 'image')
b = cv.getTrackbarPos('B', 'image')
color = (b, g, r)
global ix, iy, drawing, mode
# 當按下左鍵是返回起始位置坐標
if event == cv.EVENT_LBUTTONDOWN:
drawing = True
ix, iy = x, y
# 當鼠標左鍵按下并移動是繪制圖形。event 可以查看移動, flag 查看是否按下
elif event == cv.EVENT_MOUSEMOVE and flags == cv.EVENT_FLAG_LBUTTON:
if drawing == True:
if mode == True:
cv.rectangle(img, (ix, iy), (x, y), color, -1)
else:
# 繪制圓圈,小圓點連在一起就成了線,3代表畫筆的粗細
cv.circle(img, (ix, iy), 3, color, -1)
# 下面注釋的代碼是起始點為圓心,起點到終點為半徑
# r = int(np.sqrt((x - ix)**2 + (y - iy)**2))
# cv.circle(img, (x, y), r, (0, 0, 255), -1)
# 當鼠標松開停止繪畫
elif event == cv.EVENT_LBUTTONUP:
drawing == False
# if mode == True:
# cv.rectangle(img, (ix, iy), (x, y), (0, 255, 0), -1)
# else:
# cv.circle(img, (x, y), 5, (0, 0, 255), -1)
#創(chuàng)建一幅黑色圖形
img = np.zeros((512, 512, 3), np.uint8)
cv.namedWindow('image')
cv.createTrackbar('R', 'image', 0, 255, nothing)
cv.createTrackbar('G', 'image', 0, 255, nothing)
cv.createTrackbar('B', 'image', 0, 255, nothing)
cv.setMouseCallback('image', draw_circle)
while(1):
cv.imshow('image', img)
k = cv.waitKey(1)&0xFF
if k == ord('m'):
mode = not mode
elif k==27:
break
cv.destroyAllWindow()
總結
以上是生活随笔為你收集整理的简单的python画图代码_python opencv如何实现简易画图板 python opencv实现简易画图板代码...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言贪吃蛇黑方框,[求助][贪吃蛇]源
- 下一篇: websocket python爬虫_p