<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學堂 ? 2023-12-06 10:54 ? 次閱讀

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

問題一

描述如下:

想找到工具盤中間缺少的幾個點,統計出可以看到的工件數目

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

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

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

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

輪廓發現與校正角度之后

投影分析與統計結果如下:

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

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

問題二

描述如下:

如何統計下圖中的對象個數,原圖如下

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

代碼

問題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)

#形態學處理
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

審核編輯:湯梓紅

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

    關注

    23

    文章

    4465

    瀏覽量

    90946
  • 代碼
    +關注

    關注

    30

    文章

    4566

    瀏覽量

    66992
  • 二值圖像
    +關注

    關注

    0

    文章

    14

    瀏覽量

    8688

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

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

收藏 人收藏

    評論

    相關推薦

    求labview圖像化處理的程序

    誰可以給個圖像化處理的程序,通過閾值分割來實現化的???
    發表于 01-15 09:22

    labview 圖像閾值分割 得不到化圖

    如題新手剛上路 想實現圖像閾值分割 得到圖像運行結果:化圖全黑麻煩高手看看哪里出錯了。
    發表于 04-10 21:47

    數字圖像處理的時候,化是邊緣是斷開的??

    我在做數字圖像處理的時候,化是邊緣是斷開的,我怎么幫邊緣鏈接成封閉的。。。。。
    發表于 08-26 14:08

    將RGB各頻域內的圖像相加減后化處理的圖像

    保存化后的圖像為什么是黑色的
    發表于 04-19 14:05

    【創龍TMS320C6748開發板試用】圖像處理----圖像

    本帖最后由 wwwming0329 于 2015-12-16 13:21 編輯 一、何為圖像圖像
    發表于 12-15 16:06

    labview中有沒有對圖像采集后進行實時化的方法?

    求助:labview中有沒有對圖像采集后進行實時化的方法,也就是對正在采集的圖像進行化而
    發表于 04-06 10:43

    通過matlab對化矩陣圖像還原顯示

    `通過OV7670采集圖像,然后單片機將讀到的圖像數據,通過串口轉化成矩陣,復制成一個文本文件,內容如下,現在想通過matlab對該圖像
    發表于 05-24 15:00

    為什么 圖像化模板不能 匹配 ,或者匹配出錯 ?

    本 人做 圖像處理,做到了缺陷匹配 ,用模板圖片格式是 8位的png格式 ,而待檢測的圖是化的,匹配時顯示出錯,把模板改成進制的,顯示錯誤,什么原因 ?
    發表于 07-23 15:56

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

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

    基于圖像處理的PCB自動檢測系統的設計與研究(第部分)

    存在的典型的缺陷有:短路、斷路、凸起、凹陷、空洞等?! ∪毕莴@取后,并不能確定缺陷類型,還需要進行缺陷識別。缺陷識別是根據各種缺陷的不同特征來判斷。常用的描述圖像特征有直方圖統計特征、紋理特征、
    發表于 09-13 16:36

    圖像后分割粘連的區域如何分割

    `圖像粘連后如果是圓形的物體可以使用分水嶺或找圓進行分割。如果是其它形狀如橢圓或圖中形狀如何分割請教高手幫忙`
    發表于 03-31 22:46

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

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

    圖像化的分類方法

    十三種基于直方圖的圖像全局化算法原理 實現 代碼及效果
    發表于 08-06 14:29

    圖像中的圓怎么求圓的半徑

    圖像中的圓,怎么求圓的半徑,這圖的數據已經放在以為一維數組里了
    發表于 03-16 04:38

    快速圖像連通域標記算法有哪幾個環節?特點是什么?

    怎么實現圖像連通體檢測?快速圖像連通域標記算法有哪幾個環節?特點是什么?
    發表于 04-08 06:49
    亚洲欧美日韩精品久久_久久精品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>