一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

二值圖像分析的典型案例

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

掃碼添加小助手

加入工程師交流群

最近一直有人向我提問很多二值圖像分析相關(guān)的問題,特別選擇了兩個(gè)典型的輪廓分析問題。進(jìn)行分析與編碼實(shí)現(xiàn)與演示,廢話不多說,先看第一個(gè)問題。

問題一

描述如下:

想找到工具盤中間缺少的幾個(gè)點(diǎn),統(tǒng)計(jì)出可以看到的工件數(shù)目

仔細(xì)分析圖像發(fā)現(xiàn),中間都毫無另外的有個(gè)白色很亮的圓圈,這個(gè)給了我兩個(gè)思路

可以通過霍夫變換檢測(cè)圓來提取到

可以通過二值圖像分析來提取 + 輪廓分析來提取到這些點(diǎn)

得到這些輪廓點(diǎn)之后通過分析整個(gè)輪廓區(qū)域得到傾斜角度,進(jìn)行糾偏,然后通過X與Y投影進(jìn)行分割,得到每個(gè)零件的中心位置坐標(biāo),根據(jù)每一行的間隔設(shè)置閾值,從而實(shí)現(xiàn)缺少部分部分的標(biāo)出與件數(shù)統(tǒng)計(jì),確定了這樣的思路以后,我就開始了寫代碼。代碼實(shí)現(xiàn)是基于輪廓分析的思路,因?yàn)檫@個(gè)方法,用的閾值比較少,有利于算法穩(wěn)定性檢測(cè)。演示各部輸出。二值化處理之后(形態(tài)學(xué)處理):

輪廓發(fā)現(xiàn)與校正角度之后

投影分析與統(tǒng)計(jì)結(jié)果如下:

此外基于霍夫也是可以嘗試的,霍夫的二值化效果也比較好,顯示如下:

感興趣的同學(xué)可以自己繼續(xù)嘗試下去。

問題二

描述如下:

如何統(tǒng)計(jì)下圖中的對(duì)象個(gè)數(shù),原圖如下

看到這個(gè)圖像之后,個(gè)人覺得解決十分簡單,基于最外層輪廓發(fā)現(xiàn)即可,無需樹形結(jié)構(gòu)與層次分析,集合圖像形態(tài)學(xué)分析或者距離變換就可以得到,最終代碼的運(yùn)行結(jié)果如下:

代碼

問題1的代碼如下(已經(jīng)添加各步驟注釋了):

src=cv.imread("D:/images/zsxq/zsxq_01.jpg")
cv.imshow("input",src)

#二值化處理
gray=cv.cvtColor(src,cv.COLOR_BGR2GRAY)
se=cv.getStructuringElement(cv.MORPH_RECT,(3,3))
dst=cv.morphologyEx(gray,cv.MORPH_GRADIENT,se)
ret,binary=cv.threshold(dst,0,255,cv.THRESH_OTSU|cv.THRESH_BINARY)

#形態(tài)學(xué)處理
se=cv.getStructuringElement(cv.MORPH_ELLIPSE,(5,5))
binary=cv.morphologyEx(binary,cv.MORPH_OPEN,se)
se=cv.getStructuringElement(cv.MORPH_ELLIPSE,(10,10))
binary=cv.morphologyEx(binary,cv.MORPH_CLOSE,se)
cv.imshow("binary",binary)

#輪廓分析
contours,hireachy=cv.findContours(binary,cv.RETR_EXTERNAL,cv.CHAIN_APPROX_SIMPLE)
result=np.zeros_like(binary)
total=0
forcntinrange(len(contours)):
area=cv.contourArea(contours[cnt])
ifarea

問題2的完整代碼如下:

importcv2ascv
importnumpyasnp

src=cv.imread("D:/images/zsxq/zsxq_02.jpg")
cv.imshow("input",src)
src=cv.GaussianBlur(src,(3,3),0)
gray=cv.cvtColor(src,cv.COLOR_BGR2GRAY)
edge=cv.Canny(src,50,100)

se=cv.getStructuringElement(cv.MORPH_ELLIPSE,(10,10))
binary=cv.morphologyEx(edge,cv.MORPH_CLOSE,se)
contours,hireachy=cv.findContours(binary,cv.RETR_EXTERNAL,cv.CHAIN_APPROX_SIMPLE)
count=0
forcntinrange(len(contours)):
area=cv.contourArea(contours[cnt])
ifarea

審核編輯:湯梓紅

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

    關(guān)注

    23

    文章

    4709

    瀏覽量

    95362
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4900

    瀏覽量

    70719
  • 二值圖像
    +關(guān)注

    關(guān)注

    0

    文章

    14

    瀏覽量

    8853

