




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
機(jī)器視覺技術(shù)基礎(chǔ)匯報(bào)人:陳西PPT工作室第1章機(jī)器視覺概述第2章數(shù)字圖像基礎(chǔ)第3章了解和熟悉HALCON第4章圖像預(yù)處理第5章圖像分割第6章特征提取第7章圖像的形態(tài)學(xué)處理第8章圖像模板匹配第9章3D立體視覺第10章HALCON相關(guān)實(shí)例和算法第一章機(jī)器視覺概述匯報(bào)人:陳西PPT工作室目錄機(jī)器視覺初認(rèn)識(shí)機(jī)器視覺硬件選型機(jī)器視覺的應(yīng)用及展望機(jī)器視覺硬件構(gòu)成機(jī)器視覺介紹以及工作原理PART1機(jī)器視覺初認(rèn)識(shí)
機(jī)器視覺,是指使用智能機(jī)器代替人類視覺進(jìn)行物體和環(huán)境識(shí)別,通過相機(jī)采集圖像,并使用軟件算法進(jìn)行分析和理解,最終使機(jī)器具有和生物視覺系統(tǒng)類似的場景感知能力。機(jī)器視覺硬件構(gòu)成PART2工作原理機(jī)器視覺系統(tǒng)組成模塊:光源、鏡頭、相機(jī)、圖像采集模塊、圖像處理模塊、交互界面等。工作原理機(jī)器視覺系統(tǒng)的工作流程圖機(jī)器視覺硬件選型PART3機(jī)器視覺組成模塊光源:是使被測物的重要特征顯現(xiàn),而抑制不需要的特征。面上常見的有LED光源、紅外光源、激光光源等。機(jī)器視覺組成模塊相機(jī):相機(jī)是一種將現(xiàn)場的影像轉(zhuǎn)化成數(shù)字信號或模擬信號的工具。相機(jī)的選型組要關(guān)注以下參數(shù):①分辨率②像素尺寸③幀率④像素深度⑤數(shù)字接口機(jī)器視覺組成模塊鏡頭:鏡頭是與相機(jī)配套使用的一種成像設(shè)備,機(jī)器視覺項(xiàng)目選型要關(guān)注的鏡頭參數(shù)主要包括以下幾種:①接口②最大靶面尺寸③物距與焦距④光圈⑤分辨率與成像質(zhì)量⑥鏡頭倍率與視場范圍機(jī)器視覺組成模塊圖像采集卡:
將來自相機(jī)的模擬信號或數(shù)字信號轉(zhuǎn)化為所需的圖像數(shù)據(jù)流并發(fā)送到計(jì)算機(jī)端,是相機(jī)和計(jì)算機(jī)之間的重要連接組件。機(jī)器視覺應(yīng)用及展望PART4機(jī)器視覺系統(tǒng)的工作流程機(jī)器視覺應(yīng)用及展望缺陷檢測一維碼識(shí)別醫(yī)藥檢測劃痕檢測小結(jié)在工業(yè)領(lǐng)域在醫(yī)學(xué)領(lǐng)域在交通領(lǐng)域在農(nóng)業(yè)領(lǐng)域
機(jī)器視覺光源鏡頭相機(jī)圖像采集模塊圖像處理模塊交互界面①接口②最大靶面尺寸③物距與焦距④光圈⑤分辨率與成像質(zhì)量⑥鏡頭倍率與視場范圍①分辨率②像素尺寸③幀率④像素深度⑤數(shù)字接口組成應(yīng)用謝謝聆聽第二章數(shù)字圖像基礎(chǔ)匯報(bào)人:陳西PPT工作室目錄圖像和數(shù)字圖像圖像像素間的關(guān)系圖像灰度直方圖圖像的數(shù)字化圖像和數(shù)字圖像第一部分圖像
圖像是客觀對象的一種相似性的、生動(dòng)性的描述或?qū)懻?,是人類社?huì)活動(dòng)中最常用的信息載體?;蛘哒f圖像是客觀對象的一種表示,它包含了被描述對象的有關(guān)信息。圖像分類數(shù)字圖像
數(shù)字圖像,即將圖像轉(zhuǎn)化為數(shù)字的形式。我們平時(shí)所見到的圖像,在計(jì)算機(jī)中都是一組數(shù)字,當(dāng)通過相機(jī)捕獲現(xiàn)實(shí)世界的景物時(shí),相機(jī)會(huì)捕獲現(xiàn)實(shí)世界的光源信號,并轉(zhuǎn)化為數(shù)字信號保存到存儲(chǔ)器上。數(shù)字圖像擴(kuò)展了人類獲取信息的渠道,可以幫人們更加客觀、準(zhǔn)確、快速地了解世界和認(rèn)識(shí)世界。數(shù)字圖像分類二值圖像(BinaryImage)灰度圖像(GrayScaleImage)三維圖像(3DImage)偽彩色圖像(false-color)彩色圖像(ColorImage)圖像的數(shù)字化第二部分
自然界的圖像信息是連續(xù)的模擬信號。一般的模擬圖像是不能直接用數(shù)字計(jì)算機(jī)來處理的。必須將各類圖像轉(zhuǎn)化為數(shù)字圖像然后再用計(jì)算機(jī)進(jìn)行分析處理。圖像的數(shù)字化過程主要分采樣、量化與編碼三個(gè)步驟。什么是圖像的數(shù)字化?數(shù)字圖像的表示一幅的m×n數(shù)字圖像可用矩陣表示為:采樣、量化參數(shù)與數(shù)字化圖像間的關(guān)系
數(shù)字化方式可分為均勻采樣、量化和非均勻采樣、量化。所謂“均勻”,指的是采樣、量化為等間隔。圖像數(shù)字化一般采用均勻采樣和均勻量化方式。采用非均勻采樣與量化,會(huì)使問題復(fù)雜化,因此很少采用。
一般來說,采樣間隔越大,所得圖像像素?cái)?shù)越少,圖像空間分辨率低,質(zhì)量差。采樣間隔越小,所得圖像像素?cái)?shù)越多,圖像空間分辨率高,質(zhì)量好,但數(shù)據(jù)量大。如右圖所示,圖(a)至(f)是采樣間距遞增獲得的圖像,像素?cái)?shù)從256×256遞減至8×8。
量化等級越多,所得圖像層次越豐富,灰度分辨率越高,質(zhì)量越好,但數(shù)據(jù)量大;量化等級越少,圖像層次欠豐富,灰度分辨率低,質(zhì)量變差,會(huì)出現(xiàn)假輪廓現(xiàn)象,但數(shù)據(jù)量小。如右圖所示,圖2.7(a)至(f)是在采樣間距相同時(shí)灰度級數(shù)從256逐次減少為64、16、8、4、2所得到的圖像。圖像像素間的關(guān)系第三部分圖像像素間的關(guān)系
像素間的關(guān)系主要對像素與像素之間的關(guān)聯(lián)進(jìn)行描述,理解像素間的關(guān)系是學(xué)習(xí)圖像處理的必要準(zhǔn)備,這主要包括相鄰像素,鄰接性、連通性,區(qū)域、邊界的概念,以及今后要用到的一些常見距離度量方法。
鄰域關(guān)系用于描述相鄰像素之間的相鄰關(guān)系,包括4鄰域、8鄰域、D鄰域等類型。假定位于坐標(biāo)的一個(gè)像素p有4個(gè)水平和垂直的相鄰像素,如下圖所示。
相鄰像素四鄰域
定義V是用于定義鄰接性的灰度值集合,它是一種相似性的度量,用于確定所需判斷鄰接性的像素之間的相似程度。這里考慮三種類型的鄰接性:(1)4鄰接(2)8鄰接(3)m鄰接(混合鄰接鄰接性像素鄰接示意圖
從具有坐標(biāo)的像素p到具有坐標(biāo)的像素q的通路(或曲線)是特定的像素序列,其坐標(biāo)為:連通性
其中并且像素和(對于)是鄰接的。在這種情況下,n是通路的長度。如果,則通路是閉合通路。
區(qū)域和邊界
區(qū)域的定義是建立在連通集的基礎(chǔ)上的,令R是圖像中的像素子集。如果R是連通集,則稱R為一個(gè)區(qū)域。如果R是整幅圖像(我們設(shè)這幅圖像是像素的方形集合),則邊界由圖像首行、首列、末行和末列定義。注意:邊界和邊緣是不同的。邊界是和區(qū)域有關(guān)的全局概念,而邊緣表示圖像函數(shù)的局部性質(zhì)。
對于像素p、q和z,其坐標(biāo)分別為、和,如果函數(shù)D滿足距離三要素,即:(1)非負(fù)性,;(2)對稱性,;(3)三角不等式,。則稱函數(shù)D為有效距離函數(shù)或度量,常用的像素間距離度量包括歐式距離、距離(城市距離)及距離(棋盤距離)。像素之間的距離圖像灰度直方圖第四部分圖像灰度直方圖
對一幅圖像,若對應(yīng)于每一個(gè)灰度值,統(tǒng)計(jì)出具有該灰度值的像素?cái)?shù),并描繪出像素?cái)?shù)一灰度值圖形,則該圖形稱為該圖像的灰度直方圖,簡稱直方圖。如右圖所示。不同的圖像具有相同的直方圖直方圖的性質(zhì)
灰度直方圖只能反映圖像的灰度分布情況,而不能反映圖像像素的位置。如圖1所示。1
一幅圖像各子區(qū)的直方圖之和就等于該圖全圖的直方。如圖2所示。2圖1不同的圖像具有相同的直方圖圖2子區(qū)直方圖與全面直方圖的關(guān)系直方圖的運(yùn)用
1.用于判斷圖像量化是否恰當(dāng),直方圖的快速檢查可以使數(shù)字化中產(chǎn)生的問題及早暴露出來,以免浪費(fèi)大量時(shí)間。2.用于確定圖像二值化的閾值假定一幅圖像如下圖所示,背景是黑色,物體為灰色。容易得知直方圖上的左峰由背景中的黑色像素產(chǎn)生,而右峰由物體中各灰度級產(chǎn)生。選擇谷對應(yīng)的灰度作為閾值T,利用下式對圖像二值化,得到一幅二值圖像。
直方圖的運(yùn)用
本章介紹了圖像與數(shù)字圖像相關(guān)的基礎(chǔ)知識(shí)、像素鄰域的處理技術(shù),即像素間的基本關(guān)系。值得一提的是,圖像灰度直方圖也是數(shù)字圖像處理的常用手段之一,對圖像灰度直方圖的學(xué)習(xí)能為后續(xù)圖像運(yùn)算內(nèi)容的學(xué)習(xí)提供重要鋪墊。本章小結(jié)2.1什么是數(shù)字圖像?為什么要對圖像進(jìn)行數(shù)字化處理?2.2圖像數(shù)字化包括哪兩個(gè)過程?每個(gè)過程對數(shù)字化圖像質(zhì)量有何影響?2.3為什么要對圖像進(jìn)行壓縮編碼處理?壓縮編碼有什么作用?2.4圖像像素間一般有哪些關(guān)系?2.5什么是灰度直方圖,有哪些應(yīng)用?2.6從灰度直方圖你能獲得哪些信息?習(xí)題謝謝聆聽第三章了解和熟悉HALCON匯報(bào)人:陳西PPT工作室走進(jìn)HALCONHDevelop組件介紹圖像采集數(shù)據(jù)結(jié)構(gòu)目錄第一部分第二部分第三部分第四部分走進(jìn)HALCON第一部分什么是HALCON?
HALCON是廣泛使用的機(jī)器視覺軟件,用戶可以利用其開放式結(jié)構(gòu)快速開發(fā)圖像處理和機(jī)器視覺軟件。HALCON包含了各類濾波,色彩以及幾何,數(shù)學(xué)轉(zhuǎn)換,形態(tài)學(xué)計(jì)算分析,校正,分類辨識(shí),形狀搜尋等等基本的幾何以及影像計(jì)算功能。HALCON主要有以下三個(gè)優(yōu)點(diǎn):(1)HALCON包含了一套交互式的程序設(shè)計(jì)界面HDevelop,讓使用者能在最短的時(shí)間里開發(fā)出視覺系統(tǒng)。(2)HALCON不限制取像設(shè)備,可以自行挑選合適的設(shè)備。(3)使用HALCON,在設(shè)計(jì)人機(jī)接口時(shí)沒有特別的限制,也不必特別的可視化組件,可以完全使用開發(fā)環(huán)境下的程序語言,例如visualstudio、NET、Mono等等。走進(jìn)HALCONHDevelop圖形組件第二部分
HALCON安裝完成后,雙擊它的執(zhí)行程序HDevelop.exe,便進(jìn)入開發(fā)環(huán)境界面,整個(gè)界面分為標(biāo)題欄、菜單欄、工具欄、狀態(tài)欄和四個(gè)活動(dòng)界面窗口,一般情況下有四個(gè)活動(dòng)界面窗口分別是圖形窗口、算子窗口、變量窗口和程序窗口,如左圖所示。注意:如果窗口排列不整齊,則可以點(diǎn)擊菜單欄中的“窗口”→“排列窗口”,重新排列窗口。HALCON主界面HDevelop預(yù)覽
圖形窗口主要顯示圖像,可以顯示處理前的原始圖像,也可以顯示處理后的region等,如左圖所示。圖形窗口圖形窗口
算子窗口顯示的是算子的重要數(shù)據(jù),包含了所有的參數(shù)、各個(gè)變量的型態(tài)以及參數(shù)數(shù)值,如左圖所示。這里會(huì)顯示參數(shù)的默認(rèn)值以及可以選用的數(shù)值。在圖形窗口中,只要鍵入部分字符串甚至開頭的字母,即可顯示所有符合名稱的算子供選用。算子窗口算子窗口
變量窗口顯示了程序在執(zhí)行時(shí)產(chǎn)生的各種變量,包括圖像變量和控制變量,在變量上用鼠標(biāo)雙擊,即可顯示變量值,如左圖所示。變量窗口變量窗口
程序窗口用來顯示一個(gè)HDevelop程序。它可以顯示整個(gè)程序或是某個(gè)運(yùn)算符。窗口左側(cè)是一些控制程序執(zhí)行的指示符號。HDevelop剛啟動(dòng)時(shí),可以看到一個(gè)綠色箭頭的程序計(jì)數(shù)器(ProgramCounter,PC)、一個(gè)插入符號,還可以設(shè)置一個(gè)斷點(diǎn)(breakingpoint),窗口右側(cè)顯示程序代碼,如左圖所示。程序窗口程序窗口軟件圖像采集第三部分軟件圖像采集
熟悉了HALCON界面之后,接下來就要考慮怎么樣進(jìn)行采集圖像。圖像采集是圖像處理的基礎(chǔ),采集圖像的速度和質(zhì)量會(huì)直接影響后續(xù)圖像處理的效率?,F(xiàn)在我們來介紹如何獲取輸入圖像。1、讀取單張圖像,利用read_image算子進(jìn)行讀取程序如下:read_image(Image,'D:/patras.png')獲取非實(shí)時(shí)圖像讀取整個(gè)文件夾的圖像,則可以利用for循環(huán)來實(shí)現(xiàn)。
2、利用快捷鍵按住CTRL+R打開讀取圖像對話窗口,在文件名稱一欄中選擇圖像所在的文件路徑,在語句插入位置點(diǎn)擊確定,即可獲得圖像,如下圖所示。使用快捷鍵獲取圖像獲取非實(shí)時(shí)圖像3、利用采集助手批量讀取文件夾下所有圖像點(diǎn)擊菜單欄中的“助手”→“打開新的ImageAcquisition”,點(diǎn)擊“資源”選項(xiàng)卡下的“選擇路徑”,如圖1所示。點(diǎn)擊“代碼生成”選項(xiàng)卡下的“插入代碼”,如圖2所示。
圖1文件選擇路徑圖圖2插入代碼獲取非實(shí)時(shí)圖像實(shí)時(shí)圖像的HALCON實(shí)時(shí)圖像采集可分為以下三步,如下圖所示:HALCON實(shí)時(shí)采集圖像流程圖獲取實(shí)時(shí)圖像在HALCON中,獲取實(shí)時(shí)圖像主要有兩種方式:①通過HALCON自帶的采集接口獲?。虎谕ㄟ^相機(jī)配套的SDK獲取。數(shù)據(jù)結(jié)構(gòu)第四部分?jǐn)?shù)據(jù)結(jié)構(gòu)
在研究機(jī)器視覺算法之前,我們必須分析機(jī)器視覺應(yīng)用中涉及到的基本數(shù)據(jù)結(jié)構(gòu)。因此,本節(jié)中我們先介紹一下圖像,區(qū)域、亞像素輪廓、句柄以及數(shù)組數(shù)據(jù)結(jié)構(gòu)。在HALCON中查看圖像變量
在HALCON中,把鼠標(biāo)移動(dòng)到HALCON變量窗口中的圖像變量上會(huì)顯示圖像變量的類型、通道及尺寸,如下圖所示。
圖像通道實(shí)例*讀取圖像read_image(Image,'D:/picture/ship.png')*計(jì)算圖像通道count_channels(Image,Num)*循環(huán)讀取每個(gè)通道的圖像forIndex:=1toNumby1*獲取多通道指定圖像access_channel(Image,channel1,Num)endfor*分解通道decompose3(Image,RedImage,GreenImage,BlueImage)*合并通道compose2(RedImage,GreenImage,MultiChannelImage)*向圖像附加通道append_channel(MultiChannelImage,BlueImage,ImageExtended)程序執(zhí)行結(jié)果如下圖所示。Region指圖像中的一塊區(qū)域,在HALCON中可以通過點(diǎn)擊工具欄中的“特征檢測”,如圖1示。在彈出的對話框中選擇region,可以看到region的不同特征屬性及相對應(yīng)的數(shù)值,如圖2所示。
(b)圖1圖2Region在HALCON中,將Image圖像轉(zhuǎn)換成Region區(qū)域有以下兩種方法:(1)可以利用閾值分割threshold算子進(jìn)行轉(zhuǎn)化。threshold(Image:Region:MinGray,MaxGray:)(2)使用灰度直方圖進(jìn)行轉(zhuǎn)化,步驟如下:在工具欄中點(diǎn)擊“打開灰度直方圖”,如下圖所示。接著打開使能輸出按鈕,最后拖動(dòng)圖3.18中的紅色豎線與綠色豎線,點(diǎn)擊插入代碼即可。Region(a)灰度直方圖圖標(biāo)(b)灰度直方圖界面閾值分割算子獲得區(qū)域?qū)嵗╝)原圖(b)閾值分割圖*閾值分割圖像獲得區(qū)域threshold(Aegypt1,Regions,23,160)dev_display(Regions)程序執(zhí)行結(jié)果如下圖所示:程序如下:*關(guān)閉窗口dev_close_window()*獲得圖像read_image(Aegypt1,'egypt1')*獲得圖像尺寸get_image_size(Aegypt1,Width,Height)*打開窗口dev_open_window(0,0,Width,Height,'black',WindowHandle)dev_display(Aegypt1)
XLD,亞像素精度輪廓,指圖像中某一塊區(qū)域的輪廓,在HALCON中查看XLD的特征步驟與查看Region特征的步驟相似。點(diǎn)擊工具欄中的“特征檢測”→“選擇XLD”,在圖形窗口選擇要查看的XLD特征,可看到XLD的特征屬性及其相對應(yīng)的數(shù)值,如下圖所示。XLDXLD特征檢測*關(guān)閉窗口dev_close_window()*獲取圖像read_image(Image,'fabrik')*打開適應(yīng)圖像大小的窗口dev_open_window_fit_image(Image,0,0,-1,-1,WindowHandle)*提取圖像得到亞像素邊緣edges_sub_pix(Image,Edges,'canny',2,12,22)*顯示邊緣dev_display(Edges)圖像轉(zhuǎn)XLD實(shí)例程序執(zhí)行結(jié)果如下圖所示:(a)圖像(b)XLD
Handle句柄標(biāo)識(shí)符,是拿來標(biāo)識(shí)對象或者項(xiàng)目的。從數(shù)據(jù)類型上來看,它只是一個(gè)32位(或64位)的無符號整數(shù)。Handle、TupleTuple可以理解為C語言中的數(shù)組,數(shù)組是編程語言中最常見的一種數(shù)據(jù)結(jié)構(gòu),可用于存儲(chǔ)多個(gè)數(shù)據(jù),每個(gè)數(shù)組元素存放一個(gè)數(shù)據(jù),通??赏ㄟ^數(shù)組元素的索引來訪問數(shù)組元素,包括為數(shù)組元素賦值和取出數(shù)組元素的值。C語言中數(shù)組的操作大都可以在Tuple中找到對應(yīng)的操作。
本章簡要介紹了HALCON的功能特點(diǎn)及其交互式的編程環(huán)境HDevelop的開發(fā)環(huán)境。并概述了利用HALCON進(jìn)行實(shí)時(shí)采集和離線采集的圖像采集過程。此外,介紹了圖像處理過程中的五種常用數(shù)據(jù)結(jié)構(gòu),分別是圖形Image、Region、XLD、Handle和Tuple,HALCON數(shù)據(jù)結(jié)構(gòu)是HALCON學(xué)習(xí)的基礎(chǔ),本章節(jié)對后續(xù)HALCON編程的學(xué)習(xí)具有重要意義。本章小結(jié)3.1熟悉HALCON的編程環(huán)境,并概述HALCON在圖像處理應(yīng)用上的特點(diǎn)。3.2使用HALCON采集助手讀取某一文件夾下的圖像。3.3將一張RGB圖像轉(zhuǎn)化為灰度圖像。3.4求Val_mean的值。Tuple:=[1,2,10]Tuple[3]=10T:=Tuple[1,3]Val_mean:=mean(T)習(xí)題謝謝聆聽第四章圖像預(yù)處理匯報(bào)人:陳西PPT工作室感興趣區(qū)域(ROI)圖像的變換與校正圖像增強(qiáng)小結(jié)目錄第一部分第二部分第三部分第四部分感興趣區(qū)域(ROI)第一部分ROI
感興趣區(qū)域,即ROI。在Halcon中,ROI是常用的一個(gè)算子,ROI就是從被處理的圖像以方框、圓、橢圓、不規(guī)則多邊形等方式勾勒出需要處理的區(qū)域,這個(gè)區(qū)域是你的圖像分析所關(guān)注的重點(diǎn)。使用ROI可以減少計(jì)算量,加快圖像處理速度,提高效率。步驟一:選擇關(guān)注區(qū)域在采集到原始圖像后,即可通過圖像處理得出特定區(qū)域,常規(guī)的有矩形、圓形以及橢圓。此時(shí),選擇的區(qū)域還不能稱為ROI,它還只是形狀或者說是像素范圍。步驟二:裁剪區(qū)域如果要將這選擇的區(qū)域變成獨(dú)立的圖像,還需要將其從原圖上裁剪出來。在Halcon中可以通過reduce_domain算子將其截取出來成為單獨(dú)的一幅圖片。
選擇ROI的步驟*關(guān)閉窗口dev_close_window()*讀取圖像read_image(Clip,'clip')*把一個(gè)圖像縮放到指定比例大小zoom_image_factor(Clip,ImageZoomed,0.5,0.5,'constant')*獲得圖像尺寸get_image_size(ImageZoomed,Width,Height)*新建顯示窗口,適應(yīng)圖像尺寸dev_open_window(0,0,Width,Height,'black',WindowID)dev_display(ImageZoomed)*輸入矩形長軸針對水平方向的角度phi:=1.91*輸入矩形中心點(diǎn)的y值坐標(biāo)、x值坐標(biāo)創(chuàng)建RIO實(shí)例(a)(b)Row:=134Column:=118*選擇ROIgen_rectangle2(Rectangle,Row,Column,phi,19,55)*從原圖中分割出ROIreduce_domain(ImageZoomed,Rectangle,ImageReduced)*顯示分割后的ROI圖像dev_display(ImageReduced)程序執(zhí)行結(jié)果如圖所示:圖像的變換與校正第二部分
圖像的變換與校正
由于多種因素的影響,應(yīng)用中實(shí)際獲得的畫面可能會(huì)與想象中有所差異,因此需要進(jìn)行調(diào)整、把畫面復(fù)原。圖像的變換與校正是指用數(shù)學(xué)建模方法來描述圖像位置、大小、形狀等已知條件,利用這些條件進(jìn)行確定模型參數(shù),根據(jù)模型對圖像進(jìn)行幾何校正。
在Halcon中,用hom_mat2d_translate算子表示平移。
hom_mat2d_translate(::HomMat2D,Tx,Ty:HomMat2DTranslate)圖像的平移、旋轉(zhuǎn)和縮放1、圖像的平移
圖像的平移變換就是將圖像中的所有像素點(diǎn)按照要求的偏移量進(jìn)行垂直、水平移動(dòng)。平移變換只是改變了原有目標(biāo)在畫面上的位置,而圖像的內(nèi)容則不發(fā)生變化。
將一個(gè)點(diǎn)移動(dòng)
個(gè)向量,相當(dāng)于在
坐標(biāo)的左邊乘以一個(gè)平移矩陣T。設(shè)平移后的點(diǎn)為
,如下面公式所示:
在Halcon中用hom_mat2d_rotate算子表示平移。hom_mat2d_rotate(::HomMat2D,Phi,Px,Py:HomMat2DRotate)圖像的平移、旋轉(zhuǎn)和縮放2、圖像的旋轉(zhuǎn)
圖像的旋轉(zhuǎn)是指以圖像中的某一點(diǎn)為原點(diǎn)以逆時(shí)針或順時(shí)針方向旋轉(zhuǎn)一定的角度,通常是以圖像的中心為原點(diǎn),將圖像上的所有像素都旋轉(zhuǎn)一個(gè)相同的角度。旋轉(zhuǎn)后,圖像的大小一般會(huì)改變。如果將一個(gè)一個(gè)點(diǎn)在二維平面上繞坐標(biāo)原點(diǎn)旋轉(zhuǎn)角度
,相當(dāng)于在坐標(biāo)
的左邊乘以一個(gè)旋轉(zhuǎn)矩陣R。設(shè)旋轉(zhuǎn)后的點(diǎn)為
,如下面公式所示:
在Halcon中用hom_mat2d_scale算子表示旋轉(zhuǎn)。hom_mat2d_scale(::HomMat2D,Sx,Sy,Px,Py:HomMat2DScale)圖像的平移、旋轉(zhuǎn)和縮放3、圖像的縮放
假設(shè)一個(gè)點(diǎn)在二維平面上,沿x軸方向放大
倍,沿y軸方向放大
倍,那么變化后該點(diǎn)的坐標(biāo)記為
,如下面公式所示:
把平移、旋轉(zhuǎn)和縮放結(jié)合起來,可以在Halcon中使用仿射變換的相關(guān)算子。在仿射變換前,需要先確定仿射變換矩陣,步驟如下:(1)創(chuàng)建一個(gè)仿射變換單位矩陣,可以用hom_mat2d_identity算子。hom_mat2d_identity(:::HomMat2DIdentity)(2)設(shè)置變換的參數(shù),可以設(shè)置平移、縮放以及旋轉(zhuǎn)參數(shù)。(3)進(jìn)行仿射變換,可以用affine_trans_image算子。affine_trans_image(Image:ImageAffinTrans:HomMat2D,Interpolation,AdaptlmageSize:)圖像的仿射變換
*關(guān)閉窗口,讀取圖像
dev_close_window()read_image(Image,'D:triangle.png')*獲得圖像尺寸,打開窗口,讀取圖片
get_image_size(Image,Width1,Height1)dev_open_window(0,0,Width1,Height1,'black',WindowID)dev_display(Image)*轉(zhuǎn)灰度圖像
rgb1_to_gray(Image,GrayImage)*圖像二值化
threshold(GrayImage,Regions,0,212)*獲取圖像面積,中心點(diǎn)坐標(biāo)
area_center(Regions,Area1,Row1,Column1)圖像的仿射變換實(shí)例*定義仿射變換矩陣hom_mat2d_identity(HomMat2DIdentity)*設(shè)置平移矩陣至中心點(diǎn)坐標(biāo)hom_mat2d_translate(HomMat2DIdentity,-Row1,-Column1,HomMat2DTranslate)hom_mat2d_translate(HomMat2DTranslate,Height1/2,Width1/2,HomMat2DTranslate1)*通過仿射變換將三角形移至中心點(diǎn)位置并顯示圖像affine_trans_image(GrayImage,ImageAffinTrans,HomMat2DTranslate1,'constant','false')dev_display(ImageAffinTrans)
*設(shè)置旋轉(zhuǎn)矩陣,3.14/2表示旋轉(zhuǎn)角度,正值代表逆時(shí)針旋轉(zhuǎn),(Height1/2,Width1/2)為基準(zhǔn)點(diǎn)
hom_mat2d_rotate(HomMat2DIdentity,3.14/2,Height1/2,Width1/2,HomMat2DRotate)*通過仿射變換將三角形旋轉(zhuǎn)90°并顯示圖片
affine_trans_image(ImageAffinTrans,ImageAffinTrans1,HomMat2DRotate,'constant','false')dev_display(ImageAffinTrans1)*設(shè)置縮放矩陣,縮放倍數(shù)為1.5倍hom_mat2d_scale(HomMat2DIdentity,1.5,1.5,Height1/2,Width1/2,HomMat2DScale)圖像的仿射變換實(shí)例程序執(zhí)行結(jié)果如圖所示:(a)(b)(c)(d)*通過仿射變換將三角形放大1.5倍并顯示affine_trans_image(ImageAffinTrans1,ImageAffinTrans2,HomMat2DScale,'constant','false')dev_display(ImageAffinTrans2)仿射變換幾乎能校正物體所有可能發(fā)生的與位姿相關(guān)的變化,但并不能應(yīng)付所有情況。投影變換包括的情況很多,如對邊不再平行,或者發(fā)生了透視畸變等,這時(shí)可以使用投影變換使其恢復(fù)原狀。其步驟與仿射變換類似,首先計(jì)算投影變換矩陣,然后計(jì)算投影變換參數(shù),最后將投影變換矩陣映射到對象上。圖像的投影變換投影變換可以用hom_vector_to_proj_hom_mat2d算子進(jìn)行。hom_vector_to_proj_hom_mat2d(::Px,Py,Pw,Qx,Qy,Qw,Method:HomMat2D)
*更新、關(guān)閉窗口dev_update_off()dev_close_window()*獲得圖像、打開適合圖片的窗口read_image(Image_slanted.datacode/ecc200/ecc200_to_preprocess_001')dev_open_window_fit_image(Image_slanted,0,0,-1,-1,WindowHandle)*設(shè)置設(shè)置輸出顏色為'白色'dev_set_color('white')定義輸出線寬為3dev_set_line_width(3)stop()圖像的投影變換實(shí)例*定義坐標(biāo)變量XCoordCorners:=[130,225,290,63]YCoordCorners:=[101,96,289,269]*為每個(gè)輸入點(diǎn)生成十字形狀的XLD輪廓,6代表組成十字橫線的長度,0.78代表角度gen_cross_contour_xld(Crosses,XCoordCorners,YCoordCorners,6,0.78)dev_display(Image_slanted)dev_display(Crosses)stop()*生成投影變換需要的變換矩陣,這里是齊次變換矩陣
hom_vector_to_proj_hom_mat2d(XCoordCorners,YCoordCorners,[1,1,1.1],[70,270,270,70],[100,100,300,300],[1,1,1,1],'normalized_dlt',HomMat2D)*在待處理的圖像上應(yīng)用投影變換矩陣,并將結(jié)果輸出到Image_rectified中projective_trans_image(Image_slanted,lmage_rectified,HomMat2D,'bilinear','false','false')*為上述2D數(shù)據(jù)代碼創(chuàng)建模型,DataCodeHandle為數(shù)據(jù)代碼模型create_data_code_2d_model('DataMatrixECC200’,[],[],DataCodeHandle)*檢測輸入圖像中的2D數(shù)據(jù)模型代碼,并讀取編碼圖像的投影變換實(shí)例數(shù)據(jù),SymbolXLDs是成功解碼后的符號生成的XLD輪廓find_data_code_2d(Image_rectified,SymbolXLDs,DataCodeHandle,[],[],ResultHandles,DecodedDataStrings)*顯示dev_display(Image_slanted)dev_display(Image_rectified)devdisplay(SymbolXLDs)*在圖形窗口編輯并顯示文本disp_message(WindowHandle,'Decodingsuccessful','window',12,12,'black','true')*設(shè)置當(dāng)前窗口的字體屬性圖像的投影變換實(shí)例程序執(zhí)行結(jié)果如圖所示:(a)(b)set_display_font(WindowHandle,12,'mono','true','false')*在圖形窗口編輯并顯示文本disp_message(WindowHandle,DecodedDataStrings,'window',350,70,'forestgreen','true')*創(chuàng)建二維碼模型clear_data_code_2d_model(DataCodeHandle)
圖像增強(qiáng)第三部分圖像增強(qiáng)
圖像增強(qiáng)是有目的地強(qiáng)調(diào)圖像的整體或局部特性,將原來不清晰的圖像變得清晰或強(qiáng)調(diào)某些感興趣的特征,擴(kuò)大圖像中不同物體特征之間的差別,抑制不感興趣的特征,改善圖像質(zhì)量、豐富信息量,加強(qiáng)圖像判讀和識(shí)別效果,滿足某些特殊分析的需要。像增強(qiáng)技術(shù)基本可以分為兩大類,一類是空間域處理法,一類是頻域處理法。空間域處理法是指在空間域中,直接對圖像的像素灰度值進(jìn)行增強(qiáng)處理。頻域處理法的基礎(chǔ)是卷積定理,它采用修改圖像傅立葉變換的方法實(shí)現(xiàn)對信號的增強(qiáng)。常用的方法包括低通濾波、髙通濾波以及同態(tài)濾波等。圖像增強(qiáng)所包含的主要內(nèi)容右圖所示圖像增強(qiáng)的基本分類在圖像處理中,點(diǎn)運(yùn)算是圖像數(shù)字化軟件和圖像顯示軟件的重要組成部分。對于一幅輸入圖像,經(jīng)過點(diǎn)運(yùn)算將產(chǎn)生一幅每個(gè)像素的灰度值僅取決于輸入圖像中相對應(yīng)像素灰度值的輸出圖像。圖像增強(qiáng)的點(diǎn)運(yùn)算這種運(yùn)算具有兩個(gè)特點(diǎn):①根據(jù)某種預(yù)先設(shè)置的規(guī)則,將輸入圖像各個(gè)像素本身的灰度(和該像素鄰域內(nèi)其他像素的灰度無關(guān))逐一轉(zhuǎn)換成輸出圖像對應(yīng)像素的灰度值;②點(diǎn)運(yùn)算不會(huì)改變像素的空間位置?;叶茸儞Q(有時(shí)又被稱為圖像的對比度增強(qiáng)或?qū)Ρ榷壤欤?,是指根?jù)某種目標(biāo)條件按一定變換關(guān)系逐點(diǎn)改變源圖像中每一個(gè)像素灰度值的方法。調(diào)整圖像灰度值的其中一個(gè)原因是由于圖像的對比度太弱,灰度變換可使圖像動(dòng)態(tài)范圍增大,對比度得到擴(kuò)展,顯示效果更加清晰。灰度變換是圖像增強(qiáng)處理技術(shù)中的一種非?;A(chǔ)、直接的空間域圖像處理方法。常用的方法有三種:線性灰度變換、分段線性灰度變換和非線性灰度變換?;叶茸儞Q假定原圖像的灰度范圍為[a,b],線性變換后的圖像的灰度范圍擴(kuò)展至[c,d],如右圖所示。則與關(guān)系表達(dá)式為:
線性變換①當(dāng)k>1時(shí),則會(huì)使圖像對比度變大,灰度取值的動(dòng)態(tài)范圍展寬;②當(dāng)k=1時(shí),則灰度取值區(qū)間會(huì)隨著a和c的大小上下平移,但灰度動(dòng)態(tài)范圍不變;③當(dāng)0<k<1時(shí),則變換后會(huì)使圖像對比度變小,灰度取值的動(dòng)態(tài)范圍會(huì)變窄;④當(dāng)k<0,則變換后圖像的灰度值會(huì)發(fā)生反轉(zhuǎn),即圖像中亮的變暗,暗的變亮。線性灰度變換將圖像灰度區(qū)間分成兩段乃至多段分別作線性變換。常用的三段線性變換如右圖所示。其數(shù)學(xué)表達(dá)式如下:
通過調(diào)整折線拐點(diǎn)的位置及控制分段直線的斜率,即可對任一灰度區(qū)間進(jìn)行擴(kuò)展或壓縮。分段線性灰度變換分段線性灰度變換單純的線性變換對圖像細(xì)節(jié)的增強(qiáng)較為有限,如果只想仔細(xì)地分析圖像的某一部分,也就是對圖像的那部分增強(qiáng),我們可以結(jié)合非線性變換技術(shù)來進(jìn)行解決,可以使得壓縮像素少的部分,擴(kuò)展像素?cái)?shù)集中的部分。典型的非線性變換函數(shù)有指數(shù)函數(shù)、對數(shù)函數(shù)、閾值函數(shù)、多值量化函數(shù)等。非線性灰度變換
①圖像取反算子,適用于增強(qiáng)嵌入在一幅圖像的按區(qū)域中的白色或灰色細(xì)節(jié),特別是黑色面積占主導(dǎo)地位時(shí)。invert_image(Image:ImageInvert::)
②增加圖像對比度算子emphasize(Image:ImageEmphasize:MaskWidth,MaskHeight,Factor:)
③縮放圖像的灰度值scale_image(Image:ImageScaled:Mult,Add:)
在Halcon中的灰度變換算子
程序如下:*關(guān)閉窗口
dev_close_window()*獲取圖像
read_image(Image1,'C:/Users/92011/Pictures/1.jpg')*獲取圖像尺寸
get_image_size(Image1,Width,Height)*打開大小適應(yīng)的窗口
dev_open_window(0,0,Width,Height,'black',WindowHandle)*顯示圖像
dev_display(Image1)*圖像灰度化
rgb1_to_gray(Image1,GrayImage)*圖像取反
invert_image(GrayImage,ImageInvert)*增強(qiáng)對比度
emphasize(GrayImage,ImageEmphasize,Width,Height,1)*增加亮度
scale_image(GrayImage,ImageScaled,1,100)*分別顯示
ImageInvert、ImageEmphasize、ImageScaled
dev_display(ImageInvert)
dev_display(ImageEmphasize)
dev_display(ImageScaled)對圖像進(jìn)行線性灰度變換實(shí)例程序執(zhí)行結(jié)果如圖所示:(a)灰度化圖像(b)取反圖像(c)增強(qiáng)對比度(d)增強(qiáng)亮度在數(shù)字圖像處理中,直方圖是一個(gè)簡單有用的工具,它反映了數(shù)字圖像中每一灰度級與其出現(xiàn)像素頻率間的統(tǒng)計(jì)關(guān)系,并且能描述圖像的概貌,例如圖像的灰度范圍、灰度級的分布等,為進(jìn)一歩對圖像進(jìn)行處理提供了重要依據(jù)。直方圖修正法通常有直方圖均衡化及直方圖規(guī)定化兩類:(1)直方圖均衡化;(2)直方圖規(guī)定化。直方圖修正法直方圖均衡化就是通過對原圖像進(jìn)行某種變換,使原圖像的灰度直方圖修正為均勻分布的直方圖的一種方法。通過直方圖均衡化,可以使原圖中具有相近灰度值且占有大量像素點(diǎn)的區(qū)域的灰度范圍變寬,增強(qiáng)圖像整體對比效果。如右圖所示:直方圖均衡化(a)原始圖像
(b)直方圖均衡化后的圖像
直方圖均衡化前后對比圖
程序如下:*關(guān)閉窗口
dev_close_window()*獲取圖像
read_image(Image,'C:/Pictures.jpg')*獲取圖像大小
get_image_size(Image,Width,
Height)*打開與圖像大小適應(yīng)的窗口
dev_open_window(0,0,Width,
Height,'black',WindowHandle1)*圖像灰度化
rgb1_to_gray(Image,GrayImage)*直方圖均衡化
equ_histo_image(GrayImage,ImageEquHisto)*顯示均衡化后結(jié)果圖像
dev_display(ImageEquHisto)對圖像進(jìn)行直方圖均衡化實(shí)例程序執(zhí)行結(jié)果如圖所示:(a)灰度化圖像(b)直方圖均衡化后圖像直方圖均衡化處理方法是行之有效的增強(qiáng)方法之一,它把原始直方圖的累積分布函數(shù)作為變換函數(shù),從而產(chǎn)生近似均勻的直方圖。但在某些情況下,并不一定需要具有均勻直方圖的圖像,而是希望有針對性地增強(qiáng)某個(gè)灰度范圍內(nèi)的圖像,直方圖規(guī)定化方法就是針對上述思想提出來的。直方圖規(guī)定化是使原圖像灰度直方圖變成規(guī)定形狀的直方圖而對圖像作修正的增強(qiáng)方法,以滿足特定的效果。直方圖均衡化處理只是直方圖規(guī)定化的一個(gè)特例。直方圖規(guī)定化對比度增強(qiáng)除了灰度變換與直方圖修正法外,還可以用Wallis和Jong-SenLee提出的局部均值和方差進(jìn)行對比度增強(qiáng)。若圖像中像素
的灰度值用
表示,所謂局部均值和方差是指以
像素為中心
鄰域的灰度的均值
和。如下面式子所示:
局部統(tǒng)計(jì)法圖像的平滑處理
為了抑制噪聲,使圖像亮度趨于平緩的處理方法就是圖像平滑。圖像平滑是指用于突出圖像的寬大區(qū)域、低頻成分、主干部分或抑制圖像噪聲和干擾高頻成分的圖像處理方法,目的是使圖像亮度平緩漸變,減小突變梯度,改善圖像質(zhì)量。圖像平滑實(shí)際上是低通濾波,但是在平滑過程中會(huì)導(dǎo)致圖像邊緣模糊化。圖像噪聲是指存在于圖像數(shù)據(jù)中的不必要的或多余的干擾信息。噪聲的存在嚴(yán)重影響了遙感圖像的質(zhì)量,因此在圖像增強(qiáng)處理和分類處理之前,必須予以糾正。圖像系統(tǒng)中的噪聲來自多方面,經(jīng)常影響圖像質(zhì)量的噪聲源主要有以下幾類:(1)由光和電的基本性質(zhì)所引起的噪聲。(2)電器的機(jī)械運(yùn)動(dòng)產(chǎn)生的噪聲。如各種接頭因抖動(dòng)引起的電流變化所產(chǎn)生的噪聲,磁頭、磁帶抖動(dòng)引起的抖動(dòng)噪聲等。(3)元器件材料本身引起的噪聲。如磁帶、磁盤表面缺陷所產(chǎn)生的噪聲。(4)系統(tǒng)內(nèi)部設(shè)備電路所引起的噪聲。如電源系統(tǒng)引入的交流噪聲和偏轉(zhuǎn)系統(tǒng)引起的噪聲等。圖像噪聲鄰域平均法(也稱為均值濾波器)是簡單的空域處理方法,與點(diǎn)運(yùn)算的運(yùn)算結(jié)果只跟該點(diǎn)相關(guān)不同,鄰域運(yùn)算運(yùn)算的結(jié)果不僅和本像素點(diǎn)灰度值有關(guān),而且和其他周圍的像素點(diǎn)的灰度值也有關(guān)聯(lián)。其核心思想是用幾個(gè)像素灰度的平均值來代替每個(gè)像素的灰度。鄰域平均法假設(shè)一幅圖像為陣列,對于鄰域平均后的圖像,它的每個(gè)像素的灰度值由包含點(diǎn)鄰域的幾個(gè)像素的灰度級的平均值所決定,因此有:
式中:S是以點(diǎn)鄰域中心的坐標(biāo)的集合,但其中不包括,M是S內(nèi)坐標(biāo)點(diǎn)的總數(shù)。常用的鄰域?yàn)?-鄰域點(diǎn)和8-鄰域點(diǎn)。如圖所示:2·直圖修正法
(a)4-鄰域(b)8-鄰域鄰域平均法在Halcon中均值濾波可以用mean_image算子。mean_image(Image:ImageMean:MaskWidth,MaskHeight:)
圖像鄰域平均法算法簡單,計(jì)算速度快但它的主要缺點(diǎn)是在降低噪聲的同時(shí)使圖像產(chǎn)生模糊,特別在邊緣和細(xì)節(jié)處。圖像所用的鄰域半徑越大,則圖像的模糊程度越大。2·直圖修正法鄰域平均法
均值濾波實(shí)例程序如下:*讀取圖像
read_image(Image,'D:/panda.jpg')*關(guān)閉窗口
dev_close_window()*重新打開窗口
dev_open_window(0,0,512,512,'black',WindowHandle)*顯示圖像,將圖像灰度化dev_display(Image)
rgb1_to_gray(Image,GrayImage)*添加高斯噪聲
gauss_distribution(20,Distribution)
add_noise_distribution(GrayImage,ImageNoise,Distribution)*均值濾波處理
mean_image(ImageNoise,ImageMean,5,5)*顯示圖像
dev_display(ImageMean)圖像的平滑處理程序執(zhí)行結(jié)果如圖所示:(a)帶有高斯噪聲圖片(b)均值濾波后圖片中值濾波是對一個(gè)滑動(dòng)窗口內(nèi)的像素的灰度值進(jìn)行排序,用其中值代替窗口中心像素的灰度值的濾波方法。它是一種非線性信號平滑處理技術(shù),能有效消除孤立點(diǎn)和線段的干擾,可以減弱或消除傅立葉空間的高頻分量,但也影響低頻分量。高頻分量往往是圖像中區(qū)域邊緣灰度值急劇變化的部分,該濾波可將這些分量消除,從而達(dá)到使圖像平滑的效果。中值濾波法設(shè)一維的數(shù)字序列取窗口長度為n(奇數(shù)),若要對此一維序列進(jìn)行中值濾波,就是每次從序列中取出n個(gè)數(shù),其中為窗口的中心點(diǎn)值,再窗口內(nèi)的n個(gè)點(diǎn)的值按其數(shù)值大小排序,取這組數(shù)據(jù)的中值作為濾波后的輸出值。一維中值濾波的數(shù)學(xué)表達(dá)式為
一維中值濾波的概念很容易推廣到二維。一般來說,二維中值濾波器比一維濾波器更能抑制噪聲。二維模板通常為3×3、5×5的區(qū)域,也可以是不同的形狀,如線形、圓形、十字形、方形等,如右圖所示。2·直圖修正法(a)線形
中值濾波法(b)十字形
(c)方形
常用的二維中值濾波模板
程序如下:*讀取圖像
read_image(Image,'D:/panda.jpg')*關(guān)閉窗口,重新打開窗口
dev_close_window()
dev_open_window(0,0,512,512,'black',WindowHandle)*顯示圖片
dev_display(Image)*圖像灰度化
rgb1_to_gray(Image,GrayImage)*添加椒鹽噪聲
sp_distribution(3,3,Distribution)
add_noise_distribution(GrayImage,ImageNoise,Distribution)*中值濾波
median_image(ImageNoise,ImageMedian,‘circle’,3,‘mirrored’)*顯示圖像
dev_display(ImageMedian)均值濾波實(shí)例程序執(zhí)行結(jié)果如圖所示:(a)帶有椒鹽噪聲圖片
(b)中值濾波后圖片低通濾波法是一種頻域處理。在分析圖像信號的頻率特性時(shí),一幅圖像中灰度均勻的平滑區(qū)域?qū)?yīng)著傅立葉變換中的低頻成分,灰度變化頻繁的邊緣及細(xì)節(jié)對應(yīng)著傅立葉變換中的高頻成分。用濾波的方法適當(dāng)?shù)貙D像變換域中的高頻成分過濾掉,便可以得到圖像的平滑結(jié)果。其工作原理可表示為:
通濾波平滑處理流程如圖所示。低通濾波法低通濾波平滑處理流程圖Halcon中常用的低通濾波處理算子:①生成理想的低通濾波圖像可用gen_lowpass算子。gen_lowpass(:ImageLowpass:Frequency,Norm,Mode,Width,Height:)②進(jìn)行快速傅立葉變換可以用fft_generic算子。fft_generic(Image:ImageFFT:Direction,Exponent,Norm,Mode,ResultType:)③在頻域里卷積圖像。convol_fft(ImageFFT,ImageFilter:ImageConvol::)
2·直圖修正法低通濾波法
對圖像進(jìn)行低通濾波處理實(shí)例程序如下:*讀取帶有椒鹽噪聲圖像
read_image(ImageNoise,'D:/panda.jpg')*獲得圖像尺寸
get_image_size(ImageNoise,Width,Height)*關(guān)閉窗口
dev_close_window()*打開適應(yīng)圖像大小的窗口
dev_open_window(0,0,512,512,'black',WindowHandle)*顯示圖像
dev_display(ImageNoise)*圖像轉(zhuǎn)灰度化
rgb1_to_gray(Image,GrayImage)*獲得一個(gè)低通濾波模型
gen_lowpass(ImageLowpass,0.1,'none','dc_center',Width,Height)*對噪聲圖像進(jìn)行傅里葉變換,得到頻率圖像
fft_generic(ImageNoise,ImageFFT,'to_freq',-1,'sqrt','dc_center','complex')*對頻率圖像進(jìn)行低通濾波
convol_fft(ImageFFT,ImageLowpass,ImageConvol)*對頻率圖像進(jìn)行傅里葉變換
fft_generic(ImageConvol,ImageFFT1,'from_freq',1,'sqrt','dc_center','complex')
dump_window(WindowHandle,'postscript','halcon_dump')圖像的平滑處理程序執(zhí)行結(jié)果如圖所示:(a)噪聲圖像(b)低通濾波后圖像如果一幅圖像包含有加性噪聲,這些噪聲對于坐標(biāo)點(diǎn)是不相關(guān)且平均值為零,在這種情況下就可以采用多圖像平均法來進(jìn)行去噪處理。多圖像平均法的基本思想是在對獲取的同一物景的若干幅圖像相加取平均值來消除噪聲。設(shè)在相同條件下,獲取的同一目標(biāo)物的M幅圖像可表示為:
則多幅圖像平均后的輸出圖像可表示為
多圖像平均法圖像的銳化處理
由于成像系統(tǒng)聚焦不好或者信道的帶寬過窄,因此在圖像形成和傳輸過程中,會(huì)使圖像目標(biāo)物廓變模糊、細(xì)節(jié)不清晰。同時(shí),圖像的平滑往往也使圖像中的邊界、輪廓變得模糊。為了減少這類不利效果的影響,這就需要利用圖像銳化技術(shù)來實(shí)現(xiàn)圖像增強(qiáng),使圖像的邊緣變的清晰。Sobel算子結(jié)合了高斯平滑和微分求導(dǎo),使用卷積核對圖像中的每個(gè)像素點(diǎn)做卷積和運(yùn)算,然后采用合適的閾值提取邊緣。Sobel算子有兩個(gè)卷積核,分別對應(yīng)x和y兩個(gè)方向。采用Sobel算子可以避免梯度微分銳化時(shí)圖像中噪聲、條紋等干擾信息的增強(qiáng)。它的基本模板如圖所示。Sobel算子(a)對水平邊緣響應(yīng)最大(b)對垂直邊緣響應(yīng)最大
程序如下:*讀取圖像
read_image(Image,'fabrik')*邊緣檢測
sobel_amp(Image,EdgeAmplitude,'sum_abs',3)*閾值分割
threshold(EdgeAmplitude,Region,10,255)*提取邊緣框架
skeleton(Region,Skeleton)*顯示圖片
dev_display(Image)*設(shè)置輸出顏色為紅色
dev_set_color('red')*顯示邊緣框架
dev_display(Skeleton)運(yùn)用Sobel算子實(shí)例程序執(zhí)行結(jié)果如圖所示:(a)原圖
(b)邊緣檢測結(jié)果圖
(c)邊緣框架圖
在圖像的邊緣區(qū)域,像素值會(huì)發(fā)生比較大的變化,對這些像素求導(dǎo)會(huì)出現(xiàn)極值,在這些極值位置,其二階導(dǎo)數(shù)為0,所以也可以用二階導(dǎo)數(shù)來檢測圖像邊緣。拉普拉斯算子就是其中一個(gè)線性二階微分算子,表達(dá)式為:
拉普拉斯增強(qiáng)算子
對圖像程序如下:*關(guān)閉窗口
dev_close_window()*獲取圖像
read_image(Image,'mreut')*獲取圖像尺寸
get_image_size(Image,Width,Height)*打開適應(yīng)圖片大小的窗口
dev_open_window(0,0,Width,Height,'black',WindowHandle)*顯示圖片
dev_display(Image)*對圖像進(jìn)行拉普拉斯算子處理laplace(Image,ImageLaplace_3,'signed',3,'n_8_isotropic')*顯示處理后的圖像
dev_display(ImageLaplace_3)采用拉普拉斯算子實(shí)例程序執(zhí)行結(jié)果如圖所示:(a)原始圖像(b)拉普拉斯銳化后圖像圖像中的邊緣及急劇變化部分與圖像頻譜的高頻分量相對應(yīng),因此利用高通濾波器衰減圖像信號中的低頻分量時(shí)就會(huì)相對強(qiáng)調(diào)其高頻分量,從而使圖像的邊緣及急劇變化部分變得清楚,實(shí)現(xiàn)圖像的銳化。高通濾波就是在空間域用高通濾波算子和圖像卷積來增強(qiáng)邊緣。常見的
高通卷積模板如下:
髙通濾波法
對圖像進(jìn)行高通濾波處理實(shí)例程序如下:*關(guān)閉窗口
dev_close_window()*讀取圖像
read_image(Image,'D:/picture.png')*圖像灰度化
rgb1_to_gray(Image,GrayImage)*獲取圖像大小
get_image_size(GrayImage,Width,Height)*打開圖像適應(yīng)大小窗口
dev_open_window(0,0,Width,Height,'black',WindowHandle)*得到高通濾波模型
gen_highpass(ImageHighpass,0.1,'n','dc_center',Width,Height)*對圖像進(jìn)行傅里葉變換
fft_generic(GrayImage,ImageFFT2,'to_freq',-1,'none','dc_center','complex')*對頻率圖像進(jìn)行高通濾波convol_fft(ImageFFT2,ImageHighpass,ImageConvol2)*對得到的頻率圖像進(jìn)行傅里葉反變換fft_generic(ImageConvol2,ImageResult2,'from_freq',1,'none','dc_center','byte')*顯示圖像
dev_display(ImageResult2)圖像的銳化處理程序執(zhí)行結(jié)果如圖所示:(a)原始圖像
(b)高通濾波銳化后圖像
同態(tài)濾波是把圖像的照明反射模型作為頻域處理的基礎(chǔ),將亮度范圍壓縮和對比度增強(qiáng)的頻域方法。一幅圖像
可以用它的照明分量
及反射分量
來表示,即:同態(tài)濾波增強(qiáng)用同態(tài)濾波
對進(jìn)行濾波的流程如圖所示:小結(jié)第四部分ROI
在本章節(jié)中,我們主要介紹了如何對圖像進(jìn)行預(yù)處理,包括感興趣區(qū)域(ROI)的截取,圖像的變換與校正以及增強(qiáng)圖像的具體實(shí)現(xiàn)方法。(1)ROI的截取,主要分為兩步:①選擇關(guān)注區(qū)域,②裁剪區(qū)域;(2)圖像的變換與校正。(3)增強(qiáng)圖像的具體實(shí)現(xiàn)。6.1什么是圖像增強(qiáng)?它包含哪些內(nèi)容?6.2圖像濾波的主要目的是什么?主要方法有哪些?6.3什么是圖像平滑?試簡述均值濾波和中值濾波的區(qū)別。6.4什么是圖像銳化?圖像銳化有幾種方法?習(xí)題THANKSFORLISTENIGN謝謝聆聽第五章圖像分割匯報(bào)人:陳西PPT工作室閾值分割區(qū)域分割邊緣檢測Hough變換目錄第一部分第二部分第三部分第四部分分水嶺算法第五部分閾值分割第一部分閾值分割
閾值分割法是一種基于區(qū)域的圖像分割技術(shù),它不僅可以極大的壓縮數(shù)據(jù)量,而且也大大簡化了分析和處理步驟。閾值分割法是一種傳統(tǒng)的最常用的圖像分割方法,特別適用于目標(biāo)和背景占據(jù)不同灰度級范圍的圖像。圖像的閾值分割是一種按圖像像素灰度幅度進(jìn)行分割的方法,把圖像的灰度分成不同的等級,然后用設(shè)置灰度門限(閾值)的方法確定有意義的區(qū)域或要分割物體的邊界。閾值分割操作被定義為:
因此,閾值分割將圖像內(nèi)灰度值處于某一指定灰度值范圍內(nèi)全部點(diǎn)選到輸出區(qū)域S中。如果光照能保持恒定,閾值和能在系統(tǒng)設(shè)置時(shí)被選定且永遠(yuǎn)不用被調(diào)整。
閾值分割法閾值分割法對于只有背景和目標(biāo)兩類對象的灰度圖像來說,閾值選取過高,容易把大量的目標(biāo)誤判為背景;閾值選取過低,又容易把大量的背景誤判為目標(biāo)。一般來說,閾值分割可以分成以下三步:(1)確定閾值;(2)將閾值與像素灰度值進(jìn)行比較;(3)把像素分類。閾值分割的優(yōu)點(diǎn)是計(jì)算簡單、運(yùn)算效率較高、速度快。閾值分割的幾個(gè)難點(diǎn)是:①在圖像分割之前,無法確定圖像分割生成區(qū)域的數(shù)目;②閾值的確定,因?yàn)殚撝档倪x擇直接影響分割的精度及分割后的圖像進(jìn)行描述分析的正確性。如果圖像由暗色背景上得較亮物體組成,以這樣組成方式的圖像的灰度直方圖具有明顯谷底,從背景中提取物體的一種很明顯的方法就是選擇兩峰之間的谷底對應(yīng)的灰度值T作為閾值進(jìn)行圖像分割。T值的選取如圖所示:根據(jù)直方圖谷底確定閾值法根據(jù)直方圖谷底確定閾值
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鼻咽癌相關(guān)知識(shí)及護(hù)理常規(guī)
- 2024年CFA考試指導(dǎo)手冊試題及答案
- 餐飲公司管理人員培訓(xùn)
- 備戰(zhàn)2024年特許金融分析師的試題及答案技巧
- 成功的秘訣:CFA試題及答案
- 八年級上冊《用“SAS”判定三角形全等》課件與練習(xí)
- 第三章 5 多普勒效應(yīng)-2025版高二物理選擇性必修一
- 中班預(yù)防流感
- 國內(nèi)英語教師轉(zhuǎn)型為國際漢語教師培訓(xùn)方案研究
- 黃金提純技術(shù)課件
- 青海省全省市縣鄉(xiāng)鎮(zhèn)衛(wèi)生院街道社區(qū)衛(wèi)生服務(wù)中心基本公共衛(wèi)生服務(wù)醫(yī)療機(jī)構(gòu)信息名單目錄450家
- 國學(xué)智慧爾雅課期末考試題庫答案2022
- 企業(yè)安全生產(chǎn)檢查記錄表90292
- ( SiO2+Al2O3+Fe2O3) 總含量試驗(yàn)檢測記錄表
- 2022年自考《管理學(xué)原理》習(xí)題庫及答案
- DB11-T 1834-2021城市道路工程施工技術(shù)規(guī)程
- 大贏CNC48操作手冊
- DB23∕T 1019-2020 黑龍江省建筑工程資料管理標(biāo)準(zhǔn)
- 除顫儀的使用-PPT課件
- 2020 新ACLS-PCSA課前自我測試-翻譯版玉二醫(yī)【復(fù)制】附有答案
- 彩鋼棚專項(xiàng)施工措施方案
評論
0/150
提交評論