RM新时代网站-首页

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

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

3天內不再提示

二值圖像分析的典型案例

OpenCV學堂 ? 來源:OpenCV學堂 ? 2023-12-06 10:54 ? 次閱讀

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

問題一

描述如下:

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

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

可以通過霍夫變換檢測圓來提取到

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

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

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

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

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

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

問題二

描述如下:

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

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

代碼

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

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)學處理
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

審核編輯:湯梓紅

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

    關注

    23

    文章

    4607

    瀏覽量

    92826
  • 代碼
    +關注

    關注

    30

    文章

    4779

    瀏覽量

    68521
  • 二值圖像
    +關注

    關注

    0

    文章

    14

    瀏覽量

    8730

原文標題:二值圖像分析案例精選

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

收藏 人收藏

    評論

    相關推薦

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

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

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

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

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

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

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

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

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

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

    基于Legendre矩的多閾值圖像重構算法

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

    基于邊界特征的圖像化方法應用研究

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

    圖像目標鄰域點法邊界跟蹤算法

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

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

    針對目前局部閾值化結果存在目標虛假或斷裂的缺陷,提出了一種基于圖像分塊的局部閾值化方法。首先,將
    發(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 ?5351次閱讀
    <b class='flag-5'>二</b><b class='flag-5'>值</b><b class='flag-5'>圖像</b> FPGA腐蝕算法解析

    機器視覺的圖像化詳細分析

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

    LabVIEW:如何顯示化后的圖像

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

    圖像分析最常見的方式

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

    OpenCV圖像分析

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

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

    圖像是一種由黑白兩色組成的圖像,其像素只有兩種可能,分別對應黑色和白色。在
    的頭像 發(fā)表于 01-05 14:28 ?832次閱讀
    RM新时代网站-首页