chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

怎樣在樹莓派上使用OpenCV構(gòu)建簡單的繪圖應(yīng)用程序

454398 ? 來源:工程師吳畏 ? 2019-07-26 11:30 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

該應(yīng)用程序?qū)⒂兴膫€(gè)軌道欄:三個(gè)將用于更改顏色(B,G,R),第四個(gè)將用于選擇在矩形,圓形,直線或自由線之間。

也可以將軌跡欄用作開關(guān)。默認(rèn)情況下,OpenCV沒有按鈕功能,但我們可以將軌跡欄用作按鈕。

我們可以在這個(gè)應(yīng)用程序中使用的另一個(gè)有用的功能是鼠標(biāo)回調(diào)函數(shù),它將在鼠標(biāo)事件發(fā)生時(shí)執(zhí)行。

我們可以使用不同的形狀使用我們的OpenCV繪圖應(yīng)用程序繪制。

Python代碼

以下是用于創(chuàng)建簡單繪畫應(yīng)用程序的完整Python代碼:

import math

import cv2

def nothing(x):

pass

# Load an image

img = cv2.imread(‘obama.jpg’)

cv2.namedWindow(‘image’, cv2.WINDOW_NORMAL)

# 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 trackbars for drawing shapes

cv2.createTrackbar(‘Select’, ‘image’,0,3,nothing)

drawing = False # true if mouse is pressed

ix,iy = -1,-1

# mouse callback function

def draw(event,x,y,flags,param):

global ix,iy,drawing

if event == cv2.EVENT_LBUTTONDOWN:

drawing = True

ix,iy = x,y

elif event == cv2.EVENT_MOUSEMOVE:

if drawing == True:

if s == 3:

cv2.circle(img,(x,y),5,(b, g, r),-1)

elif event == cv2.EVENT_LBUTTONUP:

if drawing == True:

if s == 0:

cv2.rectangle(img,(ix,iy),(x,y),(b, g, r),5)

elif s == 1:

cv2.circle(img,(int((ix+x)/2), int((iy+y)/2)),int(math.sqrt( ((ix-x)**2)+((iy-y)**2) )),(b, g, r),5)

elif s == 2:

cv2.line(img,(ix,iy),(x,y),(b, g, r),5)

drawing = False

cv2.setMouseCallback(‘image’,draw)

while(1):

cv2.imshow(‘image’,img)

k = cv2.waitKey(1) & 0xFF

if k == 27:

break

# get current positions of four trackbars

r = cv2.getTrackbarPos(‘R’,‘image’)

g = cv2.getTrackbarPos(‘G’,‘image’)

b = cv2.getTrackbarPos(‘B’,‘image’)

s = cv2.getTrackbarPos(‘Select’,‘image’)

cv2.destroyAllWindows()

閱讀圖像

函數(shù) cv2.imread()用于讀取圖像,其參數(shù)是圖像的名稱。如果圖像在工作目錄中,只需寫入圖像的名稱。否則,您將必須提供圖像的完整路徑。

我們將創(chuàng)建一個(gè)窗口并將其標(biāo)記為“圖像”。所有軌跡都將附加到此窗口。

img = cv2.imread(‘obama.jpg’)

cv2.namedWindow(‘image’, cv2.WINDOW_NORMAL)

創(chuàng)建軌跡欄

要?jiǎng)?chuàng)建軌跡欄,我們使用 cv2.createTrackbar()函數(shù),它有五個(gè)參數(shù):

軌跡欄名稱

它所附加的窗口名稱

默認(rèn)值

最大值

回調(diào)函數(shù)(每次跟蹤欄值更改時(shí)執(zhí)行)

回調(diào)函數(shù)始終具有默認(rèn)參數(shù),即軌跡欄位置。在我們的例子中,函數(shù)什么都不做,所以我們只是傳遞。

我們?yōu)榧t色,綠色和藍(lán)色創(chuàng)建了三個(gè)軌跡欄。每個(gè)軌跡欄的默認(rèn)值為0,最大值為255,并將它們附加到名為“image”的窗口。

