1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        基于OpenCV的實戰(zhàn):輪廓檢測(附代碼解析)

        共 2477字,需瀏覽 5分鐘

         ·

        2021-05-20 17:55

        點擊上方小白學視覺”,選擇加"星標"或“置頂

        重磅干貨,第一時間送達

        利用輪廓檢測物體可以看到物體的各種顏色,在這種情況下放置在靜態(tài)和動態(tài)物體上。如果是統(tǒng)計圖像,則需要將圖像加載到程序中,然后使用OpenCV庫,以便跟蹤對象。
        每當在框架中檢測到物體時,都會為該物體繪制輪廓,該輪廓將代表物體的輪廓。下一步是找到對象的質(zhì)心,標識找到影像矩所需的質(zhì)心坐標,圖像力矩是圖像像素強度的加權平均值。
        因此,我們考慮考慮輪廓內(nèi)的區(qū)域以找到圖像矩,如果輪廓中的圖像矩變?yōu)镸,則可以按以下方式計算質(zhì)心的坐標:

        cx = int(M ['m10'] / M ['m00'])
        cy = int(M ['m01'] / M ['m00'])

        獲得質(zhì)心點后,此質(zhì)心點將表示對象這樣就可以為與質(zhì)心相對應的對象放置一個邊界框。本次實驗我們將使用橙色作為對象,首先我們需要安裝打包的OpenCV和numpy軟件包。

        import cv2import numpy as np

        插入圖片使用“ cv2.imread()”:

        #Read Picturesimg = cv2.imread('jeruk.png')

        然后將RGB轉(zhuǎn)換為HSV并創(chuàng)建黃色(橙色為右黃色)顏色分割:

        #Convert RGB to HSVhsv = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)#Range of yellow color segmentation / classificationlower = np.array([20,100,100], dtype=np.uint8)upper = np.array([40,255,255], dtype=np.uint8)mask = cv2.inRange(hsv, lower, upper)kernel = np.ones((25,25),np.uint8)

        進行對象像素的增厚,然后減小尺寸,以使對象像素彼此不靠近:

        # Thicken object pixelsdilation = cv2.dilate(mask,kernel,iterations = 1)# Minimized the object pixels so they're not stick togethererosion = cv2.erode(img,kernel,iterations = 1)

        找到橙色的輪廓和陣列:

        #Find Contourscontours, hierarchy = cv2.findContours(dilation,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)#Array Contourscontour = []

        然后將原始圖像復制到“ resultImg”變量:

        #copy the original image to "resultImg"resultImg = (img).copy()

        對輪廓進行迭代:

        #Iterationfor i in range(len(contours)):        #amount contours to cnt variable        cnt = contours[i]        #Looking for radius to drau circle        (x,y),radius = cv2.minEnclosingCircle(cnt)        #circle center        center = (int(x),int(y))        if(int(radius) > 1):            contour.append(cnt)            #draw the circle            resultImg = cv2.circle(resultImg,center,int(radius,(255,0,0),3)

        最后一個階段,顯示檢測結(jié)果的輪廓:

        #displays resultscv2.imshow('image',resultImg)cv2.waitKey(0)cv2.destroyAllWindows()

        輸出結(jié)果:

        根據(jù)前面顯示的橙色檢測結(jié)果,可以通過輪廓檢測橙色,該輪廓由橙色對象上存在藍色圓圈標記。

        — — 完 — —


        下載1:OpenCV-Contrib擴展模塊中文版教程
        在「小白學視覺」公眾號后臺回復:擴展模塊中文教程,即可下載全網(wǎng)第一份OpenCV擴展模塊教程中文版,涵蓋擴展模塊安裝、SFM算法、立體視覺、目標跟蹤、生物視覺、超分辨率處理等二十多章內(nèi)容。

        下載2:Python視覺實戰(zhàn)項目52講
        小白學視覺公眾號后臺回復:Python視覺實戰(zhàn)項目即可下載包括圖像分割、口罩檢測、車道線檢測、車輛計數(shù)、添加眼線、車牌識別、字符識別、情緒檢測、文本內(nèi)容提取、面部識別等31個視覺實戰(zhàn)項目,助力快速學校計算機視覺。

        下載3:OpenCV實戰(zhàn)項目20講
        小白學視覺公眾號后臺回復:OpenCV實戰(zhàn)項目20講即可下載含有20個基于OpenCV實現(xiàn)20個實戰(zhàn)項目,實現(xiàn)OpenCV學習進階。

        交流群


        歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動駕駛、計算攝影、檢測、分割、識別、醫(yī)學影像、GAN算法競賽等微信群(以后會逐漸細分),請掃描下面微信號加群,備注:”昵稱+學校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺SLAM“。請按照格式備注,否則不予通過。添加成功后會根據(jù)研究方向邀請進入相關微信群。請勿在群內(nèi)發(fā)送廣告,否則會請出群,謝謝理解~


        瀏覽 42
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            爽爽爽网站 | 小受揉h势g短篇h | 亚洲AV色影视 | 可以看的黑人性较视频 | 午夜不卡一区 | 亚洲日本在线播放 | 别揉我胸啊嗯~免费 | 黄色小说网页 | 亚洲色影院 | 综合色88 |