99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

OpenCV4圖像分析之BLOB特征分析

OpenCV學(xué)堂 ? 來源:OpenCV學(xué)堂 ? 2023-12-28 12:28 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Blob分析

BLOB是圖像中灰度塊的一種專業(yè)稱呼,更加變通一點(diǎn)的可以說它跟我們前面二值圖像分析的聯(lián)通組件類似,通過特征提取實(shí)現(xiàn)常見的各種灰度BLOB對象組件檢測與分離。使用該檢測器的時候,可以根據(jù)需要輸入不同參數(shù),得到的結(jié)果跟輸入的參數(shù)息息相關(guān)。

Blob分析函數(shù)與演示

OpenCV中的Blob分析函數(shù)為SimpleBlobDetector,OpenCV中支持實(shí)現(xiàn)常見的BLOB分析過濾,如下所示:

-根據(jù)BLOB面積過濾
-根據(jù)灰度/顏色值過濾
-根據(jù)圓度過濾
-根據(jù)長軸與短軸過濾
-根據(jù)凹凸進(jìn)行過濾

對應(yīng)的參數(shù)列表如下:

SimpleBlobDetector::Params()
bool        filterByArea
bool        filterByCircularity
bool        filterByColor
bool        filterByConvexity
bool        filterByInertia
float        maxArea
float        maxCircularity
float        maxConvexity
float        maxInertiaRatio
float        maxThreshold
float        minArea
float        minCircularity
float        minConvexity
float        minDistBetweenBlobs
float        minInertiaRatio
OpenCV中Blob檢測示例代碼如下:
#include"opencv2/opencv.hpp"
#include

usingnamespacecv;
usingnamespacestd;

