色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

OpenCV4筆記之連通域分析

OpenCV學堂 ? 來源:OpenCV學堂 ? 2023-12-25 17:16 ? 次閱讀

Part11. 圖像的連通域以及連通域分析

在該系列第六篇文章中,曾經(jīng)介紹過連通的概念,下面再來回顧一下。

連通:若 S 是圖像中的一個像素子集,對于任意的 。如果存在一條由 S 中像素組成的從 p 到 q 的通路,則稱 p 在像素集 S 中與 q 連通

連通域是指具有相同屬性的連通集合。例如,在一個二值圖像中,具有相同像素值的區(qū)域構(gòu)成一個連通域。

所以,連通連通域是兩個不同的概念,連通域連通的子集。連通域具有以下特性:

一個連通域中的所有像素都具有相同的性質(zhì)。

一個連通域中的任意兩個像素都可以通過連續(xù)的路徑連接起來。

一個連通域可以是單連通的,也可以是多連通的。

連通域分析是指在圖像中查找標記連通域的算法。這是一種常用的圖像處理技術(shù),可以用于目標檢測、圖像分割和形狀識別等等。本文是基于二值圖像進行連通域的分析。

Part22. 連通域分析的算法

連通域分析的算法可以分為以下幾類:

基于標記的算法:該類算法首先將每個像素分配一個唯一的標記,然后使用某種策略將具有相同標記的像素連接起來。基于標記的算法包括兩遍掃描法、種子填充法和快速連通域查找法。

基于鄰域查找的算法:該類算法從圖像中的一個起始像素開始,逐個檢查其鄰域像素,如果鄰域像素具有相同像素值,則將其加入到當前連通域中。基于鄰域查找的算法包括深度優(yōu)先搜索(DFS)和廣度優(yōu)先搜索(BFS)。

基于分割的算法:該類算法將圖像分割成多個區(qū)域,每個區(qū)域都具有相同的像素值。基于分割的算法包括圖論方法和區(qū)域生長法。

其中,基于標記的算法是比較常用的連通域分析的算法。

12.1 兩遍掃描法

兩遍掃描算法的步驟如下

第一遍掃描

從左到右,從上到下遍歷圖像。

將每個有效像素賦予一個唯一的標記。

第二遍掃描

再次從左到右,從上到下遍歷圖像。

檢查兩個相鄰像素是否具有相同的標記。

如果兩個相鄰像素具有相同的標記,則將它們連接起來。

6852f152-a304-11ee-8b88-92fbcf53809c.giftwo-pass.gif

22.2 種子填充法

種子填充算法的步驟如下:

初始化:將圖像中的所有像素標記為未訪問。

選擇一個起始像素作為種子。

將種子像素標記為已訪問。

檢查種子像素的鄰域像素。

如果鄰域像素具有相同的像素值,則將其標記為已訪問。

如果鄰域像素具有不同的像素值,則忽略。

重復步驟 4,直到圖像中的所有像素都被標記為已訪問或直到?jīng)]有未訪問的鄰域像素為止。

68707b8c-a304-11ee-8b88-92fbcf53809c.gifseed-filling.gif

Part33. OpenCV 自帶的連通域函數(shù)

OpenCV 提供了兩個函數(shù):connectedComponents()、connectedComponentsWithStats() 在二值圖像中查找連通域。

下面的例子,在圖中找到連通域并標記不同的顏色。

#include
#include
#include"opencv2/imgproc.hpp"
#include"opencv2/highgui.hpp"

usingnamespacestd;
usingnamespacecv;

voidlabelColor(Mat&labelImg,Mat&dst)
{
mapcolors;

intwidth=labelImg.cols;
intheight=labelImg.rows;

dst=Mat::zeros(labelImg.size(),CV_8UC3);

ucharr=255*(rand()/(1.0+RAND_MAX));
ucharg=255*(rand()/(1.0+RAND_MAX));
ucharb=255*(rand()/(1.0+RAND_MAX));

for(inti=0;i(i);
uchar*data_dst=dst.ptr(i);

for(intj=0;j=1)
{
if(colors.count(pixelValue)==0)
{
colors[pixelValue]=Scalar(b,g,r);
r=255*(rand()/(1.0+RAND_MAX));
g=255*(rand()/(1.0+RAND_MAX));
b=255*(rand()/(1.0+RAND_MAX));
}

Scalarcolor=colors[pixelValue];
*data_dst++=color[0];
*data_dst++=color[1];
*data_dst++=color[2];
}
else
{
data_dst++;
data_dst++;
data_dst++;
}
}
}
}