原文標(biāo)題:二值圖像分析案例精選

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    基于FPGA的圖像的膨脹算法的實(shí)現(xiàn)

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

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

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

    一種有效的文本圖像化方法

    針對(duì)一般文本圖像化方法--全局閾值法和局部閾值法所存在的不足,提出了一種整體與局部相結(jié)合的化方法,該方法根據(jù)文本
    發(fā)表于 06-11 09:08 ?13次下載

    巖石節(jié)理圖像的細(xì)化

    分析巖石節(jié)理圖片,細(xì)化是關(guān)鍵的一步,它是分析節(jié)理拓?fù)浣Y(jié)構(gòu)的基礎(chǔ)。由于節(jié)理圖片噪聲大,節(jié)理內(nèi)部有空洞等特點(diǎn),直接用現(xiàn)有細(xì)化算法得到的結(jié)果中存在大量毛刺和并
    發(fā)表于 07-08 08:35 ?7次下載

    基于大津法的圖像分塊化算法

    本文對(duì)灰度圖像化的方法進(jìn)行研究,提出了一種新的以大津法為基礎(chǔ)的圖像分塊化方法。通過對(duì)采集
    發(fā)表于 08-04 09:25 ?48次下載

    基于Legendre矩的多閾值圖像重構(gòu)算法

    基于Legendre矩的多閾值圖像重構(gòu)算法:首先介紹Legendre正交矩及其逆變換;然后根據(jù)Legendre矩逆變換的特點(diǎn),采用一種新的方法—— 多閣法對(duì)重構(gòu)的
    發(fā)表于 10-26 11:34 ?15次下載

    基于邊界特征的圖像化方法應(yīng)用研究

    基于邊界特征的圖像化方法應(yīng)用研究:邊界特征是圖像的重要信息,閾值是區(qū)分圖像象素點(diǎn)的主要依據(jù)。研究了基于
    發(fā)表于 11-08 16:28 ?26次下載

    圖像目標(biāo)鄰域點(diǎn)法邊界跟蹤算法

    分析圖像識(shí)別中常用的輪廓跟蹤算法,并指出其缺點(diǎn)。在提出目標(biāo)鄰域點(diǎn)概念的基礎(chǔ)上,提供一種對(duì)
    發(fā)表于 05-25 15:02 ?40次下載
    <b class='flag-5'>二</b><b class='flag-5'>值</b><b class='flag-5'>圖像</b>目標(biāo)鄰域點(diǎn)法邊界跟蹤算法

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

    針對(duì)目前局部閾值化結(jié)果存在目標(biāo)虛假或斷裂的缺陷,提出了一種基于圖像分塊的局部閾值化方法。首先,將
    發(fā)表于 12-05 17:11 ?4次下載
    基于<b class='flag-5'>圖像</b>分塊的局部閾值<b class='flag-5'>二</b><b class='flag-5'>值</b>化方法

    圖像 FPGA腐蝕算法解析

    圖像的腐蝕算法過程中我們使用圖像3x3圖像
    發(fā)表于 03-21 11:14 ?5611次閱讀
    <b class='flag-5'>二</b><b class='flag-5'>值</b><b class='flag-5'>圖像</b> FPGA腐蝕算法解析

    機(jī)器視覺的圖像化詳細(xì)分析

    傳統(tǒng)的機(jī)器視覺通常包括兩個(gè)步驟——預(yù)處理和物體檢測(cè)。而溝通者的橋梁則是圖像分割(Image Segmentation)[1]。圖像分割通過簡化或改變圖像的表示形式,使得
    的頭像 發(fā)表于 06-16 09:22 ?1.1w次閱讀

    LabVIEW:如何顯示化后的圖像

    LabVIEW中常見的圖像預(yù)處理操作化的結(jié)果比較特殊,圖像實(shí)際上也是一種U8
    的頭像 發(fā)表于 12-06 09:40 ?1.1w次閱讀

    圖像分析最常見的方式

    圖像分析最常見的一個(gè)主要方式就是輪廓發(fā)現(xiàn)與輪廓分析,其中輪廓發(fā)現(xiàn)的目的是為輪廓分析做準(zhǔn)備,經(jīng)
    的頭像 發(fā)表于 08-12 10:45 ?1448次閱讀

    OpenCV圖像分析

    圖像分析最常見的一個(gè)主要方式就是輪廓發(fā)現(xiàn)與輪廓分析,其中輪廓發(fā)現(xiàn)的目的是為輪廓分析做準(zhǔn)備,經(jīng)
    的頭像 發(fā)表于 10-20 12:25 ?839次閱讀

    圖像連通區(qū)域的標(biāo)記原理

    圖像是一種由黑白兩色組成的圖像,其像素只有兩種可能,分別對(duì)應(yīng)黑色和白色。在
    的頭像 發(fā)表于 01-05 14:28 ?1421次閱讀