intmain(intargc,char**argv)
{
//加載圖像
Matsrc=imread("D:/lena.jpg");
Matgray;
cvtColor(src,gray,COLOR_BGR2GRAY);
cv::imshow("輸入圖像",src);

//初始化參數(shù)設(shè)置
SimpleBlobDetector::Paramsparams;
params.minThreshold=10;
params.maxThreshold=240;
params.filterByArea=true;
params.minArea=50;
params.filterByCircularity=true;
params.minCircularity=0.1;
params.filterByConvexity=true;
params.minConvexity=0.5;
params.filterByInertia=true;
params.minInertiaRatio=0.5;

//創(chuàng)建BLOBDetetor
Ptrdetector=SimpleBlobDetector::create(params);

//BLOB分析與顯示
Matresult;
vectorkeypoints;
detector->detect(gray,keypoints);
for(autokpt:keypoints){
std::cout<
 演示效果如下:

65d844bc-a535-11ee-8b88-92fbcf53809c.png

特殊使用技巧

SimpleBlobDetector 函數(shù)有兩個很詭異的地方。 第一個是實(shí)現(xiàn)的默認(rèn)參數(shù)支持與參數(shù)檢查 OpenCV中SimpleBlobDetector函數(shù)默認(rèn)的參數(shù)值如下:

thresholdStep = 10;
minThreshold = 50;
maxThreshold = 220;
minRepeatability = 2;
minDistBetweenBlobs = 10;


filterByColor = true;
blobColor=0;


filterByArea = true;
minArea = 25;
maxArea=5000;


filterByCircularity = false;
minCircularity = 0.8f;
maxCircularity=std::numeric_limits::max();


filterByInertia = true;
//minInertiaRatio = 0.6;
minInertiaRatio = 0.1f;
maxInertiaRatio=std::numeric_limits::max();


filterByConvexity = true;
//minConvexity = 0.8;
minConvexity = 0.95f;
maxConvexity = std::numeric_limits::max();


collectContours = false;
每次執(zhí)行之前都會進(jìn)行斷言檢查,但是OpenCV中同時提供了是否啟用Blob各種過濾開關(guān)選項(xiàng),但是無論開關(guān)選項(xiàng)是否啟用,這個斷言檢查都是檢查全部屬性值,這個就導(dǎo)致你設(shè)置選項(xiàng)為false的時候,必須填寫對應(yīng)選項(xiàng)的選項(xiàng)值,否則就無法執(zhí)行Blob檢測函數(shù)。對應(yīng)的源碼文件 blobdetector.cpp發(fā)現(xiàn)了這段代碼作為佐證:
staticvoidvalidateParameters(constSimpleBlobDetector::Params&p)
{
if(p.thresholdStep<=?0)
??????CV_Error(Error::StsBadArg,?"thresholdStep>0");

if(p.minThreshold>p.maxThreshold||p.minThreshold0");

if(p.minArea>p.maxArea||p.minArea<=0)
??????CV_Error(Error::StsBadArg,?"0p.maxCircularity||p.minCircularity<=?0)
??????CV_Error(Error::StsBadArg,?"0p.maxInertiaRatio||p.minInertiaRatio<=?0)
??????CV_Error(Error::StsBadArg,?"0p.maxConvexity||p.minConvexity<=?0)
??????CV_Error(Error::StsBadArg,?"0
 第二個是現(xiàn)實(shí)的默認(rèn)輸入圖像的背景必須是白色 如果是黑色背景圖像輸入,Blob檢測所有的參數(shù)就直接失效了,但是官方開發(fā)教程示例代碼與函數(shù)文檔都沒有說明這點(diǎn),導(dǎo)致很多新手小白不明所以就直接掉坑了,然后就放棄使用這個函數(shù)了。

審核編輯:黃飛

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

    關(guān)注

    3

    文章

    4381

    瀏覽量

    64947
  • OpenCV
    +關(guān)注

    關(guān)注

    32

    文章

    642

    瀏覽量

    42936
  • 圖像分析
    +關(guān)注

    關(guān)注

    0

    文章

    82

    瀏覽量

    18941
  • BLOB
    +關(guān)注

    關(guān)注

    0

    文章

    13

    瀏覽量

    10296

原文標(biāo)題:OpenCV4圖像分析之BLOB特征分析

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    OpenCV4.8 CUDA編程代碼教程

    OpenCV4支持通過GPU實(shí)現(xiàn)CUDA加速執(zhí)行,實(shí)現(xiàn)對OpenCV圖像處理程序的加速運(yùn)行,當(dāng)前支持加速的模塊包括如下。
    的頭像 發(fā)表于 12-05 09:56 ?1477次閱讀
    <b class='flag-5'>OpenCV</b>4.8 CUDA編程代碼教程

    Vivado HLS實(shí)現(xiàn)OpenCV圖像處理的設(shè)計(jì)流程與分析

    ,或者在更大的圖像中對需要的特征或區(qū)域進(jìn)行處理是,OpenCV似乎足以滿足很多應(yīng)用的要求,但對于高分辨率高幀率實(shí)時處理的場景下,OpenCV很難滿足高性能和低功耗的需求?;谝曨l流的架
    發(fā)表于 07-08 08:30

    CMake在Linux 6.1.1-1.0.0中搜索包opencv損壞了嗎?

    ] 但是這個文件不存在。 并嘗試使用圖像 imx-image-full 的 SDK,我收到以下錯誤: sysroots/armv8a-poky-linux/usr/lib/cmake/opencv4
    發(fā)表于 05-09 11:32

    紋理特征分析特征量計(jì)算

    紋理特征分析特征量計(jì)算 本文采取的系統(tǒng)結(jié)構(gòu)如圖1所示,所需要分類的圖像經(jīng)過預(yù)處理,所以不涉及圖像預(yù)處理過程。
    發(fā)表于 03-01 17:48 ?2152次閱讀
    紋理<b class='flag-5'>特征</b><b class='flag-5'>分析</b>及<b class='flag-5'>特征</b>量計(jì)算

    基于OpenCV圖像特征智能識別系統(tǒng)設(shè)計(jì)

    對于圖像監(jiān)控而言,多數(shù)監(jiān)控只是簡單的捕捉圖像、處理圖像,最后再通過人工進(jìn)行識別,缺少智能監(jiān)控,特別是針對某一特定需求的特征識別。本文設(shè)計(jì)一種基于Op
    發(fā)表于 12-31 09:20 ?20次下載

    OpenCV3.1的使用教程之圖像特征描述的詳細(xì)資料說明

    本文檔的主要內(nèi)容詳細(xì)介紹的是OpenCV3.1的使用教程之圖像特征描述的詳細(xì)資料說明
    發(fā)表于 01-06 08:00 ?13次下載

    基于OpenCV3.1的圖像特征描述功能實(shí)現(xiàn)

    本文檔的主要內(nèi)容詳細(xì)介紹的是OpenCV3.1的使用教程之圖像特征描述的詳細(xì)資料說明。
    發(fā)表于 03-29 14:26 ?10次下載

    基于OpenCV如何提取中心線

    問題 前幾天有個人問了我一個問題,問題是這樣的,他有如下的一張二值圖像: 怎么得到白色Blob中心線,他希望的效果如下: 顯然OpenCV中常見的輪廓分析無法獲得上面的中心紅色線段,本
    的頭像 發(fā)表于 04-26 13:51 ?4163次閱讀

    基于opencv4和Yolo-Fastest,實(shí)現(xiàn)PC和單片機(jī)通信,控制步進(jìn)電機(jī)捕獲目標(biāo)

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

    如何在Raspberry Pi 3上安裝OpenCV4

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

    OpenCV4中SIFT算法概述

    SIFT特征是非常穩(wěn)定的圖像特征,在圖像搜索、特征匹配、圖像分類檢測等方面應(yīng)用十分廣泛,但是它的
    的頭像 發(fā)表于 11-23 09:48 ?1826次閱讀

    學(xué)習(xí)OpenCV4的系統(tǒng)化路線圖

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

    OpenCV二值圖像分析

    二值圖像分析最常見的一個主要方式就是輪廓發(fā)現(xiàn)與輪廓分析,其中輪廓發(fā)現(xiàn)的目的是為輪廓分析做準(zhǔn)備,經(jīng)過輪廓分析我們可以得到輪廓各種有用的屬性信息
    的頭像 發(fā)表于 10-20 12:25 ?846次閱讀

    OpenCV4筆記連通域分析

    連通:若 S 是圖像中的一個像素子集,對于任意的 。如果存在一條由 S 中像素組成的從 p 到 q 的通路,則稱 p 在像素集 S 中與 q 連通。
    的頭像 發(fā)表于 12-25 17:16 ?1736次閱讀
    <b class='flag-5'>OpenCV4</b>筆記<b class='flag-5'>之</b>連通域<b class='flag-5'>分析</b>

    OpenCV4圖像的輪廓

    圖像的輪廓是指圖像中具有相同顏色或灰度值的連續(xù)點(diǎn)的曲線。輪廓和邊緣是有聯(lián)系的,邊緣是輪廓的基礎(chǔ),輪廓是邊緣的連續(xù)集合。
    的頭像 發(fā)表于 01-02 12:24 ?1066次閱讀