intmain(intargc,char**argv){
Matsrc=imread(".../coins.jpg");
imshow("src",src);

Matgray,thresh;
cvtColor(src,gray,cv::COLOR_BGR2GRAY);//灰度化
imshow("gray",gray);

Matgauss;
GaussianBlur(gray,gauss,Size(15,15),0);//降噪

threshold(gauss,thresh,0,255,THRESH_BINARY|THRESH_OTSU);
imshow("thresh",thresh);

Matlabels,stats,centroids;
intnum_labels=connectedComponents(thresh,labels,8,CV_32S);
cout<
原圖和灰度化.png 二值化和標記連通域.png
intconnectedComponents(InputArrayimage,OutputArraylabels,intconnectivity,intltype,intccltype);

其各個參數(shù)的含義:

第一個參數(shù) image:輸入圖像必須是二值圖像1。第二個參數(shù) labels:輸出圖像,其中每個像素值表示其所在連通域的標簽。標簽的值從 0 開始,依次遞增。第三個參數(shù) connectivity:標記連通域時使用的鄰域種類。可選的是 4、8,默認值是 8。第四個參數(shù) ltype:輸出標簽的類型。可以設(shè)置為 CV_32S 或 CV_16U,默認值是 CV_32S 。第五個參數(shù) ccltype:標記連通域分析算法的類型。

參數(shù)類型 作用
CCL_WU 0 8 鄰域和 4 鄰域均用 SAUF 算法。
CCL_DEFAULT -1 8 鄰域用 BBDT 算法,4 鄰域用 SAUF 算法。
CCL_GRANA 1 8 鄰域用 BBDT 算法,4 鄰域用 SAUF 算法。

connectedComponentsWithStats() 函數(shù)除了返回每個連通域的標簽之外,還返回每個連通域的其他信息,包括:

面積

外接矩形

中心坐標

intmain(intargc,char**argv){
Matsrc=imread(".../coins.jpg");
imshow("src",src);

Matgray,thresh;
cvtColor(src,gray,cv::COLOR_BGR2GRAY);//灰度化
imshow("gray",gray);

Matgauss;
GaussianBlur(gray,gauss,Size(15,15),0);//降噪

threshold(gauss,thresh,0,255,THRESH_BINARY|THRESH_OTSU);
imshow("thresh",thresh);

Matlabels,stats,centroids;
intnum_labels=connectedComponentsWithStats(thresh,labels,stats,centroids);
cout<(i,CC_STAT_AREA);
intleft=stats.at(i,CC_STAT_LEFT);
inttop=stats.at(i,CC_STAT_TOP);
intwidth=stats.at(i,CC_STAT_WIDTH);
intheight=stats.at(i,CC_STAT_HEIGHT);
intcx=centroids.at(i,0);
intcy=centroids.at(i,1);

cout<

執(zhí)行結(jié)果:

num_labels=8
Object1:Area=17061,Left=344,Top=160,Width=144,Height=151,Centroid=(415,234)
Object2:Area=9655,Left=592,Top=411,Width=108,Height=114,Centroid=(645,467)
Object3:Area=9558,Left=776,Top=441,Width=108,Height=113,Centroid=(828,497)
Object4:Area=17874,Left=435,Top=517,Width=150,Height=152,Centroid=(509,592)
Object5:Area=17502,Left=660,Top=648,Width=148,Height=151,Centroid=(733,723)
Object6:Area=10420,Left=726,Top=864,Width=114,Height=117,Centroid=(782,922)
Object7:Area=15634,Left=628,Top=1075,Width=141,Height=143,Centroid=(698,1146)

Part44. 總結(jié)

連通域分析是圖像處理中常用的算法之一,用于在二值圖像中找到具有相同像素值且相互連接的區(qū)域。它在圖像處理中具有廣泛的應用場景。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4607

    瀏覽量

    92840
  • 圖像
    +關(guān)注

    關(guān)注

    2

    文章

    1083

    瀏覽量

    40449
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4327

    瀏覽量

    62573
  • OpenCV
    +關(guān)注

    關(guān)注

    31

    文章

    634

    瀏覽量

    41338

原文標題:OpenCV4筆記 之 連通域分析

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

收藏 人收藏

    評論

    相關(guān)推薦

    ACER 370筆記本電腦主板電路圖

    本帖最后由 gk320830 于 2015-3-9 03:41 編輯 ACER 370筆記本電腦主板電路圖
    發(fā)表于 08-16 20:45

    愛鼓搗stm32筆記

    愛鼓搗stm32筆記1-4
    發(fā)表于 06-16 17:37

    STM32筆記 EXIT(外部中斷)精選資料分享

    /O映像三、中斷服務四、配置流程(代碼解析)五、中斷函數(shù)處理在上一篇STM32筆記 GPIO引腳中,有用到 EXIT外部中斷作為 Key輸入觸發(fā),所以本篇來...
    發(fā)表于 08-05 06:10

    華碩ASUS F7KR R2.0.0筆記本原理圖

    華碩ASUS F7KR R2.0.0筆記本原理圖:
    發(fā)表于 03-02 16:15 ?799次下載
    華碩ASUS F7KR R2.0.0<b class='flag-5'>筆記</b>本原理圖

    簡易AD13筆記

    個人資料心得,一點一點,不多,請見諒!13筆記,有點用
    發(fā)表于 11-17 11:43 ?9次下載

    STM32各模塊學習筆記

    ..........................................................4 STM32筆記四 STM32中定時器的時鐘源............................15
    發(fā)表于 11-30 03:32 ?3157次閱讀

    聯(lián)想電腦維修實際案例--G470筆記本電路分析

    聯(lián)想電腦維修實際案例--G470筆記本電路分析
    發(fā)表于 02-03 10:45 ?333次下載

    惠普G4-2000筆記本的電路原理圖合集

    本文檔的主要內(nèi)容詳細介紹的是惠普1000 G4-2000 CQ35-701TU CQ45筆記本的電路原理圖合集。
    發(fā)表于 10-29 08:00 ?16次下載
    惠普G<b class='flag-5'>4</b>-2000<b class='flag-5'>筆記</b>本的電路原理圖合集

    基于opencv4和Yolo-Fastest,實現(xiàn)PC和單片機通信,控制步進電機捕獲目標

    效果視頻 基于opencv4和yolo,實現(xiàn)PC和單片機通信,控制步進電機捕獲目標
    發(fā)表于 11-23 17:36 ?16次下載
    基于<b class='flag-5'>opencv4</b>和Yolo-Fastest,實現(xiàn)PC和單片機通信,控制步進電機捕獲目標

    [筆記]|[stm32]|[寄存器存儲器區(qū)別]|[PWM]|[串口]|[Timer]stm32f103筆記

    [筆記]|[stm32]|[寄存器存儲器區(qū)別]|[PWM]|[串口]|[Timer]stm32f103筆記筆記為18.12.21者期末復習所寫 ——僅作為自己期末復習以及過后查閱
    發(fā)表于 12-06 18:51 ?10次下載
    [<b class='flag-5'>筆記</b>]|[stm32]|[寄存器存儲器區(qū)別]|[PWM]|[串口]|[Timer]stm32f103<b class='flag-5'>筆記</b>

    dell 7559筆記本電路圖方框圖免費下載

    dell 7559筆記本電路圖方框圖免費下載。
    發(fā)表于 03-28 15:46 ?41次下載

    如何在Raspberry Pi 3上安裝OpenCV4

    今天我們將學習如何在 Raspberry Pi 3 上安裝 OpenCV4 庫,以便我們可以將其用于計算機視覺應用程序。這將允許 OpenCV 在像 Pi 這樣的便攜式設(shè)備上運行,從而打開許多可能性的大門。所以讓我們開始吧
    的頭像 發(fā)表于 09-08 16:09 ?1593次閱讀
    如何在Raspberry Pi 3上安裝<b class='flag-5'>OpenCV4</b>庫

    OpenCV4源碼分析

    宏定義必須寫在函數(shù)之外,其作用是 #define 開始,到源程序結(jié)束。如果要提前結(jié)束它的作用則用 #undef 命令
    的頭像 發(fā)表于 02-22 10:00 ?984次閱讀
    <b class='flag-5'>OpenCV4</b>源碼<b class='flag-5'>分析</b>

    學習OpenCV4的系統(tǒng)化路線圖

    OpenCV4發(fā)布測試版本開始,作者就一直關(guān)注!根據(jù)自己近十年圖像處理OpenCV開發(fā)相關(guān)工作經(jīng)驗,花了七個月的時間,針對OpenCV4、精心選擇OpenCV中常用模塊與知識點,構(gòu)建
    的頭像 發(fā)表于 07-05 11:30 ?632次閱讀
    學習<b class='flag-5'>OpenCV4</b>的系統(tǒng)化路線圖

    聯(lián)想E46L DAOLL6筆記本電腦圖紙

    聯(lián)想E46L DAOLL6筆記本電腦圖紙
    發(fā)表于 12-20 15:27 ?0次下載
    主站蜘蛛池模板: 日韩精品特黄毛片免费看 | 亚洲AV电影天堂男人的天堂| 中国女人精69xxxxxx视频| 国产3级在线观看| 内射白嫩少妇超碰| 亚洲香蕉视频在线播放| 国产成人在线视频免费观看| 免费国产成人| 亚洲伊人久久网| 国产精品午夜福利在线观看| 欧美亚洲另类热图| 中文字幕视频在线免费观看| 韩国演艺圈qvod| 色欲AV亚洲永久无码精品| 2019中文字幕乱码免费| 花蝴蝶在线观看免费8| 色女孩综合| AV国产乱码一区二区三视频| 久久久精品久久久久久| 亚洲精品国产A久久久久久| 都市妖奇谈有声| 欧美亚洲精品午夜福利AV| 2022年国产精品久久久久| 精品一产品大全| 亚洲精品AV无码重口另类| 国产成人在线观看免费网站| 欧美亚洲视频在线二区| 51国产午夜精品免费视频| 精品一品国产午夜福利视频 | 久就热视频精品免费99| 亚洲国产无线码在线观看| 国产精品丰满人妻AV麻豆| 人妻免费视频公开上传| CHINA篮球体育飞机2022网站| 久久一级视频| 在线中文高清资源免费观看| 精品亚洲欧美中文字幕在线看 | 2021国产精品久久久久精品免费网| 精品久久日日躁夜夜躁AV| 亚洲午夜精品A片久久软件 | 久久人妻少妇嫩草AV無碼|