国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

廉江網(wǎng)站建設(shè)公眾號(hào)推廣合作平臺(tái)

廉江網(wǎng)站建設(shè),公眾號(hào)推廣合作平臺(tái),企業(yè)手機(jī)網(wǎng)站建設(shè)新聞,網(wǎng)站建設(shè)策劃表文章目錄一、引言二、檢測(cè)圓形三、總結(jié)一、引言 前面的文(用戶指南/快速向?qū)?amp;#xff09;差不多已經(jīng)把HALCON的基本內(nèi)容講完了,并且在學(xué)習(xí)過(guò)程中還跑過(guò)一個(gè)簡(jiǎn)單示例——在單一背景下定位回形針。示例跑過(guò),頓時(shí)覺(jué)得自己行了,但如果…

文章目錄

  • 一、引言
  • 二、檢測(cè)圓形
  • 三、總結(jié)


一、引言

前面的文(用戶指南/快速向?qū)?#xff09;差不多已經(jīng)把HALCON的基本內(nèi)容講完了,并且在學(xué)習(xí)過(guò)程中還跑過(guò)一個(gè)簡(jiǎn)單示例——在單一背景下定位回形針。示例跑過(guò),頓時(shí)覺(jué)得自己行了,但如果此時(shí)(假設(shè)你和我一樣沒(méi)有其他圖像處理經(jīng)驗(yàn))你想上手解決一個(gè)實(shí)際問(wèn)題,很可能寸步難行。

就拿我來(lái)說(shuō),隨手找了張圖片,想定位圖片中的目標(biāo)圖形——硬幣。
在這里插入圖片描述

于是,按照回形針示例中的步驟,借用灰度圖像來(lái)閾值化,得到的圖片是這樣的,
在這里插入圖片描述
先不談背景中的大紅塊,連顏色相近的文字也被保留了下來(lái),這不是我希望保留的。不過(guò)也很正常,因?yàn)橛玫降膱D像處理是基于形態(tài)學(xué)的,簡(jiǎn)單講就是顏色、形狀、面積的匹配,是比較傻瓜式的,實(shí)際上計(jì)算機(jī)并不認(rèn)識(shí)硬幣。

那如何去掉這些背景中不希望保留的元素呢,經(jīng)過(guò)我一番查閱,知道了兩種常用操作——腐蝕(erosion)和膨脹(dilation)。因?yàn)楸疚牟皇侵饕榻B它們的實(shí)現(xiàn),所以只簡(jiǎn)單談一下經(jīng)過(guò)它們處理的效果。

腐蝕(erosion)
自然界中的腐蝕,假設(shè)你有一塊鐵板,經(jīng)過(guò)腐蝕后,可能會(huì)變得像下圖一樣銹跡斑斑且有許多破洞,這些破洞大的區(qū)域,可能原本就有損壞、比較脆弱;而一些保留相對(duì)完好的區(qū)域,原本可能是成塊的、比較結(jié)實(shí)的部分(假設(shè)腐蝕對(duì)每塊區(qū)域作用都一樣)。
在這里插入圖片描述
而圖像處理中的腐蝕,作用于引言中的示例圖后,就得到了下圖??梢钥吹?#xff0c;其實(shí)效果類似鐵板腐蝕,大塊圖形保留較好,而一些細(xì)小圖形直接消失了(被腐蝕掉了);大圖形上的一些小孔,經(jīng)過(guò)腐蝕也變大了。
在這里插入圖片描述
膨脹(dilation)
說(shuō)到膨脹,自然就想到吹氣球,氣球充氣后變大了(當(dāng)然也可能爆掉)。圖像處理中的膨脹也類似(但不會(huì)爆),它是與腐蝕相反的操作。把圖像中的像素/區(qū)域想成一個(gè)氣球,經(jīng)過(guò)膨脹后,它就變大了。下面對(duì)示例圖做膨脹,原來(lái)那些密密麻麻的字體明顯變粗壯了,就像墨水在紙上洇開(kāi)來(lái)一樣。
在這里插入圖片描述

