python opencv實(shí)現(xiàn)簡易畫圖板
更新時(shí)間:2020年08月27日 11:35:34 作者:AnimateX
這篇文章主要為大家詳細(xì)介紹了python opencv實(shí)現(xiàn)簡易畫圖板,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
python-opencv實(shí)現(xiàn)簡易畫圖板,供大家參考,具體內(nèi)容如下
# -*- 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
# 當(dāng)鼠標(biāo)按下時(shí)變?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
# 當(dāng)按下左鍵是返回起始位置坐標(biāo)
if event == cv.EVENT_LBUTTONDOWN:
drawing = True
ix, iy = x, y
# 當(dāng)鼠標(biāo)左鍵按下并移動(dòng)是繪制圖形。event 可以查看移動(dòng), 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:
# 繪制圓圈,小圓點(diǎn)連在一起就成了線,3代表畫筆的粗細(xì)
cv.circle(img, (ix, iy), 3, color, -1)
# 下面注釋的代碼是起始點(diǎn)為圓心,起點(diǎn)到終點(diǎn)為半徑
# r = int(np.sqrt((x - ix)**2 + (y - iy)**2))
# cv.circle(img, (x, y), r, (0, 0, 255), -1)
# 當(dāng)鼠標(biāo)松開停止繪畫
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()
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
GPU排隊(duì)腳本實(shí)現(xiàn)空閑觸發(fā)python腳本實(shí)現(xiàn)示例
有的服務(wù)器是多用戶使用,GPU的資源常常被占據(jù)著,很可能在夜間GPU空閑了,但來不及運(yùn)行自己的腳本。如果沒有和別人共享服務(wù)器的話,自己的多個(gè)程序想排隊(duì)使用GPU,也可以用這個(gè)腳本2021-11-11
python如何利用plt.legend()添加圖例代碼示例
用python的matplotlib畫圖時(shí),往往需要加圖例說明,下面這篇文章主要給大家介紹了關(guān)于python如何利用plt.legend()添加圖例的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-11-11
簡單了解Python3 bytes和str類型的區(qū)別和聯(lián)系
這篇文章主要介紹了簡單了解Python3 bytes和str類型的區(qū)別和聯(lián)系,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12
python實(shí)現(xiàn)去除下載電影和電視劇文件名中的多余字符的方法
這篇文章主要介紹了python實(shí)現(xiàn)去除下載電影和電視劇文件名中的多余字符的方法,可以批量修改視頻文件名稱,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-09-09
python網(wǎng)絡(luò)編程之?dāng)?shù)據(jù)傳輸U(kuò)DP實(shí)例分析
這篇文章主要介紹了python網(wǎng)絡(luò)編程之?dāng)?shù)據(jù)傳輸U(kuò)DP實(shí)現(xiàn)方法,實(shí)例分析了Python基于UDP協(xié)議的數(shù)據(jù)傳輸實(shí)現(xiàn)方法,需要的朋友可以參考下2015-05-05

