国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

OpenCV中幾何形狀識別與測量

OpenCV學堂 ? 來源:OpenCV學堂 ? 作者:OpenCV學堂 ? 2022-06-02 15:31 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

OpenCV中幾何形狀識別與測量

經常看到有學習OpenCV不久的人提問,如何識別一些簡單的幾何形狀與它們的顏色,其實通過OpenCV的輪廓發現與幾何分析相關的函數,只需不到100行的代碼就可以很好的實現這些簡單幾何形狀識別與對象測量相關操作。本文就會演示給大家如何通過OpenCV 輪廓發現與幾何分析相關函數實現如下功能:

幾何形狀識別(識別三角形、四邊形/矩形、多邊形、圓)

計算幾何形狀面積與周長、中心位置

提取幾何形狀的顏色

在具體代碼實現與程序演示之前,我們先要搞清楚一些概念。

一:基本概念與函數介紹

1. 輪廓(contours)

什么是輪廓,簡單說輪廓就是一些列點相連組成形狀、它們擁有同樣的顏色、輪廓發現在圖像的對象分析、對象檢測等方面是非常有用的工具,在OpenCV中使用輪廓發現相關函數時候要求輸入圖像是二值圖像,這樣便于輪廓提取、邊緣提取等操作。輪廓發現的函數與參數解釋如下:

findContours(image, mode, method, contours=None, hierarchy=None, offset=None)

- image輸入/輸出的二值圖像

- mode 返回輪廓的結構、可以是List、Tree、External

- method 輪廓點的編碼方式,基本是基于鏈式編碼

- contours 返回的輪廓集合

- hieracrchy 返回的輪廓層次關系

- offset 點是否有位移

2. 多邊形逼近

多邊形逼近,是通過對輪廓外形無限逼近,刪除非關鍵點、得到輪廓的關鍵點,不斷逼近輪廓真實形狀的方法,OpenCV中多邊形逼近的函數與參數解釋如下:

approxPolyDP(curve, epsilon, closed, approxCurve=None)

- curve 表示輸入的輪廓點集合

- epsilon 表示逼近曲率,越小表示相似逼近越厲害

- close 是否閉合

3. 幾何距計算

圖像幾何距是圖像的幾何特征,高階幾何距中心化之后具有特征不變性,可以產生Hu距輸出,用于形狀匹配等操作,這里我們通過計算一階幾何距得到指定輪廓的中心位置,計算幾何距的函數與參數解釋如下:

moments(array, binaryImage=None)

- array表示指定輸入輪廓

- binaryImage默認為None

二:代碼實現與演示

基于輪廓發現與多邊形逼近、幾何距實現幾何形狀識別與對象測量,測量時候還用到另外兩個相關API分別是計算輪廓的周長與面積。具體用法在代碼中體現。整個代碼實現分為如下幾步完成:1.圖像二值化

# 二值化圖像

print("start to detect lines... ")

gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)

ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY_INV | cv.THRESH_OTSU)

cv.imshow("input image", frame)

2.輪廓發現

out_binary, contours, hierarchy = cv.findContours(binary, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_SIMPLE)

for cnt in range(len(contours)):

# 提取與繪制輪廓

cv.drawContours(result, contours, cnt, (0, 255, 0), 2)

3.幾何形狀識別

# 輪廓逼近

epsilon = 0.01 * cv.arcLength(contours[cnt], True)

approx = cv.approxPolyDP(contours[cnt], epsilon, True)

# 分析幾何形狀

corners = len(approx)

shape_type = ""

if corners == 3:

count = self.shapes['triangle']

count = count+1

self.shapes['triangle'] = count

shape_type = "三角形"

if corners == 4:

count = self.shapes['rectangle']

count = count + 1

self.shapes['rectangle'] = count

shape_type = "矩形"

if corners >= 10:

count = self.shapes['circles']

count = count + 1

self.shapes['circles'] = count

shape_type = "圓形"

if 4 < corners < 10:

count = self.shapes['polygons']

count = count + 1

self.shapes['polygons'] = count

