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

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

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

OpenCV入門(mén)之OpenCV的基本操作實(shí)戰(zhàn)代碼

jf_78858299 ? 來(lái)源:DL INtoOUT ? 作者:AN ? 2023-02-07 14:24 ? 次閱讀

案例實(shí)戰(zhàn)

1、簡(jiǎn)易調(diào)色板

def ColorPalette():
    # 簡(jiǎn)易調(diào)色板
    def callback(value):
        print(value)
    # trackbar控件
    cv2.namedWindow("trackbar",cv2.WINDOW_NORMAL)
    cv2.resizeWindow("trackbar",640,480)
    cv2.createTrackbar("R","trackbar",0,255,callback)
    cv2.createTrackbar("G","trackbar",0,255,callback)
    cv2.createTrackbar("B","trackbar",0,255,callback)


    bg = np.zeros((480,640,3),np.uint8)


    while True:
        r = cv2.getTrackbarPos("R","trackbar")
        g = cv2.getTrackbarPos("G", "trackbar")
        b = cv2.getTrackbarPos("B", "trackbar")
        bg[:] = [b,g,r]
        cv2.imshow("trackbar",bg)
        key = cv2.waitKey(20)
        if key == 27:
            break
    cv2.destroyAllWindows()


# ColorPalette()

2、創(chuàng)建畫(huà)布,按下指定鍵畫(huà)指定圖案

def CaptureShape(img):
    # 創(chuàng)建畫(huà)布,按下指定鍵畫(huà)指定圖案
    cur_shape = 0
    # 初始坐標(biāo)
    start_pos = (0,0)


    def mouse_callback(event,x,y,flags,userdata):
        nonlocal start_pos,cur_shape
        # 鼠標(biāo)按下
        if event == cv2.EVENT_LBUTTONDOWN:
            start_pos = (x,y)
        # 鼠標(biāo)松開(kāi)
        elif event == cv2.EVENT_LBUTTONUP:
            if cur_shape == 0:
                cv2.line(img,start_pos,(x,y),(0,255,255),2)
            elif cur_shape == 1:
                cv2.rectangle(img,start_pos,(x,y),(255,0,255),2)
            elif cur_shape==2:
                a = (x-start_pos[0])
                b = (y-start_pos[1])
                r = int((a**2+b**2)**0.5)
                cv2.circle(img,start_pos,r,(255,255,0),2)
            else:
                print("not support")


    cv2.namedWindow('draw',cv2.WINDOW_NORMAL)
    cv2.setMouseCallback('draw',mouse_callback)


    while True:
        # 按下l鍵畫(huà)直線,按下r鍵畫(huà)矩形,按下c鍵畫(huà)圓
        cv2.imshow('draw',img)
        key = cv2.waitKey(1)
        if key == 27:
            break
        elif key == ord("l"):
            cur_shape = 0
        elif key == ord("r"):
            cur_shape =1
        elif key == ord("c"):
            cur_shape =2


    cv2.destroyAllWindows()
# img = np.zeros([500,500,3],np.uint8)
# CaptureShape(img)

3、人臉檢測(cè)

