機(jī)器視覺(jué)算法基礎(chǔ)_第1頁(yè)
機(jī)器視覺(jué)算法基礎(chǔ)_第2頁(yè)
機(jī)器視覺(jué)算法基礎(chǔ)_第3頁(yè)
機(jī)器視覺(jué)算法基礎(chǔ)_第4頁(yè)
機(jī)器視覺(jué)算法基礎(chǔ)_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

歡迎閱讀本文檔,希望本文檔能對(duì)您有所幫助!歡迎閱讀本文檔,希望本文檔能對(duì)您有所幫助!歡迎閱讀本文檔,希望本文檔能對(duì)您有所幫助!歡迎閱讀本文檔,希望本文檔能對(duì)您有所幫助!歡迎閱讀本文檔,希望本文檔能對(duì)您有所幫助!歡迎閱讀本文檔,希望本文檔能對(duì)您有所幫助!機(jī)器視覺(jué)基于visualC++的數(shù)字圖像處理摘要機(jī)器視覺(jué)就是用機(jī)器代替人眼來(lái)做測(cè)量和判斷。它通過(guò)圖像攝取裝置將被攝取目標(biāo)轉(zhuǎn)換成圖像信號(hào),傳送給專(zhuān)用的圖像處理系統(tǒng),根據(jù)像素分布和亮度、顏色等信息,轉(zhuǎn)變成數(shù)字化信號(hào);圖像系統(tǒng)對(duì)這些信號(hào)進(jìn)行各種運(yùn)算來(lái)抽取目標(biāo)的特征,進(jìn)而根據(jù)判別的結(jié)果來(lái)獲取信息。本文主要介紹的是數(shù)字圖像處理中的一些簡(jiǎn)單應(yīng)用,通過(guò)對(duì)圖像進(jìn)行濾波、增強(qiáng)、灰度變換、提取特征等處理來(lái)獲取圖像的信息,達(dá)到使圖像更清晰或提取有用信息的目的。關(guān)鍵字:機(jī)器視覺(jué)、灰度圖處理、濾波、邊緣提取、連通區(qū)域

