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

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

3天內不再提示

二值圖像分析最常見的方式

OpenCV學堂 ? 來源:OpenCV學堂 ? 作者:OpenCV學堂 ? 2022-08-12 10:45 ? 次閱讀

輪廓屬性

二值圖像分析最常見的一個主要方式就是輪廓發現輪廓分析,其中輪廓發現的目的是為輪廓分析做準備,經過輪廓分析我們可以得到輪廓各種有用的屬性信息、常見的如下:

輪廓面積

輪廓周長

輪廓幾何矩

輪廓的最小外接矩形

輪廓的最大外接矩形

輪廓的最小外接圓

輪廓的最小外接三角形

輪廓擬合(支持擬合直線、橢圓、圓)

輪廓的凸包

輪廓層次信息提取

多邊形逼近

計算歐拉數

函數介紹

OpenCV中提供大量輪廓分析函數,通過這些函數我們可以方便快捷的得到輪廓的各種有用屬性信息、高效完成各種二值圖像分析需求,下面是我總結的一些常用的函數列表與說明。

OpenCV中輪廓發現函數如下:

voidcv::findContours(
InputArrayimage,
OutputArrayOfArrayscontours,
OutputArrayhierarchy,
intmode,
intmethod,
Pointoffset=Point()
)

參數解釋如下:

image: 輸入圖像、八位單通道的,背景為黑色
contours: 得到的輪廓圖像
hierarchy: 層次圖像,根據需要提取輪廓層次信息
mode: 決定提取到層次信息內容,是多層還是單層
method: 每個輪廓的編碼信息
offset: 表示輪廓偏移,默認為0

輪廓分析相關的常用函數

//計算輪廓面積
doublecv::contourArea(
InputArraycontour,
booloriented=false
)
//計算輪廓周長
doublecv::arcLength(
InputArraycurve,
boolclosed
)
//計算幾何矩與中心距
Momentscv::moments(
InputArrayarray,
boolbinaryImage=false
)
//計算最小外接矩形
RotatedRectcv::minAreaRect(
InputArraypoints
)
//計算最大外接矩形
Rectcv::boundingRect(
InputArrayarray
)
//計算最小外接圓/擬合圓
voidcv::minEnclosingCircle(
InputArraypoints,
Point2f¢er,
float&radius
)
//計算最小外接三角形/擬合三角形
doublecv::minEnclosingTriangle(
InputArraypoints,
OutputArraytriangle
)
//擬合直線
voidcv::fitLine(
InputArraypoints,
OutputArrayline,
intdistType,
doubleparam,
doublereps,
doubleaeps
)
//擬合橢圓
RotatedRectcv::fitEllipse(
InputArraypoints
)
//計算凸包
voidcv::convexHull(
InputArraypoints,
OutputArrayhull,
boolclockwise=false,
boolreturnPoints=true
)
//多邊形逼近-逼近真實形狀
voidcv::approxPolyDP(
InputArraycurve,
OutputArrayapproxCurve,
doubleepsilon,
boolclosed
)

靈活使用上述輪廓屬性信息,可以實現對二值圖像的幾何形狀判別、測量、面積過濾、獲取每個對象的幾何屬性包括面積、周長、編碼點、形狀、層次/位置信息、歐拉數、中心位置、傾斜角度。

綜合運用代碼演示

2020年 以前我分享過一些綜合使用的例子,列表如下(都看過你就贏了):

二值圖像分析案例精選

OpenCV二值圖像案例分析精選 | 第二期

OpenCV輪廓層次分析實現歐拉數計算

OpenCV尋找復雜背景下物體的輪廓

如何識別出輪廓準確的長和寬

OpenCV中幾何形狀識別與測量

OpenCV中BLOB特征提取與幾何形狀分類

OpenCV直線擬合檢測

OpenCV中實現曲線與圓擬合

這里再分享一個硬幣計數的例子!

原圖如下:

代碼如下:

//加載圖像
Matimg=imread("D:/CoinsB.png");
imshow("OriginalImage",img);

//閾值化操作
Matgray,binary;
cvtColor(img,gray,COLOR_BGR2GRAY);
floatt=threshold(gray,binary,0,255,THRESH_BINARY|THRESH_OTSU);
imshow("binary",binary);
imwrite("D:/binary1.png",binary);

//形態學操作
Matse=getStructuringElement(MORPH_RECT,Size(3,3));
morphologyEx(binary,binary,MORPH_OPEN,se,Point(-1,-1));