Ok,關(guān)于腐蝕和膨脹到這里就差不多了(應(yīng)用章節(jié)能理解其效果即可)。現(xiàn)在開(kāi)始跑一個(gè)官方示例 Inspection of Ball Bonding ,在HDevelop示例程序中搜索 ball 關(guān)鍵字,可以找到該示例工程,選中 ball.hdev 打開(kāi)。

二、檢測(cè)圓形

這是示例原圖,現(xiàn)在要找到并標(biāo)注黑色圓形粘接口,接下來(lái)一行行學(xué)習(xí)它的程序(共五十多行)。
在這里插入圖片描述
HALCON程序的頭幾行,

* ball.hdev: Inspection of Ball Bonding
* 
dev_update_window ('off')
dev_close_window ()
dev_open_window (0, 0, 728, 512, 'black', WindowID)

*(星號(hào))開(kāi)頭的是注釋,剩下三行以 dev_ 前綴的與圖形處理無(wú)直接關(guān)系,它們的作用分別是:

  1. 會(huì)關(guān)閉圖像變量向圖形窗口的自動(dòng)輸出(設(shè)置為’off’,還有一點(diǎn)好處是當(dāng)你選中圖像變量,圖形窗口中只會(huì)顯示選中的圖像變量,方便觀察,不然需要手動(dòng)再選一次 顯示/清除)
  2. 關(guān)閉活動(dòng)的圖形窗口
  3. 并打開(kāi)一個(gè)728×512的黑色背景窗口。

接著,讀取原圖,

read_image (Bond, 'die/die_03')

雖然上面代碼中關(guān)閉了圖像變量自動(dòng)顯示在活動(dòng)窗口,但在你單步調(diào)試程序時(shí),這點(diǎn)會(huì)被無(wú)視掉。下面用 dev_display 顯式輸出讀取的圖像到圖形窗口。

dev_display (Bond)
set_display_font (WindowID, 14, 'mono', 'true', 'false')
disp_continue_message (WindowID, 'black', 'true')
stop ()

剩下兩句看似是系統(tǒng)算子,但實(shí)際上是預(yù)定義好的外部函數(shù)。效果就是在圖像下方顯示文字,接著 stop() 暫停程序執(zhí)行。
在這里插入圖片描述
接下來(lái)是老朋友了,閾值化。

threshold (Bond, Bright, 100, 255)

在這里插入圖片描述

閾值化后是一個(gè)新的算子 shape_trans ,它可以變換區(qū)域的形狀。這邊填的參數(shù)為 ‘rectangle2’ ,在輸入?yún)^(qū)域中外接最小矩形。上面閾值化后的圖像,頂部明顯有一片區(qū)域是黑的,也就是沒(méi)有像素的,這部分區(qū)域在后續(xù)處理過(guò)程中是不需要的,我們?nèi)绾稳サ羲?#xff0c;就需要外接矩形了。

shape_trans (Bright, Die, 'rectangle2')

在這里插入圖片描述
接下來(lái)幾步是在外接矩形外圍畫一個(gè)框,并顯示預(yù)定義好的文字提示信息,然后暫停一下。

dev_set_color ('green')
dev_set_line_width (3)
dev_set_draw ('margin')
dev_display (Die)
disp_continue_message (WindowID, 'black', 'true')
stop ()

在這里插入圖片描述
你可能會(huì)問(wèn),有這么一個(gè)矩形有啥用呢?
別急,接下來(lái)的算子 reduce_domain 中會(huì)用到它,

reduce_domain (Bond, Die, DieGrey)

它會(huì)從原圖中裁剪出矩形區(qū)域的圖像,
在這里插入圖片描述
這里的裁剪出圖像,其實(shí)圖像的尺寸未發(fā)生變化,你可以看到黑色背景還是在的,這相當(dāng)于把矩形以外的區(qū)域去掉了,但保留背景/畫布(HALCON中還有一個(gè)算子)。
上面這幾步操作(獲取目標(biāo)矩形,用矩形裁剪圖像)很常用,通常獲取ROI區(qū)域就是這么做的。