接下來我們需要?jiǎng)?chuàng)建一個(gè)軌跡欄,在矩形,圓形,直線之間進(jìn)行選擇和自由行,默認(rèn)值為0,最大值為3.我們將按如下方式設(shè)置值:

0:矩形

1:圓圈

2:直線

3:自由行

# 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 trackbars for drawing shapes

cv2.createTrackbar(‘Select’, ‘image’,0,3,nothing)

鼠標(biāo)回調(diào)函數(shù)

我們現(xiàn)在可以創(chuàng)建一個(gè)鼠標(biāo)回調(diào)函數(shù),該函數(shù)在發(fā)生鼠標(biāo)事件時(shí)執(zhí)行。鼠標(biāo)事件可以是與鼠標(biāo)相關(guān)的任何事件:左鍵向下,左鍵向上,左鍵雙擊等。

該函數(shù)為我們提供每個(gè)坐標(biāo)(x,y)鼠標(biāo)事件。通過這個(gè)事件和位置,我們可以做任何我們喜歡的事情。

創(chuàng)建一個(gè)鼠標(biāo)回調(diào)函數(shù)有一個(gè)特定的格式,在任何地方都是一樣的。它僅在功能方面有所不同。在我們的例子中,回調(diào)函數(shù)是繪制函數(shù),它將根據(jù)第四個(gè)軌跡欄的位置繪制矩形,圓形,直線或自由線。

def draw(event,x,y,flags,param):

global ix,iy,drawing

if event == cv2.EVENT_LBUTTONDOWN:

drawing = True

ix,iy = x,y

elif event == cv2.EVENT_MOUSEMOVE:

if drawing == True:

if s == 3:

cv2.circle(img,(x,y),5,(b, g, r),-1)

elif event == cv2.EVENT_LBUTTONUP:

if drawing == True:

if s == 0:

cv2.rectangle(img,(ix,iy),(x,y),(b, g, r),5)

elif s == 1:

cv2.circle(img,(int((ix+x)/2), int((iy+y)/2)),int(math.sqrt( ((ix-x)**2)+((iy-y)**2) )),(b, g, r),5)

elif s == 2:

cv2.line(img,(ix,iy),(x,y),(b, g, r),5)

drawing = False

cv2.setMouseCallback(‘image’,draw)

獲取軌跡欄位置

Cv2.getTrackbarPos()函數(shù)用于獲取軌跡欄的當(dāng)前位置。它所采用的第一個(gè)參數(shù)是我們之前創(chuàng)建的軌跡欄的名稱,第二個(gè)參數(shù)是它將附加到的窗口的名稱。

# get current positions of four trackbars

r = cv2.getTrackbarPos(‘R’,‘image’)

g = cv2.getTrackbarPos(‘G’,‘image’)

b = cv2.getTrackbarPos(‘B’,‘image’)

