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):繪制圖像輪廓(附代碼)

        共 3049字,需瀏覽 7分鐘

         ·

        2021-05-25 16:30

        點擊上方小白學(xué)視覺”,選擇加"星標(biāo)"或“置頂

        重磅干貨,第一時間送達(dá)

        山區(qū)和地形圖中海拔高的區(qū)域劃出的線稱為地形輪廓,它們提供了地形的高程圖。這些線條可以手動繪制,也可以由計算機(jī)生成。在本文中,我們將看到如何使用OpenCV在簡單圖像上繪制輪廓線。

        findContours函數(shù):


        OpenCV為我們提供了“ findContours”功能,該功能可在二進(jìn)制圖像中查找輪廓并將其存儲為坐標(biāo)點的小數(shù)數(shù)組。功能定義如下。

        cv.findContours(image,                mode,                method[,                contours[,                 hierarchy[,                offset]]]) ->contours, hierarchy


        image-源,一個8位單通道圖像。非零像素被視為1。零像素保持為0,因此圖像被視為二進(jìn)制。
        模式-輪廓檢索模式。
        方法-等高線近似方法。


        輪廓檢索模式:


        第二個參數(shù),即輪廓檢索模式,用于檢索圖像中輪廓之間的關(guān)系。例如,在圖

        像中,輪廓內(nèi)可能有輪廓,就像嵌套輪廓一樣。在這種情況下,我們將外部輪廓稱為父級,將內(nèi)部輪廓稱為子級。使用findContours函數(shù)時,應(yīng)該檢索輪廓之間的這些關(guān)系并將其存儲在變量中。如果需要,將來也可以使用它們。OpenCV中有四種檢索模式,分別是cv.RETR_LIST,cv.RETR_TREE,cv.RETR_CCOMP,cv.RETR_EXTERNAL。為了清楚了解檢索模式,強(qiáng)烈建議參考OpenCV的輪廓輪廓官方教程。


        輪廓近似法:


        OpenCv中有兩種輪廓逼近方法。它們是cv.CHAIN_APPROX_NONE和cv.CHAIN_APPROX_SIMPLE。如果通過cv.CHAIN_APPROX_NONE,則將存儲輪廓的所有邊界點。但是實際上,我們是否需要所有這些要點?例如,找到了一條直線的輪廓,是否需要線上的所有點來表示該線?事實并非如此,我們只需要該行的兩個端點即可。這就是cv.CHAIN_APPROX_SIMPLE所做的。它刪除所有冗余點并壓縮輪廓,從而節(jié)省內(nèi)存。


        drawContours函數(shù):


        找到輪廓并將輪廓線的坐標(biāo)點(x,y)存儲在數(shù)組中后,我們可以使用這些點在圖像上繪制輪廓線。我們使用OpenCV的drawContours函數(shù)執(zhí)行相同的操作。

        cv.drawContours(image,                contours,                 contourIdx,                color[,                thickness[,                lineType[,                 hierarchy[,                maxLevel[,                offset]]]]]) ->image


        圖像-目標(biāo)圖像。
        輪廓-所有輸入輪廓。每個輪廓都存儲為點向量。
        outlineIdx-指示要繪制的輪廓的參數(shù)。如果為負(fù),則繪制所有輪廓。
        顏色-顏色的輪廓。
        粗細(xì)-繪制等高線的粗細(xì)。如果為負(fù)(例如,thickness = FILLED),則繪制輪廓內(nèi)部。

        原始圖像:

        import cv2 as cv#read the imageimg = cv.imread("D://medium_blogs//pattern1.jpg")#convert the image to grayscalegray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)#blur image to reduce the noise in the image while thresholdingblur = cv.blur(gray, (10,10))#Apply thresholding to the imageret, thresh = cv.threshold(blur, 1, 255, cv.THRESH_OTSU)#find the contours in the imagecontours, heirarchy = cv.findContours(thresh, cv.RETR_TREE, cv.CHAIN_APPROX_SIMPLE)#draw the obtained contour lines(or the set of coordinates forming a line) on the original imagecv.drawContours(img, contours, -1, (0,255,0), 20)#show the imagecv.namedWindow('Contours',cv.WINDOW_NORMAL)cv.namedWindow('Thresh',cv.WINDOW_NORMAL)cv.imshow('Contours', img)cv.imshow('Thresh', thresh)if cv.waitKey(0):    cv.destroyAllWindows()

        閾值圖像和在其上繪制輪廓的原始圖像如下:     

                               

                     

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

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

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

        交流群


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


        瀏覽 67
        點贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

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

        手機(jī)掃一掃分享

        分享
        舉報
        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>
            97色色五月天 | 成人午夜在线 | 美女被人操网站 | 四虎毛片 | 国产成人无码精品久久久一区 | 好爽免费视频 | 伊人网免费视频 | 女人脱了内裤张开双腿让男人桶 | 黑人操逼图纸 | 动漫美女被吸乳的动漫 |