shape_type = "多邊形"

4.測量周長、面積、計算中心

# 求解中心位置

mm = cv.moments(contours[cnt])

cx = int(mm['m10'] / mm['m00'])

cy = int(mm['m01'] / mm['m00'])

cv.circle(result, (cx, cy), 3, (0, 0, 255), -1)

# 計算面積與周長

p = cv.arcLength(contours[cnt], True)

area = cv.contourArea(contours[cnt])

5.顏色提取

# 顏色分析

color = frame[cy][cx]

color_str = "(" + str(color[0]) + ", " + str(color[1]) + ", " + str(color[2]) + ")"

運行顯示原圖如下:

a8ed07b0-e191-11ec-ba43-dac502259ad0.png

分析結果:

a923e762-e191-11ec-ba43-dac502259ad0.png

控制臺輸出:

a9471d18-e191-11ec-ba43-dac502259ad0.png

審核編輯 :李倩

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 幾何
    +關注

    關注

    0

    文章

    37

    瀏覽量

    12665
  • 測量
    +關注

    關注

    10

    文章

    5636

    瀏覽量

    116730
  • OpenCV
    +關注

    關注

    33

    文章

    652

    瀏覽量

    44799

原文標題:OpenCV中幾何形狀識別與測量

文章出處:【微信號:CVSCHOOL,微信公眾號:OpenCV學堂】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    多種類幾何尺寸集成智能儀器定制 一站式解決產線多維度測量需求

    關鍵詞:幾何尺寸測量儀,智能儀器,定制儀器,測寬測厚儀,測寬測長儀,直線度外徑測量儀 在現代化生產線上,幾何尺寸測量是保障產品精度、控制生產
    發表于 10-09 13:50

    【EASY EAI Orin Nano開發板試用體驗】PP-OCRV5文字識別實例搭建與移植

    /3rdparty/rknpu2/Linux/aarch64/:/home/proj-RK3588/opencv_lib_46/ 然后編譯野火魯班貓的例程的cpp文件夾,生成可以執行的程序并運行,在第二個
    發表于 08-18 16:57

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

    大家好,這是一個樹莓派和OpenCV的連載專題。使用樹莓派與OpenCV實現姿態估計和面部特征點追蹤使用樹莓派與OpenCV實現面部和運動追蹤的云臺系統使用樹莓派和OpenCV實現手部
    的頭像 發表于 08-16 16:16 ?1274次閱讀
    零成本鋼鐵俠手套!樹莓派+<b class='flag-5'>OpenCV</b> 秒變手勢遙控器!

    如何使用樹莓派與OpenCV實現面部和運動追蹤的云臺系統?

    大家好,這是一個樹莓派和OpenCV的連載專題。使用樹莓派與OpenCV實現姿態估計和面部特征點追蹤使用樹莓派與OpenCV實現面部和運動追蹤的云臺系統使用樹莓派和OpenCV實現手部
    的頭像 發表于 08-14 17:45 ?1588次閱讀
    如何使用樹莓派與<b class='flag-5'>OpenCV</b>實現面部和運動追蹤的云臺系統?

    如何使用樹莓派+OpenCV實現姿態估計和面部特征點追蹤?

    大家好,這是一個樹莓派和OpenCV的連載專題。使用樹莓派與OpenCV實現姿態估計和面部特征點追蹤使用樹莓派與OpenCV實現面部和運動追蹤的云臺系統使用樹莓派和OpenCV實現手部
    的頭像 發表于 08-13 17:44 ?1312次閱讀
    如何使用樹莓派+<b class='flag-5'>OpenCV</b>實現姿態估計和面部特征點追蹤?

    用樹莓派 + OpenCV 打造人臉識別技術!

    在本指南中,我們將教您如何使用OpenCV和面部識別庫(兩個出色的開源項目)設置樹莓派來檢測和識別面部。在這個設置,所有的數據和處理都將在Pi上本地執行,這意味著您的所有面部和數據都
    的頭像 發表于 07-29 17:27 ?1357次閱讀
    用樹莓派 + <b class='flag-5'>OpenCV</b> 打造人臉<b class='flag-5'>識別</b>技術!

    【Milk-V Duo S 開發板免費體驗】SDK編譯、人臉檢測、OpenCV測試

    -mobile-test ./opencv-mobile-test 生成 200x200 尺寸的 out.jpg 圖像,即實現圖片壓縮。 該測試工程可結合物體識別模型,實現輸入圖像的尺寸調整,為之后的推理和處理等流程提供幫助。 總結
    發表于 07-11 13:48

    三坐標微米級測量精度,高精度檢測液壓支架導向套的幾何公差尺寸

    Mars Classic 10158 三坐標測量機可以測量各種復雜幾何特征,滿足客戶對閥體全尺寸檢測的需求;能實現微米級的高精度測量,滿足導向套關鍵尺寸的高精度檢測需求;自動
    的頭像 發表于 07-10 13:33 ?788次閱讀
    三坐標微米級<b class='flag-5'>測量</b>精度,高精度檢測液壓支架導向套的<b class='flag-5'>幾何</b>公差尺寸

    基于LockAI視覺識別模塊:C++人臉識別

    基本知識講解 1.1 人臉識別簡介 人臉識別是一種利用人的臉部特征進行身份識別的生物識別技術。它通過檢測圖像或視頻的人臉,提取如眼睛、鼻
    發表于 07-01 12:01

    基于LockAI視覺識別模塊:手寫數字識別

    (input_mat); 作用:PaddleClas類的一個函數,用于實現手寫數字識別。 參數說明: input_mat:要識別的圖像。 返回值: 返回一個包含手寫數字分類結果的對象。該
    發表于 06-30 16:45

    wafer晶圓幾何形貌測量系統:厚度(THK)翹曲度(Warp)彎曲度(Bow)等數據測量

    在先進制程,厚度(THK)翹曲度(Warp)彎曲度(Bow)三者共同決定了晶圓的幾何完整性,是良率提升和成本控制的核心參數。通過WD4000晶圓幾何形貌測量系統在線檢測,可減少其對芯
    發表于 05-28 11:28 ?2次下載

    wafer晶圓幾何形貌測量系統:厚度(THK)翹曲度(Warp)彎曲度(Bow)等數據測量

    在先進制程,厚度(THK)翹曲度(Warp)彎曲度(Bow)三者共同決定了晶圓的幾何完整性,是良率提升和成本控制的核心參數。通過WD4000晶圓幾何形貌測量系統在線檢測,可減少其對芯
    的頭像 發表于 05-23 14:27 ?1417次閱讀
    wafer晶圓<b class='flag-5'>幾何</b>形貌<b class='flag-5'>測量</b>系統:厚度(THK)翹曲度(Warp)彎曲度(Bow)等數據<b class='flag-5'>測量</b>

    PanDao:輸入形狀精度參數

    手工拋光制作測試板(T)進行面形偏差測量的傳統技術(該檢測裝置也見于斐索干涉儀)。 被測表面(S)的面形誤差(表面高度H)是通過將表面的形狀與測試板(T)的標準形狀(通常精度<1/
    發表于 05-06 08:45

    基于LockAI視覺識別模塊:C++圖像采集例程

    本文主要演示如何使用LockAI視覺識別模塊進行視頻流的讀取,同時使用Edit模塊進行圖像傳輸。基礎知識講解1.1OpenCV簡介OpenCV(OpenSourceComputerVisionLibra
    的頭像 發表于 04-30 18:23 ?755次閱讀
    基于LockAI視覺<b class='flag-5'>識別</b>模塊:C++圖像采集例程

    CMM三坐標測量機能測量的數據

    CMM三坐標測量機能夠測量的數據非常廣泛,包括但不限于:幾何元素數據:如點、線、面、圓、球、圓柱、圓錐等幾何元素的尺寸和形狀數據。這些數據可
    的頭像 發表于 03-21 18:49 ?1281次閱讀
    CMM三坐標<b class='flag-5'>測量</b>機能<b class='flag-5'>測量</b>的數據