接下來(lái)對(duì)裁剪得到區(qū)域再次進(jìn)行閾值化,這次保留了灰度值低的區(qū)域(靠近0接近黑色,靠近255接近白色),另外圖像頂部的黑色區(qū)域其實(shí)是沒(méi)有像素的,所以并未選中

threshold (DieGrey, Wires, 0, 50)

在這里插入圖片描述
下一步又是一個(gè)新的算子 fill_up_shape ,它的作用是填充區(qū)域中具有某些特征的空洞,下面參數(shù)表示的特征是面積,范圍是1-100。也就是將該范圍面積的空洞填滿,

fill_up_shape (Wires, WiresFilled, 'area', 1, 100)

來(lái)看下放大后的效果吧,處理前,
在這里插入圖片描述
處理后,
在這里插入圖片描述
還是很明顯的,區(qū)域內(nèi)的小圓孔被填充滿了。你可能會(huì)問(wèn),不是填充滿嗎,為什么消失了?因?yàn)閳D案是接近黑色的,填充后看起來(lái)就是消失了。

接下來(lái)又是一些額外操作,顯示原圖底片,用紅色填充滿處理后區(qū)域,

dev_display (Bond)
dev_set_draw ('fill')
dev_set_color ('red')
dev_display (WiresFilled)
disp_continue_message (WindowID, 'black', 'true')
stop ()

在這里插入圖片描述
下一步是一個(gè)很有用的操作——開(kāi)操作(halcon中名稱為opening的都是開(kāi)操作相關(guān)的),它的原理其實(shí)是腐蝕和膨脹的結(jié)合,即先腐蝕后膨脹,

opening_circle (WiresFilled, Balls, 15.5)

處理后的效果,是不是非常離譜,但理解了文章開(kāi)頭說(shuō)的效果后,其實(shí)不難想象。
在這里插入圖片描述
接下來(lái),切換了輸出顏色,重新輸出處理后的區(qū)域,

dev_set_color ('green')
dev_display (Balls)
disp_continue_message (WindowID, 'black', 'true')
stop ()

在這里插入圖片描述
接下來(lái)三個(gè)算子, 先是connection 尋找區(qū)域內(nèi)的連通部分;
第二個(gè)是新算子 select_shape ,找到具有目標(biāo)特征的形狀,這邊填寫的參數(shù)是 ‘circularity’ ,就是類圓的圖形;
第三個(gè)算子就是字面意思,對(duì)圖形按位置排序(這邊參數(shù)表示按列值升序排)。

connection (Balls, SingleBalls)
select_shape (SingleBalls, IntermediateBalls, 'circularity', 'and', 0.85, 1.0)
sort_region (IntermediateBalls, FinalBalls, 'first_point', 'true', 'column')

在這里插入圖片描述
然后,又是換色顯示原圖對(duì)比,并輸入提示文本,

dev_display (Bond)
dev_set_colored (12)
dev_display (FinalBalls)
disp_continue_message (WindowID, 'black', 'true')
stop ()

在這里插入圖片描述
最后,
smallest_circle 確定這些圓形區(qū)域的最小外接圓,并將輸出的坐標(biāo)和半徑做處理后輸出到圖形窗口。

smallest_circle (FinalBalls, Row, Column, Radius)
NumBalls := |Radius|
Diameter := 2 * Radius
meanDiameter := mean(Diameter)
minDiameter := min(Diameter)
dev_display (Bond)
disp_circle (WindowID, Row, Column, Radius)
dev_set_color ('white')
disp_message (WindowID, 'D: ' + Diameter$'.4', 'image', Row - 2 * Radius, Column, 'white', 'false')
dev_update_window ('on')

在這里插入圖片描述

至此,示例程序處理完畢。

之后,我用了示例方法處理文章開(kāi)頭的示例圖,得到如下效果
在這里插入圖片描述

三、總結(jié)