def FaceDetect():
    # 人臉檢測(cè)
    face_detector = cv2.CascadeClassifier("./haarcascade_frontalface_alt.xml")
    while True:
        cap = cv2.VideoCapture(0)
        ret,frame = cap.read()
        gray = cv2.cvtColor(frame,code=cv2.COLOR_BGR2GRAY)
        face = face_detector.detectMultiScale(gray)
        for x,y,w,h in face:
            cv2.circle(frame,(x+w//2,y+h//2),w//2,(0,255,255),2)
        cv2.imshow("img",frame)
        key = cv2.waitKey(20)
        if key == 27:
            break
    cap.release()
    cv2.destroyAllWindows()
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • matlab
    +關(guān)注

    關(guān)注

    182

    文章

    2960

    瀏覽量

    230034
  • 開(kāi)源
    +關(guān)注

    關(guān)注

    3

    文章

    3218

    瀏覽量

    42329
  • OpenCV
    +關(guān)注

    關(guān)注

    29

    文章

    625

    瀏覽量

    41215
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    OpenCV_編程簡(jiǎn)介(入門(mén)必讀)

    opencv編程簡(jiǎn)介,入門(mén)必讀,適合新手簡(jiǎn)單了解opencv的相關(guān)知識(shí)。
    發(fā)表于 03-21 13:49 ?11次下載

    OpenCV開(kāi)發(fā)環(huán)境的配置

    OpenCV3編程入門(mén)》書(shū)本配套源代碼:OpenCV開(kāi)發(fā)環(huán)境的配置
    發(fā)表于 06-06 15:20 ?8次下載

    基本閾值操作_《OpenCV3編程入門(mén)》書(shū)本配套源代碼

    OpenCV3編程入門(mén)》書(shū)本配套源代碼:基本閾值操作
    發(fā)表于 06-06 15:39 ?8次下載

    基本鼠標(biāo)操作_《OpenCV3編程入門(mén)》書(shū)本配套源代碼

    OpenCV3編程入門(mén)》書(shū)本配套源代碼:基本鼠標(biāo)操作
    發(fā)表于 06-06 15:39 ?5次下載

    形態(tài)學(xué)圖像處理綜合示例_《OpenCV3編程入門(mén)》書(shū)本配套源代碼

    OpenCV3編程入門(mén)》書(shū)本配套源代碼:形態(tài)學(xué)圖像處理綜合示例
    發(fā)表于 06-06 15:52 ?8次下載

    圖像濾波綜合示例_《OpenCV3編程入門(mén)》書(shū)本配套源代碼

    OpenCV3編程入門(mén)》書(shū)本配套源代碼:圖像濾波綜合示例
    發(fā)表于 06-06 15:52 ?6次下載

    OpenCV進(jìn)行基本繪圖_《OpenCV3編程入門(mén)》書(shū)本配套源

    OpenCV3編程入門(mén)》書(shū)本配套源代碼:用OpenCV進(jìn)行基本繪圖
    發(fā)表于 05-11 16:46 ?36次下載

    用morphologyEx進(jìn)行圖像開(kāi)運(yùn)算_《OpenCV3編程入門(mén)》配套源代碼

    OpenCV3編程入門(mén)》書(shū)本配套源代碼:用morphologyEx進(jìn)行圖像開(kāi)運(yùn)算
    發(fā)表于 06-06 15:52 ?11次下載

    用morphologyEx進(jìn)行圖像閉運(yùn)算_《OpenCV3編程入門(mén)》配套源代碼

    OpenCV3編程入門(mén)》書(shū)本配套源代碼:用morphologyEx進(jìn)行圖像閉運(yùn)算
    發(fā)表于 06-06 15:52 ?3次下載

    支持向量機(jī)SVM引導(dǎo)_《OpenCV3編程入門(mén)》書(shū)本配套源代碼

    OpenCV3編程入門(mén)》書(shū)本配套源代碼:支持向量機(jī)SVM引導(dǎo)
    發(fā)表于 06-06 15:52 ?2次下載

    OpenCV入門(mén)OpenCV的基本操作1

    OpenCV是一個(gè)基于Apache2.0許可(開(kāi)源)發(fā)行的跨平臺(tái)計(jì)算機(jī)視覺(jué)和機(jī)器學(xué)習(xí)軟件庫(kù),可以運(yùn)行在Linux、Windows、Android和Mac OS操作系統(tǒng)上。它輕量級(jí)而且高效——由一系列
    的頭像 發(fā)表于 02-07 14:19 ?726次閱讀
    <b class='flag-5'>OpenCV</b><b class='flag-5'>入門(mén)</b><b class='flag-5'>之</b><b class='flag-5'>OpenCV</b>的基本<b class='flag-5'>操作</b>1

    OpenCV入門(mén)OpenCV的基本操作2

    OpenCV是一個(gè)基于Apache2.0許可(開(kāi)源)發(fā)行的跨平臺(tái)計(jì)算機(jī)視覺(jué)和機(jī)器學(xué)習(xí)軟件庫(kù),可以運(yùn)行在Linux、Windows、Android和Mac OS操作系統(tǒng)上。它輕量級(jí)而且高效——由一系列
    的頭像 發(fā)表于 02-07 14:19 ?793次閱讀
    <b class='flag-5'>OpenCV</b><b class='flag-5'>入門(mén)</b><b class='flag-5'>之</b><b class='flag-5'>OpenCV</b>的基本<b class='flag-5'>操作</b>2

    OpenCV入門(mén)OpenCV的基本操作3

    OpenCV是一個(gè)基于Apache2.0許可(開(kāi)源)發(fā)行的跨平臺(tái)計(jì)算機(jī)視覺(jué)和機(jī)器學(xué)習(xí)軟件庫(kù),可以運(yùn)行在Linux、Windows、Android和Mac OS操作系統(tǒng)上。它輕量級(jí)而且高效——由一系列
    的頭像 發(fā)表于 02-07 14:33 ?575次閱讀
    <b class='flag-5'>OpenCV</b><b class='flag-5'>入門(mén)</b><b class='flag-5'>之</b><b class='flag-5'>OpenCV</b>的基本<b class='flag-5'>操作</b>3

    OpenCV入門(mén)OpenCV的基本操作4

    OpenCV是一個(gè)基于Apache2.0許可(開(kāi)源)發(fā)行的跨平臺(tái)計(jì)算機(jī)視覺(jué)和機(jī)器學(xué)習(xí)軟件庫(kù),可以運(yùn)行在Linux、Windows、Android和Mac OS操作系統(tǒng)上。它輕量級(jí)而且高效——由一系列
    的頭像 發(fā)表于 02-07 14:34 ?570次閱讀
    <b class='flag-5'>OpenCV</b><b class='flag-5'>入門(mén)</b><b class='flag-5'>之</b><b class='flag-5'>OpenCV</b>的基本<b class='flag-5'>操作</b>4

    OpenCV入門(mén)OpenCV的基本操作5

    OpenCV是一個(gè)基于Apache2.0許可(開(kāi)源)發(fā)行的跨平臺(tái)計(jì)算機(jī)視覺(jué)和機(jī)器學(xué)習(xí)軟件庫(kù),可以運(yùn)行在Linux、Windows、Android和Mac OS操作系統(tǒng)上。它輕量級(jí)而且高效——由一系列
    的頭像 發(fā)表于 02-07 14:35 ?525次閱讀