s = cv2.getTrackbarPos(‘Select’,‘image’)

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • OpenCV
    +關(guān)注

    關(guān)注

    33

    文章

    650

    瀏覽量

    43981
  • 樹莓派
    +關(guān)注

    關(guān)注

    122

    文章

    2067

    瀏覽量

    108953
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    基于樹莓派(RaspberryPi)構(gòu)建高效實(shí)時(shí)監(jiān)控系統(tǒng)

    及安裝 ZeroNews Agent 樹莓派(Raspberry Pi)上下載并運(yùn)行 ZeroNews。 第 2 步:樹莓派上安裝 Motion 監(jiān)控 先在
    的頭像 發(fā)表于 09-22 15:14 ?524次閱讀
    基于<b class='flag-5'>樹莓</b>派(RaspberryPi)<b class='flag-5'>構(gòu)建</b>高效實(shí)時(shí)監(jiān)控系統(tǒng)

    零成本鋼鐵俠手套!樹莓派+OpenCV 秒變手勢遙控器!

    大家好,這是一個(gè)樹莓派和OpenCV的連載專題。使用樹莓派與OpenCV實(shí)現(xiàn)姿態(tài)估計(jì)和面部特征點(diǎn)追蹤使用樹莓派與
    的頭像 發(fā)表于 08-16 16:16 ?672次閱讀
    零成本鋼鐵俠手套!<b class='flag-5'>樹莓</b>派+<b class='flag-5'>OpenCV</b> 秒變手勢遙控器!

    如何使用樹莓派與OpenCV實(shí)現(xiàn)面部和運(yùn)動(dòng)追蹤的云臺(tái)系統(tǒng)?

    大家好,這是一個(gè)樹莓派和OpenCV的連載專題。使用樹莓派與OpenCV實(shí)現(xiàn)姿態(tài)估計(jì)和面部特征點(diǎn)追蹤使用樹莓派與
    的頭像 發(fā)表于 08-14 17:45 ?704次閱讀
    如何使用<b class='flag-5'>樹莓</b>派與<b class='flag-5'>OpenCV</b>實(shí)現(xiàn)面部和運(yùn)動(dòng)追蹤的云臺(tái)系統(tǒng)?

    如何使用樹莓派+OpenCV實(shí)現(xiàn)姿態(tài)估計(jì)和面部特征點(diǎn)追蹤?

    大家好,這是一個(gè)樹莓派和OpenCV的連載專題。使用樹莓派與OpenCV實(shí)現(xiàn)姿態(tài)估計(jì)和面部特征點(diǎn)追蹤使用樹莓派與
    的頭像 發(fā)表于 08-13 17:44 ?728次閱讀
    如何使用<b class='flag-5'>樹莓</b>派+<b class='flag-5'>OpenCV</b>實(shí)現(xiàn)姿態(tài)估計(jì)和面部特征點(diǎn)追蹤?

    如何在樹莓派上安裝Ubuntu MATE ?

    ,而非GNOME。本文中,我將介紹如何輕松地樹莓派上安裝它。UbuntuMATE官方支持樹莓派,因此每發(fā)布一個(gè)新版本,都會(huì)為
    的頭像 發(fā)表于 08-12 18:56 ?2537次閱讀
    如何在<b class='flag-5'>樹莓</b><b class='flag-5'>派上</b>安裝Ubuntu MATE ?

    初學(xué)者指南:樹莓派上搭建虛擬環(huán)境!

    在這篇簡明扼要的指南中,我們將探討如何在樹莓派上設(shè)置和使用虛擬環(huán)境(或稱為Venv)——包括終端和Thonny集成開發(fā)環(huán)境中。使用Bookworm操作系統(tǒng)或更高版本時(shí),或在嘗試安裝Python
    的頭像 發(fā)表于 07-27 13:24 ?469次閱讀
    初學(xué)者指南:<b class='flag-5'>樹莓</b><b class='flag-5'>派上</b>搭建虛擬環(huán)境!

    如何在樹莓派上設(shè)置并使用VNC?遠(yuǎn)程訪問完整指南!

    為什么要在樹莓派上使用VNC?使用VNC與樹莓派的主要優(yōu)勢在于其提供的靈活性。我們可以“無頭模式”(無物理顯示器)下運(yùn)行樹莓派,同時(shí)仍能完
    的頭像 發(fā)表于 07-26 20:42 ?4327次閱讀
    如何在<b class='flag-5'>樹莓</b><b class='flag-5'>派上</b>設(shè)置并使用VNC?遠(yuǎn)程訪問完整指南!

    C++ 與 Python:樹莓派上哪種語言更優(yōu)?

    Python是樹莓派上的首選編程語言,我們的大部分教程都使用它。然而,C++物聯(lián)網(wǎng)項(xiàng)目中同樣廣受歡迎且功能強(qiáng)大。那么,樹莓派項(xiàng)目中選擇哪
    的頭像 發(fā)表于 07-24 15:32 ?484次閱讀
    C++ 與 Python:<b class='flag-5'>樹莓</b><b class='flag-5'>派上</b>哪種語言更優(yōu)?

    釋放潛力:樹莓派上運(yùn)行安卓系統(tǒng)實(shí)現(xiàn)多樣化應(yīng)用!

    為什么要在樹莓派上運(yùn)行安卓系統(tǒng)?安卓系統(tǒng)以其龐大的應(yīng)用生態(tài)系統(tǒng)和用戶友好的界面而聞名,它能夠?qū)?b class='flag-5'>樹莓派轉(zhuǎn)變?yōu)楣δ軓?qiáng)大的設(shè)備,能夠處理從媒體消費(fèi)到輕量級(jí)計(jì)算和物聯(lián)網(wǎng)應(yīng)用等各種任務(wù)。優(yōu)勢高度定制化:
    的頭像 發(fā)表于 07-05 08:33 ?657次閱讀
    釋放潛力:<b class='flag-5'>在</b><b class='flag-5'>樹莓</b><b class='flag-5'>派上</b>運(yùn)行安卓系統(tǒng)實(shí)現(xiàn)多樣化應(yīng)用!

    如何在樹莓派上安裝并運(yùn)行 Arduino 集成開發(fā)環(huán)境!

    使用樹莓派單板計(jì)算機(jī),你可以運(yùn)行各種應(yīng)用程序,包括廣受歡迎的Arduino集成開發(fā)環(huán)境(IDE)。這意味著你可以用它輕松地為通過USB連接到樹莓派計(jì)算機(jī)的微控制器編程,以創(chuàng)建交互式電子項(xiàng)目。下面
    的頭像 發(fā)表于 07-01 17:41 ?1669次閱讀
    如何在<b class='flag-5'>樹莓</b><b class='flag-5'>派上</b>安裝并運(yùn)行 Arduino 集成開發(fā)環(huán)境!

    請(qǐng)問是否可以通用Windows平臺(tái)中構(gòu)建OpenVINO? GenAI C++ 應(yīng)用程序

    無法通用 Windows 平臺(tái)中構(gòu)建OpenVINO? GenAI C++ 應(yīng)用程序
    發(fā)表于 06-24 07:35

    從初學(xué)到進(jìn)階:樹莓派上最適合你的代碼編輯器推薦!

    安裝樹莓派操作系統(tǒng)后,你就可以使用Python、Scratch、Java、C/C++等受Linux支持的多種編程語言進(jìn)行編程了。其中,Python是樹莓派上最受歡迎的編程語言。
    的頭像 發(fā)表于 05-15 16:20 ?584次閱讀
    從初學(xué)到進(jìn)階:<b class='flag-5'>樹莓</b><b class='flag-5'>派上</b>最適合你的代碼編輯器推薦!

    樹莓派云OS哪個(gè)最受歡迎?來看看Github Star 28.9k的項(xiàng)目!

    應(yīng)用程序,簡化管理過程,位于現(xiàn)有操作系統(tǒng)之上,將設(shè)備轉(zhuǎn)變?yōu)樽酝泄軝C(jī)器。2.安裝與訪問:樹莓派上安裝只需運(yùn)行bash腳本,安裝完成后通過終端給出的IP地址
    的頭像 發(fā)表于 03-25 09:21 ?740次閱讀
    <b class='flag-5'>樹莓</b>派云OS哪個(gè)最受歡迎?來看看Github Star 28.9k的項(xiàng)目!

    樹莓派上設(shè)置 DeepSeek R1:2025 年離線人工智能的未來

    概述《樹莓派上設(shè)置DeepSeekR1:2025年離線人工智能的未來》是一份前瞻性技術(shù)指南,聚焦中國AI初創(chuàng)公司DeepSeek于2023年底推出的開源模型DeepSeekR1。該模型旨在通過提供
    的頭像 發(fā)表于 03-25 09:20 ?956次閱讀
    <b class='flag-5'>在</b><b class='flag-5'>樹莓</b><b class='flag-5'>派上</b>設(shè)置 DeepSeek R1:2025 年離線人工智能的未來

    人臉識(shí)別指南:如何在樹莓派上安裝和設(shè)置 Dlib

    學(xué)習(xí)如何在樹莓派上安裝Dlib并配置人臉識(shí)別功能,為您的AI項(xiàng)目奠定基礎(chǔ)。樹莓派上安裝Dlib的詳細(xì)步驟要為
    的頭像 發(fā)表于 03-24 17:31 ?1081次閱讀
    人臉識(shí)別指南:如何在<b class='flag-5'>樹莓</b><b class='flag-5'>派上</b>安裝和設(shè)置 Dlib