整個(gè)過(guò)程其實(shí)并不復(fù)雜,畢竟我們只是調(diào)用算子,不需要關(guān)注算法細(xì)節(jié)。
但這里還是得稍微總結(jié)一下所涉及的常用操作,

  • 閾值化,拿到圖之后通常會(huì)先閾值化一下,方便后續(xù)處理。
  • 選取ROI,通常獲取一個(gè)形狀,然后用該形狀去裁剪原圖,可以減少后續(xù)圖像處理量,并減少干擾區(qū)域。
  • 腐蝕和膨脹,上面示例中的開(kāi)操作(opening)就包含了腐蝕和膨脹,你也可以分開(kāi)來(lái)使用,常見(jiàn)的還有閉操作(closing)。這些操作通常用來(lái)去掉圖像背景中的干擾區(qū)域,填充空缺。
  • 基于的特征的圖形選擇,這步是在尋找連通區(qū)域(connection)之后的。

上面提到的閾值化、選取ROI等操作都可以UI交互實(shí)現(xiàn),比直接調(diào)參更方便。

http://m.aloenet.com.cn/news/31465.html

相關(guān)文章:

  • html網(wǎng)頁(yè)設(shè)計(jì)基礎(chǔ)seo優(yōu)化主要做什么
  • 網(wǎng)站開(kāi)發(fā)者模式企業(yè)官網(wǎng)建站
  • 學(xué)網(wǎng)站建設(shè)需要什么軟件百度外包公司有哪些
  • 企業(yè)網(wǎng)站建設(shè)參考資料競(jìng)價(jià)推廣賬戶競(jìng)價(jià)托管
  • 珠海服務(wù)好的網(wǎng)站建設(shè)武漢seo
  • 江陰做網(wǎng)站百度秒收錄軟件工具
  • 微商網(wǎng)站開(kāi)發(fā)寧波網(wǎng)站推廣營(yíng)銷
  • 恒華大廈做網(wǎng)站公司山東做網(wǎng)站
  • 專門教做甜品的網(wǎng)站愛(ài)站網(wǎng)關(guān)鍵詞
  • wordpress用qq注冊(cè)谷歌seo什么意思
  • 如何做目錄wordpress北京網(wǎng)站優(yōu)化外包
  • 上海 高端 網(wǎng)站建設(shè)我的百度賬號(hào)登錄
  • 創(chuàng)新的鹽城網(wǎng)站建設(shè)百度收錄查詢代碼
  • 一步一步教你做網(wǎng)站哪家公司建設(shè)網(wǎng)站好
  • 做網(wǎng)站續(xù)費(fèi)seo概念
  • 租電信服務(wù)器開(kāi)網(wǎng)站磁力鏈bt磁力天堂
  • wordpress主題 dux1.2原版整站優(yōu)化排名
  • dk域名網(wǎng)站全搜網(wǎng)
  • 白菜網(wǎng)站建設(shè)如何優(yōu)化網(wǎng)站首頁(yè)
  • 公司網(wǎng)站建app互聯(lián)網(wǎng)營(yíng)銷師怎么報(bào)名
  • 建設(shè)部一建注冊(cè)公示網(wǎng)站培訓(xùn)心得體會(huì)范文大全1000字
  • 怎么建設(shè)好一個(gè)外貿(mào)購(gòu)物網(wǎng)站哪有惡意點(diǎn)擊軟件買的
  • 寧夏住房和城鄉(xiāng)建設(shè)廳網(wǎng)站執(zhí)業(yè)資格工具大全
  • 邢臺(tái)網(wǎng)站優(yōu)化建設(shè)站長(zhǎng)查詢域名
  • 二級(jí)域名網(wǎng)站怎么投廣告百度seo優(yōu)化規(guī)則
  • 手機(jī)端網(wǎng)站建設(shè)公司經(jīng)典網(wǎng)絡(luò)營(yíng)銷案例
  • 網(wǎng)站如何防止被復(fù)制百度打車客服電話
  • 高端網(wǎng)站設(shè)計(jì)費(fèi)用電商網(wǎng)站建設(shè)公司
  • 深圳做公司網(wǎng)站推廣的廣州seo網(wǎng)站開(kāi)發(fā)
  • 購(gòu)物網(wǎng)站開(kāi)發(fā)實(shí)戰(zhàn)有創(chuàng)意的網(wǎng)絡(luò)營(yíng)銷案例