目錄TOC\o"1-3"\h\u摘要 2目錄 31概述 42技術(shù)路線 43實(shí)現(xiàn)方法 53.1 灰度圖轉(zhuǎn)換 53.2直方圖均衡化 63.3均值濾波和中值濾波 63.4灰度變換 73.5拉普拉斯算子 84輪廓提取 95數(shù)米粒數(shù)目 156存在的問(wèn)題 177總結(jié) 178致謝 18參考文獻(xiàn) 19TOC\o"1-3"\h\u1概述本次設(shè)計(jì)是根據(jù)“機(jī)器視覺(jué)”課程的作業(yè)要求,使用工具visualc++完成一些簡(jiǎn)單數(shù)字圖像處理。按照作業(yè)要求,本文介紹了以下五種處理的原理、實(shí)現(xiàn)方法和實(shí)現(xiàn)結(jié)果:24位彩色到灰度圖的轉(zhuǎn)換直方圖均衡化均值濾波和中值濾波拉普拉斯算子灰度變換然后,本文著重介紹了一種輪廓提取的方法,對(duì)焊縫缺陷的輪廓進(jìn)行提取,分析了該方法的優(yōu)缺點(diǎn)、存在的問(wèn)題、擬解決方法。最后,根據(jù)課堂興趣,分析了一種數(shù)連通區(qū)域的方法,對(duì)一幅含有米粒的圖進(jìn)行了舉例。2技術(shù)路線數(shù)字圖像的處理方法很多,常用的有空域和頻域的方法。以灰度圖為例,空域的方法是直接對(duì)各個(gè)像素的或某個(gè)像素區(qū)域進(jìn)行變換,即f(x,y)—>g(x,y),方法舉例有均值濾波、中值濾波、微分運(yùn)算、灰度變換等;頻域的方法是通過(guò)傅里葉變換得到圖像的頻譜特征,再根據(jù)頻率特性設(shè)計(jì)濾波器,達(dá)到預(yù)期的目的。本文中舉例的幾種方法都是在空域進(jìn)行的。其界面設(shè)計(jì)如圖2.1所示。其中二值化處理、反相處理等是對(duì)單個(gè)像素點(diǎn)進(jìn)行處理,均值濾波、輪廓提取是對(duì)一塊像素區(qū)域進(jìn)行處理。圖2.1圖像處理界面3實(shí)現(xiàn)方法灰度圖轉(zhuǎn)換日常生活中獲取的很多圖像都是彩色圖像,為方便處理,首先應(yīng)該進(jìn)行灰度圖轉(zhuǎn)換。對(duì)于一幅位圖,其結(jié)構(gòu)由文件頭、位圖信息頭、顏色信息和圖像數(shù)據(jù)四部分組成。從一幅24位真彩色圖到灰度圖的轉(zhuǎn)換過(guò)程中,需要改變除需要修改文件的數(shù)據(jù)區(qū)以外,文件頭、文件信息頭的部分信息也要做相應(yīng)計(jì)算修改。本文采取了一種簡(jiǎn)單的方法,在不修改文件頭、文件信息頭的條件下,完成灰度圖的轉(zhuǎn)換,具體實(shí)現(xiàn)如下:已知原圖像數(shù)據(jù)存儲(chǔ)區(qū)為m_pData,新建一片存儲(chǔ)區(qū)m_pData2;通過(guò)公式0.3*r+0.59*g+0.11*b得到各像素的灰度信息,存儲(chǔ)在m_pData2中;將m_pData中各像素的r、g、b值設(shè)定為相應(yīng)的灰度值;用m_pData中的數(shù)據(jù)進(jìn)行顯示和保存,用m_pData2中的數(shù)據(jù)進(jìn)行計(jì)算。這種實(shí)現(xiàn)方法的優(yōu)點(diǎn)是不需要計(jì)算修改文件頭,但是每次顯示或者存盤(pán)都要將m_pData2中的數(shù)據(jù)復(fù)制到m_pData中,比較麻煩。3.2直方圖均衡化將圖像從彩色轉(zhuǎn)換到灰度圖后,可以對(duì)其進(jìn)行各種轉(zhuǎn)換。直方圖均衡化是把原始圖像的灰度直方圖從比較集中的某個(gè)灰度區(qū)間變成在全部灰度范圍內(nèi)的均勻分布。這是對(duì)圖像的非線性拉伸,重新分配圖像像素值,使一定灰度范圍內(nèi)的像素?cái)?shù)量大致相同,適用于背景和前景都太亮或者太暗的圖像。一幅灰度級(jí)為[0,L-1]范圍的數(shù)字圖像的直方圖是離散函數(shù):h(rk)=nk(rk是第k級(jí)灰度,nk是圖像中灰度級(jí)為rk的像數(shù)個(gè)數(shù))直方圖均衡化的目的即通過(guò)點(diǎn)運(yùn)算使得輸入圖像轉(zhuǎn)化為在每一灰度級(jí)上都有相同的像素點(diǎn)數(shù)的輸出圖像,即輸出圖像的直方圖是平的。h(rk)=wide*height/L(wide、height為圖像的寬和高,單位:像素)為達(dá)到以上目的,灰度級(jí)為k的像素應(yīng)映射到的灰度級(jí)為:其具體的實(shí)現(xiàn)步驟如下:統(tǒng)計(jì)直方圖數(shù)組,用一個(gè)數(shù)組p記錄p[i],即直方圖分布;i從1開(kāi)始,令s[i]=s[i-1]+p[i],即得到累積分布;一個(gè)數(shù)組L記錄新的s的索引值:令L[i]=s[i]*(256-1),這里默認(rèn)L=256;依次循環(huán)每一個(gè)像素,取原圖的像素值作為數(shù)組L的下標(biāo)值,取該下標(biāo)對(duì)應(yīng)的L數(shù)組值為均衡化后的像素值。3.3均值濾波和中值濾波由于在圖像的形成、傳輸、和接收的過(guò)程中,不可避免的存在著外部干擾和內(nèi)部干擾,會(huì)存在著一定的噪聲,因此需要進(jìn)行平滑或?yàn)V波。改善圖像質(zhì)量的方法很多,這里簡(jiǎn)要描述常用的均值濾波和中值濾波。均值濾波,即采用當(dāng)前像素的鄰域平均灰度值來(lái)代替原值,達(dá)到減弱噪聲的目的。特點(diǎn)是實(shí)現(xiàn)簡(jiǎn)單,有一定程度的濾波效果,但是是以圖像模糊為代價(jià)的。其實(shí)現(xiàn)步驟如下:取得原圖像大下,新建數(shù)據(jù)區(qū);循環(huán)取得各點(diǎn)像素值,根據(jù)設(shè)定的模板大小求取鄰域內(nèi)的像素平均值,放到新建的數(shù)據(jù)區(qū);依次循環(huán)直至整幅圖像處理完;將新建數(shù)據(jù)區(qū)的數(shù)據(jù)復(fù)制到原數(shù)據(jù)區(qū)。中值濾波是采用當(dāng)前像素的鄰域內(nèi)灰度值居中的像素值來(lái)代替原值,是一種統(tǒng)計(jì)濾波方式。因?yàn)橐恍└蓴_噪聲往往具有較大或較小的灰度值,因此可以被濾掉,對(duì)于椒鹽噪聲有較好效果。其實(shí)現(xiàn)方法如下:取得原圖像大小,新建數(shù)據(jù)區(qū);循環(huán)取得各點(diǎn)像素值,根據(jù)設(shè)定的模板大小求取鄰域內(nèi)的像素中間值,放到新建的數(shù)據(jù)區(qū);依次循環(huán)直至整幅圖像處理完;將新建數(shù)據(jù)區(qū)的數(shù)據(jù)復(fù)制到原數(shù)據(jù)區(qū)。3.4灰度變換在得到原圖像灰度圖的基礎(chǔ)上,可以對(duì)原圖像進(jìn)行一些基本變換,達(dá)到便于分辨、濾除噪聲、圖像銳化等目的。例如,二值化處理可以縮減圖像信息量,便于實(shí)時(shí)處理;反色變換可以突出一些很亮的細(xì)節(jié);對(duì)數(shù)變換可以壓縮圖像亮區(qū)的灰度值,拉伸暗區(qū)的灰度值,從而突出暗區(qū)的圖像特征;冪次變換可以增強(qiáng)圖像對(duì)比度……這里簡(jiǎn)要舉例如下。1、反轉(zhuǎn)變換反色變換實(shí)現(xiàn)比較簡(jiǎn)單,只需要依次讀取個(gè)像素點(diǎn)的灰度值,令其等于L-1-r(r為原灰度值)即可,不需要另外開(kāi)辟內(nèi)存空間。2、冪次變換冪次變換即依次求取各個(gè)像素點(diǎn)的冪次即可,根據(jù)需要乘以相應(yīng)系數(shù),達(dá)到不同效果。即:在做冪次變換的過(guò)程中,當(dāng)取值較大時(shí)易產(chǎn)生數(shù)據(jù)溢出現(xiàn)象,經(jīng)過(guò)將s調(diào)整為長(zhǎng)整型解決這個(gè)問(wèn)題。3、對(duì)數(shù)變換對(duì)數(shù)變換即依次求取各個(gè)像素點(diǎn)的對(duì)數(shù),也可乘以相應(yīng)系數(shù),達(dá)到不同效果。即:在以上處理中,可能會(huì)出現(xiàn)灰度值大于L-1或者小于0的情況,需要再進(jìn)行線性變換處理,或者直接將小于0的灰度值設(shè)為0,將大于L-1的灰度值設(shè)為L(zhǎng)-14、分段線性變換對(duì)原圖像不同的像素值進(jìn)行不同程度的變量或變暗處理能達(dá)到增強(qiáng)對(duì)比度或者突出某些細(xì)節(jié)的作用。分段線性變換即是通過(guò)設(shè)定不同區(qū)域的處理方法達(dá)到不同處理效果的變換。其實(shí)現(xiàn)方法如下:4.1、設(shè)定分段線性變換的兩個(gè)轉(zhuǎn)折點(diǎn);4.2、新建數(shù)據(jù)區(qū),大下為L(zhǎng);4.3、循環(huán)計(jì)算0——L-1各個(gè)像素值變換后的值,放到新建的數(shù)據(jù)區(qū);4.4、依次循環(huán)每一個(gè)像素,取原圖的像素值作為新建數(shù)據(jù)區(qū)的索引,取該索引對(duì)應(yīng)的新建數(shù)據(jù)區(qū)的像素值。4.5、依次處理直至整幅圖像處理完畢。這種方法先一次計(jì)算完0—L-1的所有灰度值對(duì)應(yīng)的像素值,對(duì)于較大的圖像可以節(jié)約計(jì)算量。3.5拉普拉斯算子在實(shí)際的圖像處理過(guò)程中,往往需要突出圖像中的細(xì)節(jié)或增強(qiáng)被模糊了的圖像細(xì)節(jié),以便于識(shí)別或后續(xù)處理。其基本方法是進(jìn)行微分運(yùn)算,找到變化較顯著的點(diǎn)或線,即認(rèn)為是邊界。通??梢杂靡浑A微分和二階微分。一階微分的極值處是邊界點(diǎn),二階微分的過(guò)零點(diǎn)為邊界點(diǎn)。這里介紹一種基于二階微分的圖像增強(qiáng)方法:拉普拉斯算子。拉普拉斯算子是x和y方向上的二階微分相加得到的,是各向同性濾波器。通過(guò)將該算子與原圖像做卷積運(yùn)算達(dá)到邊緣提取的效果。常用的算子有以下幾種:程序?qū)崿F(xiàn)方法如下:取得原圖像大小,新建數(shù)據(jù)區(qū);循環(huán)取得各點(diǎn)鄰域像素值,根據(jù)設(shè)定的模板大?。ㄟ@里是3*3)依次做卷積運(yùn)算,放到新建的數(shù)據(jù)區(qū);依次循環(huán)直至整幅圖像處理完;將新建數(shù)據(jù)區(qū)的數(shù)據(jù)復(fù)制到原數(shù)據(jù)區(qū)。通過(guò)拉普拉斯算子可以提取輪廓,但是同時(shí)也放大了噪聲信號(hào),所以可以先濾波,再提取輪廓。另外,拉普拉斯算子與原圖卷積之后,還要做過(guò)零檢測(cè),才能得到單像素邊緣,這里略掉此步。4輪廓提取在了解了圖像的基本處理方法的基礎(chǔ)上,下面具體分析焊縫缺陷的輪廓提取。這里以一副24位位圖(如圖4.1所示)為例。圖4.1焊縫缺陷4.1構(gòu)造CDib類(lèi)在新建完一個(gè)單文檔應(yīng)用程序后,首先應(yīng)構(gòu)造一個(gè)圖像處理的基類(lèi),用來(lái)封裝位圖的基本操作。該類(lèi)需完成文件的讀寫(xiě)操作、位圖信息獲取、位圖的顯示等內(nèi)容。4.2灰度轉(zhuǎn)換在打開(kāi)位圖后,首先需要進(jìn)行灰度轉(zhuǎn)換,將24位位圖轉(zhuǎn)換為灰度圖,便于后續(xù)處理。如前所述,這里的灰度轉(zhuǎn)換只修改了數(shù)據(jù)區(qū),未改變文件的文件頭和位圖信息頭。處理后圖像如圖4.2所示。圖4.2灰度圖4.3一階微分對(duì)灰度圖進(jìn)行一階微分處理,得到大致的輪廓。處理后圖像如圖4.3所示。圖4.3一階微分(prewitt)4.4濾波對(duì)一階微分后的圖像進(jìn)行濾波處理,保留裂紋的輪廓,衰減其余部分。在這里進(jìn)行了膨脹、腐蝕處理,處理后圖像如圖4.4所示。圖4.4一階微分濾波后圖像4.5相加將濾波后的圖像與原灰度圖相加。為了不至于顯得太亮,對(duì)濾波后的圖像進(jìn)行了一次分段線性變換,將最大灰度值壓縮到100。處理后圖像如圖4.5所示。圖4.5相加4.6輪廓提取最后對(duì)圖像進(jìn)行輪廓提取。這里使用了Log算法(不完全)和canny算法。比較結(jié)果顯示canny算法(高低閾值分別取0.913和0.3)效果更優(yōu)。Canny算法的具體步驟包括以下幾步:1、用高斯濾波器平滑圖象;