//輪廓發現
vectorhireachy;
vector>contours;
bitwise_not(binary,binary);
findContours(binary,contours,hireachy,RETR_EXTERNAL,CHAIN_APPROX_SIMPLE,Point());
Matresult=img.clone();
Point2fcenter;
floatradius;

//輪廓分析
for(size_tt=0;t

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

    關注

    3

    文章

    4117

    瀏覽量

    61467
  • 二值圖像
    +關注

    關注

    0

    文章

    14

    瀏覽量

    8688
  • 輪廓分析
    +關注

    關注

    0

    文章

    2

    瀏覽量

    6078

原文標題:OpenCV | 二值圖像分析的技巧都在這里

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

收藏 人收藏

    評論

    相關推薦

    變頻器最常見的十大故障現象和分析處理實例

    變頻器是自動化工廠中最常見的電氣設備下面我們一起來看看變頻器最常見的十大故障現象和分析處理實例。
    發表于 09-14 09:11 ?4.9w次閱讀

    電工最常見電路

    電工最常見電路
    發表于 10-12 21:11

    基于FPGA的圖像的膨脹算法的實現

    1 背景知識圖像(Binary Image)是指將圖像上的每一個像素只有兩種可能的取值或灰度等級狀態,人們經常用黑白、B&W、單色圖像
    發表于 08-14 09:08

    基于圖像分塊的局部閾值化方法

    針對目前局部閾值化結果存在目標虛假或斷裂的缺陷,提出了一種基于圖像分塊的局部閾值化方法。首先,將
    發表于 05-04 11:10

    列舉了20個最常見的電路

    為電子工程師的你,已經掌握了多少模擬電路呢?還應該掌握多少圖紙和原理呢?本文列舉了20個最常見的電路,并粗略的推斷出不同層次的發燒對線路的不同理解程度,快來對照看看你是哪個程度的電子工程師?! ∫?/div>
    發表于 05-21 07:35

    labview中化結果顯示的幾種方式對比

    labview中常見圖像預處理操作化的結果比較特殊,
    發表于 08-16 18:19

    實戰視覺圖像處理:LabVIEW化結果顯示與對比

    `LabVIEW中常見圖像預處理操作化的結果比較特殊,
    發表于 12-09 14:53

    最常見的fork用法是什么

    的進程一模一樣,這兩 個進程都會繼續運行最常見的fork用法是創建一個新的進程,然后使用exec載入進制映像,替換當前進程的映像。這種情況下,派生(for
    發表于 12-15 07:38

    變頻電源最常見的故障問題有哪些

    大家總結下變頻電源最常見的故障問題有哪些:1、安裝環境的問題2、外部的電磁感應干擾3、冷卻系統問題 4、主回路故障問題以上就是變頻電源最常見的四大問題,如果你在變頻電源出現問題之后,只要不是人為造...
    發表于 12-30 08:11

    JPEG圖像數據格式簡明分析

    本文針對最常見的JPEG 圖像格式的壓縮數據進行分析,描述了每一字節的數據所表示的含義,同時也介紹了JPEG 圖像格式中的大部分典型且必要的標記、參數等元素,這些都是對JPE
    發表于 09-18 11:05 ?16次下載

    常見的充電方式有哪些?

    常見的充電方式有哪些? 常見的充電方式有以下三種:    1. 恒流充電:在充電過程中保持恒定的電流給電池充電,是
    發表于 11-05 09:25 ?4069次閱讀

    電工最常見電路集

    電工最常見電路集:
    發表于 02-28 15:39 ?415次下載
    電工<b class='flag-5'>最常見</b>電路集

    五種最常見的五種電機冷卻方式介紹

    電機的冷卻方式通常根據其功率、運行環境和設計要求來選擇。以下是五種最常見的五種電機冷卻方式
    發表于 08-16 09:29 ?3380次閱讀

    OpenCV二值圖像分析

    二值圖像分析最常見的一個主要方式就是輪廓發現與輪廓分析,其中輪廓發現的目的是為輪廓分析做準備,經
    的頭像 發表于 10-20 12:25 ?388次閱讀

    最常見的直流負載工作方式

    最常見的直流負載工作方式? 直流負載工作方式是指在直流電路中使用的各種負載方式。直流負載是用于測試和測量直流電源輸出能力和能效的設備,可以模擬真實負載條件下的電流和功率需求。本文將詳細
    的頭像 發表于 01-18 15:12 ?348次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>