2、用一階偏導(dǎo)的有限差分來(lái)計(jì)算梯度的幅值和方向;

3、對(duì)梯度幅值進(jìn)行非極大值抑制;4、用雙閾值算法檢測(cè)和連接邊緣。Canny算法的最后結(jié)果如圖4.6所示。圖4.6輪廓圖4.7檢驗(yàn)為了檢驗(yàn)邊緣提取的準(zhǔn)確性,將輪廓圖與原灰度圖疊加,其效果如圖4.7所示。此效果基本上滿足要求,輪廓大致形態(tài)吻合,但是輪廓線與原圖中輪廓有一定誤差。分析其原因,可能是輪廓提取的步驟中,先做一階微分再與原圖相加不是很合理,對(duì)一階微分圖進(jìn)行膨脹和腐蝕也有一定誤差,最終導(dǎo)致輪廓膨脹了。另外,輪廓尚未封閉,方法有待改進(jìn)。圖4.7疊加圖因此,對(duì)于這幅圖還做了如下兩種輪廓提取方法。方法二如圖4.8所示。處理步驟依次為:將原圖灰度化,中值濾波(3*3),均值濾波(9*9),原灰度圖減去濾波后的圖,二值化(閾值14),膨脹,腐蝕,canny提取輪廓,與原灰度圖相加。方法三如圖4.9所示。處理步驟與方法二類(lèi)似,只是去掉了膨脹和腐蝕。相比方法一,這兩種方法的效果也是基本上滿足要求,但是輪廓的封閉性好一些,尤其是方法三,與原圖的吻合性也相對(duì)較好。但是,這樣處理的輪廓

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論