基于數(shù)字圖像的矩形芯片定位方法研究與實現(xiàn)畢業(yè)設計論文_第1頁
基于數(shù)字圖像的矩形芯片定位方法研究與實現(xiàn)畢業(yè)設計論文_第2頁
基于數(shù)字圖像的矩形芯片定位方法研究與實現(xiàn)畢業(yè)設計論文_第3頁
基于數(shù)字圖像的矩形芯片定位方法研究與實現(xiàn)畢業(yè)設計論文_第4頁
基于數(shù)字圖像的矩形芯片定位方法研究與實現(xiàn)畢業(yè)設計論文_第5頁
已閱讀5頁,還剩27頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、畢 業(yè) 設 計(論 文) 題 目: 基于數(shù)字圖像的矩形芯片定位方法 研究與實現(xiàn) 畢業(yè)設計(論文)原創(chuàng)性聲明和使用授權說明原創(chuàng)性聲明本人鄭重承諾:所呈交的畢業(yè)設計(論文),是我個人在指導教師的指導下進行的研究工作及取得的成果。盡我所知,除文中特別加以標注和致謝的地方外,不包含其他人或組織已經發(fā)表或公布過的研究成果,也不包含我為獲得 及其它教育機構的學位或學歷而使用過的材料。對本研究提供過幫助和做出過貢獻的個人或集體,均已在文中作了明確的說明并表示了謝意。作 者 簽 名: 日 期: 指導教師簽名: 日期: 使用授權說明本人完全了解 大學關于收集、保存、使用畢業(yè)設計(論文)的規(guī)定,即:按照學校要求提

2、交畢業(yè)設計(論文)的印刷本和電子版本;學校有權保存畢業(yè)設計(論文)的印刷本和電子版,并提供目錄檢索與閱覽服務;學校可以采用影印、縮印、數(shù)字化或其它復制手段保存論文;在不以贏利為目的前提下,學??梢怨颊撐牡牟糠只蛉績热荨W髡吆灻?日 期: 學位論文原創(chuàng)性聲明本人鄭重聲明:所呈交的論文是本人在導師的指導下獨立進行研究所取得的研究成果。除了文中特別加以標注引用的內容外,本論文不包含任何其他個人或集體已經發(fā)表或撰寫的成果作品。對本文的研究做出重要貢獻的個人和集體,均已在文中以明確方式標明。本人完全意識到本聲明的法律后果由本人承擔。作者簽名: 日期: 年 月 日學位論文版權使用授權書本學位論文作者

3、完全了解學校有關保留、使用學位論文的規(guī)定,同意學校保留并向國家有關部門或機構送交論文的復印件和電子版,允許論文被查閱和借閱。本人授權 大學可以將本學位論文的全部或部分內容編入有關數(shù)據(jù)庫進行檢索,可以采用影印、縮印或掃描等復制手段保存和匯編本學位論文。涉密論文按學校規(guī)定處理。作者簽名:日期: 年 月 日導師簽名: 日期: 年 月 日注 意 事 項1.設計(論文)的內容包括:1)封面(按教務處制定的標準封面格式制作)2)原創(chuàng)性聲明3)中文摘要(300字左右)、關鍵詞4)外文摘要、關鍵詞 5)目次頁(附件不統(tǒng)一編入)6)論文主體部分:引言(或緒論)、正文、結論7)參考文獻8)致謝9)附錄(對論文支持

4、必要時)2.論文字數(shù)要求:理工類設計(論文)正文字數(shù)不少于1萬字(不包括圖紙、程序清單等),文科類論文正文字數(shù)不少于1.2萬字。3.附件包括:任務書、開題報告、外文譯文、譯文原文(復印件)。4.文字、圖表要求:1)文字通順,語言流暢,書寫字跡工整,打印字體及大小符合要求,無錯別字,不準請他人代寫2)工程設計類題目的圖紙,要求部分用尺規(guī)繪制,部分用計算機繪制,所有圖紙應符合國家技術標準規(guī)范。圖表整潔,布局合理,文字注釋必須使用工程字書寫,不準用徒手畫3)畢業(yè)論文須用a4單面打印,論文50頁以上的雙面打印4)圖表應繪制于無格子的頁面上5)軟件工程類課題應有程序清單,并提供電子文檔5.裝訂順序1)設

5、計(論文)2)附件:按照任務書、開題報告、外文譯文、譯文原文(復印件)次序裝訂 摘 要畢業(yè)設計的任務是以數(shù)字圖像處理技術為基礎,實現(xiàn)矩形芯片的定位。本文介紹了數(shù)字圖像處理的基礎知識,討論了傳統(tǒng)的邊緣檢測算法的優(yōu)缺點,針對矩形芯片的特征設計出一種新的邊緣檢測算法,利用一定斜率的直線掃描圖像,得到直線上像素點的灰度值之和,再根據(jù)差分法求出最優(yōu)斜率,經過多次實驗設定一定的閾值,求出圖像邊緣所在的直線,并利用計算機編程技術對得到的參數(shù)數(shù)據(jù)進行研究,分析出芯片與水平線的夾角和芯片的中心坐標,為后期的準確焊接提供支持。關鍵詞: 數(shù)字圖像處理 ;邊緣檢測 ;中心坐標 ;夾角abstract this pap

6、er of the graduated design is based on digital image processing technology, to achieve the positioning of the rectangular chip.this paper introduced digital image processing knowledge, discussed the advantages and disadvantages of the traditional edge detection algorithm , designed of a new edge det

7、ection algorithm in view of the characteristics of the rectangular chip, scanned image by making use of the straight-line of a certain slope, got the gray value of the pixel line, and then derive the optimal slope based on the difference method, through a series of experiments set a certain threshol

8、d, where is the calculated straight-line of the edge, also make use of computer programming technology to research according to the parameters of data, analysis the chip and the angle between the horizon and the center of the chip coordinates, to provide support for the latter accurate welding.keywo

9、rds: digital image processing; edge detection; center coordinates; angle; 目錄摘 要iabstractii第一章 研究現(xiàn)狀和實際意義11.1 數(shù)字圖像處理的背景11.2 數(shù)字圖像處理的研究現(xiàn)狀11.3 矩形芯片研究的實際意義2第二章 數(shù)字圖像編程基礎32.1 windows編程簡介32.1.1 visual c+簡介32.1.2visual c+數(shù)字圖像編程基礎42.2開發(fā)平臺5第三章 數(shù)字圖像處理典型算法63.1 bmp圖像簡介63.2 邊緣檢測原理63.3 四種典型邊緣檢測算子73.3.1 roberts邊緣檢測算子

10、73.3.2 sobel邊緣檢測算子73.3.3 prewitt邊緣檢測算子83.3.4拉普拉斯邊緣檢測算子93.4 四種典型算子的不足之處15第四章 系統(tǒng)功能設計與實現(xiàn)164.1 總體設計164.2 界面設計174.3 矩形芯片圖像的獲取184.3.1 灰度圖簡介184.3.2 矩形芯片的讀取與顯示134.4矩形芯片邊緣檢測的設計144.4.1 邊緣檢測算法的設計思路154.4.2 邊緣檢測最優(yōu)斜率k的計算164.4.3 邊緣掃描174.4.4 邊界提取方案194.5矩形芯片偏角的計算204.6矩形芯片中心坐標的計算204.7功能總結26第五章 小結與感受275.1 vc+編程感受275.2

11、 本芯片定位方法的意義235.3 本芯片定位方法的優(yōu)點235.4 本研究有待改進的地方23結束語24參考文獻25第一章 研究現(xiàn)狀和實際意義1.1 數(shù)字圖像處理的背景數(shù)字圖像處理又稱為計算機圖像處理,它是指將圖像信號轉換成數(shù)字信號并利用計算機對其進行處理的過程,就是采用計算機對圖像進行信息加工。圖象處理的主要內容有:圖像的采集、增強、復原、變換、編碼、重建、分割、配準、嵌拼、融合、特征提取、模式識別和圖像理解。數(shù)字圖像處理是一個跨學科的前沿科技領域,它與數(shù)學、光學、電子學、計算機技術、成像技術、視覺心理學、視覺生理學、計算機視覺和人工智能密切相關。 數(shù)字圖像處理最早出現(xiàn)于20世紀50年代,人們開

12、始利用計算機來處理圖形和圖像信息。數(shù)字圖像處理作為一門學科大約形成于20世紀60年代初期。早期的圖像處理的目的是改善圖像的質量。輸入的是質量低的圖像,輸出的是改善質量后的圖像。首次獲得實際成功應用的是美國噴氣推進實驗室。他們對航天探測器在1964年發(fā)回的幾千張月球照片使用了圖像處理技術,為人類登月創(chuàng)舉奠定了堅實的基礎,也推動了數(shù)字圖像處理這門學科的誕生。數(shù)字圖像處理取得的另一個巨大成就是在醫(yī)學上獲得的成果。1972年英國工程師 hounsfield 發(fā)明了用于頭顱診斷的x射線計算機斷層攝影裝置,也就是我們通常所說的ct。ct的基本方法是根據(jù)人的頭部截面的投影,經計算機處理來重建截面圖像。197

13、9年,這項無損傷診斷技術獲得了諾貝爾獎,說明它對人類做出了劃時代的貢獻。從70年代中期開始,隨著計算機技術和人工智能、思維科學研究的迅速發(fā)展,數(shù)字圖像處理向更高、更深層次發(fā)展。人們已開始研究圖像理解或計算機視覺。很多發(fā)達國家投入更多的人力、物力到這項研究,取得了不少重要的研究成果。1.2 數(shù)字圖像處理的研究現(xiàn)狀近年來圖像處理技術發(fā)展非常迅速,應用也越來越廣,已經滲透到工程、工業(yè)、醫(yī)療保險、航天航空、軍事、科研等各個方面,有些技術已經相當成熟并取得了驚人的效益。20世紀20年代,圖像處理首次得到應用。20世紀60年代中期,隨電子計算機的發(fā)展得到普遍應用。60年代末,圖像處理技術不斷完善,逐漸成為

14、一個新興的學科。利用數(shù)字圖像處理主要是為了修改圖形,改善圖像質量,或是從圖像中提取有效信息, 還有利用數(shù)字圖像處理可以對圖像進行體積壓縮,便于傳輸和保存。數(shù)字圖像處理主要研究以下內容:傅立葉變換、小波變換等各種圖像變換;對圖像進行編碼和壓縮;采用各種方法對圖像進行復原和增強;對圖像進行分割、描述和識別等。隨著技術的發(fā)展,數(shù)字圖像處理主要應用于通訊技術、宇宙探索遙感技術和生物工程等領域。數(shù)字圖像處理因易于實現(xiàn)非線性處理,處理程序和處理參數(shù)可變,故是一項通用性強,精度高,處理方法靈活,信息保存、傳送可靠的圖像處理技術。主要用于圖像變換、量測、模式識別、模擬以及圖像產生。廣泛應用在遙感、宇宙觀測、影

15、像醫(yī)學、通信、刑偵及多種工業(yè)領域。圖像是人類獲取和交換信息的主要來源,因此,圖像處理的應用領域必然涉及到人類生活和工作的方方面面。隨著科學技術的發(fā)展,數(shù)字圖像處理技術的應用領域也將隨之不斷擴大。進入21世紀,隨著計算機技術的迅猛發(fā)展和相關理論的不斷完善,數(shù)字圖像處理技術在許多應用領域受到廣泛重視并取得了重大的開拓性成就。屬于這些領域的有航空航天、生物醫(yī)學工程、工業(yè)檢測、機器人視覺、公安司法、軍事制導、文化藝術等。該技術成為一門引人注目、前景遠大的新型學科。數(shù)字圖像處理技術在航空航天、工業(yè)生產、醫(yī)療診斷、資源環(huán)境、氣象及交通監(jiān)測、文化教育等領域有著廣泛的應用,創(chuàng)造了巨額社會價值;同時還遠遠不能滿

16、足社會需求,自身也在不斷完善和發(fā)展,有很多新的方面要探索。它必將向更深入、更完善的方向發(fā)展:處理算法更優(yōu)化,處理速度更快,實現(xiàn)圖形的智能生成、處理、識別和理解。1.3矩形芯片研究的實際意義 基于數(shù)字圖像的研究國內已有很多例子,例如基于spca563b芯片的圖像識別系統(tǒng),是凌陽科技公司推出的一顆用于圖像識別領域的ic,不僅具有一般單片機的控制功能,而且具有圖像識別與處理能力。該圖像識別系統(tǒng)就是以它為核心進行數(shù)據(jù)處理與控制。該系統(tǒng)已實現(xiàn)的功能有:物體顏色和形狀識別、字符識別以及手勢識別等。利用這些識別的結果,可以開發(fā)游戲、趣味教學、智能玩具、文字輸入以及智能識別等應用系統(tǒng)。還有近年來對各種車牌圖像

17、的提取文獻都用到了圖像識別的方法,對車牌的定位,車牌的邊緣檢測以及對車牌上各種字符(英文字母和數(shù)字)的識別,還要有一定得圖像分割與模式匹配,得到車牌上的各種字符。本課題是基于數(shù)字圖像的矩形芯片的定位研究,主要通過對芯片在電路板上的掃描圖像,識別圖像的外觀、形態(tài)及坐標,利用正確的算法計算芯片在電路板上放置的正確性,從而達到芯片正確焊接的目的。本課題的工作主要分為以下三個方面:一是讀入矩形芯片的圖像,得到圖像的坐標和每個坐標對應的rgb值,研究圖片的灰度信息。二是針對矩形芯片的特征設計邊緣檢測算法,得到圖像的邊緣并把邊緣提取出來。三是在已經得到的矩形芯片圖片的邊緣與輪廓的基礎上,利用計算機編程技術

18、對得到的參數(shù)數(shù)據(jù)進行研究,分析出芯片中心坐標和芯片與水平線的夾角,為后期的準確焊接提供數(shù)據(jù)支持。第二章 數(shù)字圖像編程基礎2.1 windows編程簡介windows編程是基于microsoft公司的window操作系統(tǒng)的編程,windows編程可以為windows操作系統(tǒng)制作軟件,而且windows編程是基于窗口的.不像以前的dos編程只有一個屏幕,而window可以在可見化的世界里任意施展,window32全部都是用c寫的.下面簡單介紹一下與 windows 系統(tǒng)密切相關的幾個基本概念:窗口:窗口是windows本身以及windows 環(huán)境下的應用程序的基本界面單位。從用戶的角度看,窗口就是

19、顯示在屏幕上的一個矩形區(qū)域,其外觀獨立于應用程序,事實上它就是生成該窗口的應用程序與用戶間的直觀接口;從應用程序的角度看,窗口是受其控制的一部分矩形屏幕區(qū)。應用程序生成并控制與窗口有關的一切內容,包括窗口的大小、風格、位置以及窗口內顯示的內容等。用戶打開一個應用程序后,程序將創(chuàng)建一個窗口,并在那里默默地等待用戶的要求。每當用戶選擇窗口中的選項,程序即對此做出響應。 程序:通常說的程序都是指一個能讓計算機識別的文件,接觸得最多的便是.exe型的可執(zhí)行文件。進程:所謂進程就是應用程序的執(zhí)行實例(或稱一個執(zhí)行程序)。需要注意的是:進程是程序動態(tài)的描述,而上面說到的程序是靜態(tài)的描述,兩者有本質的區(qū)別。

20、線程:線程是進程中的一個執(zhí)行單元,同一個進程中的各個線程對應于一組cpu指令、一組cpu寄存器以及一些堆棧。進程本來就具有動態(tài)的含義,然而實質上是通過線程來執(zhí)行體現(xiàn)的,從這個意義上說,windows進程的動態(tài)性意義已經不是很明顯了,只算是給程序所占的資源劃定一個范圍而已,真正具有動態(tài)性意義的是線程。消息:我們幾乎做每一個動作都會產生一個消息,在用鼠標指點江山的今天,鼠標被移動會產生wm_mousemove消息,鼠標左鍵被按下會產生wm_lbuttondown的消息,鼠標右鍵按下便產生wm_rbuttondown消息等等。所有的這些都可以通過get message,send message等函數(shù)

21、得到。事件:從它的字面意思我們就可以明白它的含義,如在程序運行的過程中改變窗口的大小或者移動窗口等,都會觸發(fā)相應的“事件”。 句柄:單單一個“柄”字便可以解釋它的意思了,我們天氣熱時搖扇子的時候只要抓住扇柄便可以控制整個扇子的運動了,在程序中也差不多是這個意思。通常一個句柄就可以傳遞我們所要做的事情。有經驗的讀者肯定清楚,編寫程序總是要和各種句柄打交道的,句柄是系統(tǒng)用來標識不同對象類型的工具,如窗口、菜單等,這些東西在系統(tǒng)中被視為不同類型的對象,用不同的句柄將他們區(qū)分開來。2.1.1 visual c+簡介visual c+是一個功能強大的可視化軟件開發(fā)工具。自1993年microsoft公司

22、推出visual c+1.0后,隨著其新版本的不斷問世,visual c+已成為專業(yè)程序員進行軟件開發(fā)的首選工具。visual c+6.0不僅是一個c+編譯器,而且是一個基于windows操作系統(tǒng)的可視化集成開發(fā)環(huán)境(integrated development environment, ide)。visual c+6.0由許多組件組成,包括編輯器、調試器以及程序向導appwizard、類向導class wizard等開發(fā)工具。 這些組件通過一個名為developer studio的組件集成為和諧的開發(fā)環(huán)境。visual c+它大概可以分成三個主要的部分:1 developer studio,

23、這是一個集成開發(fā)環(huán)境,我們日常工作的99%都是在它上面完成的,再加上它的標題赫然寫著“microsoft visual c+”,所以很多人理所當然的認為,那就是visual c+了。其實不然,雖然developer studio提供了一個很好的編輯器和很多wizard,但實際上它沒有任何編譯和鏈接程序的功能,真正完成這些工作的幕后英雄后面會介紹。我們也知道,developer studio并不是專門用于vc的,它也同樣用于vb,vj,vid等visual studio家族的其他同胞兄弟。所以不要把developer studio當成visual c+, 它充其量只是visual c+的一個殼子

24、而已。2 mfc。從理論上來講,mfc也不是專用于visual c+,borland c+,c+ builder和symantec c+同樣可以處理mfc。同時,用visual c+編寫代碼也并不意味著一定要用mfc,只要愿意,用visual c+來編寫sdk程序,或者使用stl,atl,一樣沒有限制。不過,visual c+本來就是為mfc打造的,visual c+中的許多特征和語言擴展也是為mfc而設計的,所以用visual c+而不用mfc就等于拋棄了visual c+中很大的一部分功能。但是,visual c+也不等于mfc。3 platform sdk。這才是visual c+和整個

25、visual studio的精華和靈魂,雖然我們很少能直接接觸到它。大致說來,platform sdk是以microsoft c/c+編譯器為核心,配合masm,輔以其他一些工具和文檔資料。上面說到developer studio沒有編譯程序的功能,那么這項工作是由誰來完成的呢?是cl,是nmake,和其他許許多多命令行程序,這些我們看不到的程序才是構成visual studio的基石。2.1.2 visual c+數(shù)字圖像編程基礎一幅圖像定義為一個二維函數(shù)f(x, y),這里x和y是空間坐標,在任何一對空間坐標(x, y)上的幅值f稱為該點圖像的強度或灰度。當幅值f為有限的、離散的數(shù)值時,稱

26、該圖像為數(shù)字圖像。數(shù)字圖像由有限的元素組成,每個元素都有一個特定的位置和幅值,這些元素稱為像素(圖像元素或畫面元素)。數(shù)字圖像從數(shù)學的角度其實就是一個二維矩陣, 因此數(shù)字圖像處理本質上就是矩陣運算.通常所說的數(shù)字圖像處理是指計算機對圖像信息的處理。總的來說,數(shù)字圖像處理包括以下幾項內容:點運算,幾何處理,圖像增強,圖像復原,圖像形態(tài)學處理,圖像編碼,圖像重建,模式識別等。點運算:主要針對圖像的像素進行加減乘除等運算。圖像的點運算可以有效的改變圖像的直方圖分布。幾何處理:主要包括圖像的坐標轉換,圖像的移動、縮小、放大和旋轉,多個圖像的配準以及圖像扭曲校正等。幾何處理是最常見的圖像處理手段。圖像增

27、強和圖像復原:影響系統(tǒng)圖像清晰程度的因素很多,例如室外光照度不夠均勻就會造成圖像灰度過于集中;由ccd(攝像頭)獲得的圖像經過a/d(數(shù)/模轉換,該功能在圖像系統(tǒng)中由數(shù)字采集卡來實現(xiàn))轉換、線路傳送都會產生噪聲污染等等。因此圖像質量不可避免的降低了,輕者表現(xiàn)為圖像不干凈,難于看清細節(jié);重者表現(xiàn)為圖像模糊不清,連概貌也看不出來。因此,在對圖像進行分析之前,必須要對圖像質量進行改善,一般情況下改善的方法有兩類:圖像增強和圖像復原。圖像增強不考慮圖像質量下降的原因,只將圖像中感興趣的特征有選擇的突出,而衰減不需要的特征,它的目的主要是提高圖像的可懂度。圖像增強的方法分為空域法和頻域法兩類,空域法主要

28、是對圖像中的各個像素點進行操作;而頻域法是在圖像的某個變換域內,對圖像進行操作,修改變換后的系數(shù),例如傅里葉變換、dct變換等的系數(shù),然后再進行反變換得到處理后的圖像。圖像復原技術與增強技術不同,它需要了解圖像質量下降的原因,首先要建立降質模型,再利用該模型,恢復原始圖像。圖像壓縮(圖像編碼):圖像壓縮是指以較少的比特有損或無損地表示原來的像素矩陣的技術,也稱圖像編碼。圖像數(shù)據(jù)之所以能被壓縮,就是因為數(shù)據(jù)中存在著冗余。圖像數(shù)據(jù)的冗余主要表現(xiàn)為:圖像中相鄰像素間的相關性引起的空間冗余;圖像序列中不同幀之間存在相關性引起的時間冗余;不同彩色平面或頻譜帶的相關性引起的頻譜冗余。數(shù)據(jù)壓縮的目的就是通過

29、去除這些數(shù)據(jù)冗余來減少表示數(shù)據(jù)所需的比特數(shù)。由于圖像數(shù)據(jù)量的龐大,在存儲、傳輸、處理時非常困難,因此圖像數(shù)據(jù)的壓縮就顯得非常重要。模式識別:模式識別是指對表征事物或現(xiàn)象的各種形式的信息進行處理和分析,以對事物或現(xiàn)象進行描述、辨認、分類和解釋的過程。它是信息科學和人工智能的重要組成部分,主要應用領域是圖像分析與處理、語音識別、聲音分類、通信、計算機輔助診斷、數(shù)據(jù)挖掘等學科。圖像重建:指通過對離散圖像進行線性空間內插或線性空間濾波來重新獲得連續(xù)圖像的方法。2.2開發(fā)平臺 1) 硬件平臺:pc一臺2) 系統(tǒng)平臺:windows 2000 或者windows xp操作系統(tǒng)3) 開發(fā)環(huán)境:microso

30、ft visual c+ 6.0第三章 數(shù)字圖像處理典型算法3.1 bmp圖像簡介bmp是一種與硬件設備無關的圖像文件格式,使用非常廣。它采用位映射存儲格式,除了圖像深度可選以外,不采用其他任何壓縮,因此,bmp文件所占用的空間很大。bmp文件的圖像深度可選1bit、4bit、8bit及24bit。bmp文件存儲數(shù)據(jù)時,圖像的掃描方式是按從左到右、從下到上的順序。由于bmp文件格式是windows環(huán)境中交換圖像數(shù)據(jù)的一種標準,因此在windows環(huán)境中運行的圖形圖像軟件都支持bmp圖像格式。典型的bmp圖像文件由三部分組成:位圖文件頭數(shù)據(jù)結構,它包含bmp圖像文件的類型、顯示內容等信息;位圖信

31、息數(shù)據(jù)結構,它包含有bmp圖像的寬、高、壓縮方法,以及定義顏色等信息。在bmp位圖中,位圖每行的灰度值要填充到一個四字節(jié)邊界,即位圖每行所占的存儲長度為四字節(jié)的倍數(shù),不足時將多余位用0填充。本文所研究的芯片圖片格式是bmp 24bit圖像深度。3.2邊緣檢測原理所謂邊緣是指其周圍像素灰度急劇變化的那些象素的集合,它是圖像最基本的特征。邊緣存在于目標、背景和區(qū)域之間,所以,它是圖像分割所依賴的最重要的依據(jù)。由于邊緣是位置的標志,對灰度的變化不敏感,因此,邊緣也是圖像匹配的重要特征。兩個具有不同灰度值的相鄰區(qū)域之間總存在邊緣,邊緣是灰度值不連續(xù)的表現(xiàn)。常見的邊緣點有:階梯型邊緣(step-edge

32、),即從一個灰度(或線性灰度)到達比它高(或低)很多的另一個灰度;屋頂型邊緣(roof-edge),它的灰度是慢慢增加(減少)到一定程度然后慢慢減小(增加);線性邊緣(line-edge),它是灰度線性變換中出現(xiàn)的灰度脈沖。在計算機視覺和圖像處理過程中,邊緣檢測是捕獲圖像中物體的重要特征的過程。這些特征包括物體光學度、幾何、物理等的不連續(xù)性。在灰度圖像中,這些信息產生了灰度的變化,這些變化包括不連續(xù)性和極大值。邊緣檢測的目的就是定位這些變化和鑒別產生變化的物理現(xiàn)象。邊緣檢測的結果提供了圖像的重要特征。許多邊緣檢測操作都是基于亮度的一階導數(shù)這樣就得到了原始數(shù)據(jù)亮度的梯度。使用這個信息我們能夠在圖

33、像的亮度梯度中搜尋峰值。如果 i(x) 表示點 x 的亮度,i(x) 表示點 x 的一階導數(shù)(亮度梯度),這樣我們就會發(fā)現(xiàn):對于更高性能的圖像處理來說,一階導數(shù)能夠通過帶有掩碼的原始數(shù)據(jù)(1維)卷積計算得到。其它一些邊緣檢測操作是基于亮度的二階導數(shù)。這實質上是亮度梯度的變化率。在理想的連續(xù)變化情況下,在二階導數(shù)中檢測零點將得到梯度中的局部最大值。另一方面,二階導數(shù)中的峰值檢測是邊線檢測,只要圖像操作使用一個合適的尺度表示。如上所述,邊線是雙重邊緣,這樣我們就可以在邊線的一邊看到一個亮度梯度,而在另一邊看到相反的梯度。這樣如果圖像中有邊線出現(xiàn)的話我們就能在亮度梯度上看到非常大的變化。為了找到這些

34、邊線,我們可以在圖像亮度梯度的二階導數(shù)中尋找過零點。如果 i(x) 表示點 x 的亮度,i(x) 表示點 x 亮度的二階導數(shù),那么同樣許多算法也使用卷積掩碼快速處理圖像數(shù)據(jù)。一旦我們計算出導數(shù)之后,下一步要做的就是給出一個閾值來確定哪里是邊緣位置。閾值越低,能夠檢測出的邊線越多,結果也就越容易受到圖片噪聲的影響,并且越容易從圖像中挑出不相關的特性。與此相反,一個高的閾值將會遺失細的或者短的線段。一個常用的這種方法是帶有滯后作用的閾值選擇。這個方法使用不同的閾值去尋找邊緣。首先使用一個閾值上限去尋找邊線開始的地方。一旦找到了一個開始點,我們在圖像上逐點跟蹤邊緣路徑,當大于門檻下限時一直紀錄邊緣位

35、置,直到數(shù)值小于下限之后才停止紀錄。這種方法假設邊緣是連續(xù)的界線,并且我們能夠跟蹤前面所看到的邊緣的模糊部分,而不會將圖像中的噪聲點標記為邊緣。3.3 四種典型邊緣檢測算子如果一個像素落在圖像中某一個物體的邊界上,那么它的鄰域將成為一個灰度級變化的帶。對這種變化最有用的兩個特征是灰度的變化率和方向,它們分別以梯度向量的幅度和方向來表示。邊緣檢測算子檢查每個像素的鄰域井并對灰度變化率進行量化,通常也包括方向的確定有若干種方法可以使用,其中大多數(shù)是基于方向導數(shù)掩模求卷積的方法。3.3.1 roberts邊緣檢測算子 roberts邊緣檢測算子是一種利用局部差分算子尋找邊緣的算子,robert算子圖

36、像處理后結果邊緣不是很平滑。經分析,由于robert算子通常會在圖像邊緣附近的區(qū)域內 產生較寬的響應,故采用上述算子檢測的邊緣圖像常需做細化處理,邊緣定位的精度不是很高。它由公式(3.1)給出: g(x,y)=2+2 (3.1)其中f(x, y)是具有整數(shù)像素坐標的輸入圖像。其中的平方根運算使該處理類似于人類視覺系統(tǒng)中發(fā)生的過程。3.3.2 sobel邊緣檢測算子 索貝爾算子(sobel operator)是圖像處理中的算子之一,主要用作邊緣檢測。在技術上,它是一離散性差分算子,用來運算圖像亮度函數(shù)的梯度之近似值。在圖像的任何一點使用此算子,將會產生對應的梯度矢量或是其法矢量。圖3.1所示的兩

37、個卷積核形成了sobel邊緣算子。圖像中的每個點都用這兩個核做卷積。一個核對通常的垂直邊緣響應最大而另一個對水平邊緣響應最大。兩個卷積的最大值作為該點的輸出值、運算結果是一幅邊緣幅度圖像。gx= and gy= 圖3.1 sobel邊緣算子圖像的每一個像素的橫向及縱向梯度近似值可用(3.2)公式結合,來計算梯度的大小。 g = (3.2)然后可用(3.3)公式計算梯度方向。 (3.3)如果以上的角度等于零,即代表圖像該處擁有縱向邊緣,并且左方較右方暗。3.3.3 prewitt邊緣檢測算子在一個較大區(qū)域中,用兩點的偏導數(shù)值來求梯度幅度值,受噪聲干擾很大。若對兩個點的各自一定領域內的灰度值求和,

38、并根據(jù)兩個灰度值和的差來計算x, y的偏導數(shù),則會在很大程度上降低噪聲干擾。源于這種思想,prewitt于1970年提出了提取邊緣的prewitt算子,其系數(shù)加權模板如表3.1 和3.2:表3.1 prewitt算子模板1 -1 -1 -1 0 0 0 1 1 1表3.2 prewitt算子模板210-110-110-1上圖所示的兩個卷積核形成了 prewitt邊緣算子。 與使用sobel算子的方法一樣,圖像中的每個點都用這兩個核進行卷積,取最大值作為輸出。prewitt 算子也產生一幅邊緣幅度圖像。3.3.4拉普拉斯邊緣檢測算子拉普拉斯算子是對二維函數(shù)進行運算的二階導數(shù)算子,通常使用的拉普拉

39、斯算子如表3.3和3.4. 表3.3拉普拉斯算子10-10-14-10-10 表3.4拉普拉斯算子2-1-1-1-18-1-1-1-1由于拉普拉斯算子是一個二階導數(shù),他將在邊緣處產生一個陡峭的零交叉,由于噪聲對邊緣檢測有一定得影響,所以拉普拉斯算子是效果較好的邊緣檢測器。根據(jù)圖像邊緣處的一階微分(梯度)是極限值點,圖像邊緣處的二階微分應為零,確定過零點的位置要比確定極值點容易得多,而且比較精確。但二階微分對噪音更為敏感。因此,在通常情況下,在對圖像進行拉普拉斯算子進行邊緣處理前,應先對圖像進行平滑濾波器處理,一般采用的是高斯濾波器。把高斯平滑濾波器和拉普拉斯銳化濾波器結合起來,先平滑噪聲,再進

40、行邊緣檢測的方法叫做高斯拉普拉斯算子(簡寫log算子)。常用的log算子是55的模塊,如表3.5。 表3.5 log算子模塊-2-4-4-4-2-4080-4-48248-4-4080-4-2-4-4-4-2在log算子中對邊緣進行判斷時采用的技術是零交叉檢測,可以把零交叉檢測進行推廣,我們只要在檢測前用指定的濾波器對圖像進行濾波,然后再尋找零交叉點作為邊緣。3.4 四種典型算子的不足之處 由上述邊緣算子產生的邊緣圖像看來很相似。它們看起來像一個繪畫者從圖片中做出的線條畫。robert算子是2*2算子,對具有陡峭的低噪聲圖像響應最好。其它三個算子,都是3*3算子,對灰度漸變和噪聲較多的圖像處理

41、得較好。使用兩個掩模板組成邊緣檢測器時,通常取較大得幅度作為輸出值。這使得它們對邊緣的走向有些敏感。取它們的平方和的開方可以獲得性能更一致的全方位響應。這與真實的梯度值更接近。但是以上三種經典算子檢測出來的邊緣在本文的芯片定位中所達到的效果卻不是很好,因為本文的主要目的是通過邊緣檢測得出芯片的偏角和中心坐標,這些經典的算法只能把邊緣顯示出來,但之后要求的偏角和中心坐標卻難以求出,所以邊緣檢測的算法必須重新設計。第四章 系統(tǒng)功能設計與實現(xiàn)4.1 總體設計本系統(tǒng)主要通過對芯片在電路板上的掃描圖像,識別圖像的外觀、形態(tài)及坐標,利用正確的算法計算芯片在電路板上放置的正確性,從而達到芯片正確焊接的目的。

42、本課題總共分為以下幾個模塊:模塊一:讀入矩形芯片的圖像,得到圖像的坐標和每個坐標對應的rgb值。模塊二:設計邊緣檢測算法,得到圖像的邊緣。 包括:1.最優(yōu)k的計算.2.縱向掃描和橫向掃描,得出邊緣所在直線的截距. 3.畫出邊緣直線.模塊三:求出芯片與水平線的夾角和芯片中心坐標。系統(tǒng)模塊如圖4.1,子模塊如圖4.2所示:矩形芯片定位方法與實現(xiàn)讀入圖像并得到圖像坐標和rgb值邊緣檢測得到圖像邊緣求出芯片與水平線夾角和中心坐標 圖4.1系統(tǒng)模塊邊緣檢測最優(yōu)k的計算縱向掃描橫向掃描畫出邊緣直線 圖4.2子模塊4.2 界面設計本設計是在vc 6.0的編程環(huán)境下實現(xiàn)的,在mfc appwizardexe中

43、創(chuàng)建一個新的單文檔實現(xiàn)圖像的打開和讀取。然后在編輯欄下添加邊緣檢測等菜單,并做相應的消息映射。界面如圖4.3: 圖4.3 界面顯示4.3 矩形芯片圖像的獲取4.3.1 灰度圖簡介 本文主要研究bmp灰度圖, 灰度圖(grayscale)是指只含亮度信息,不含色彩信息的圖像,就像我們平時看到亮度由暗到明的黑白照片,亮度變化是連續(xù)的,因此要表示灰度圖,就需要把亮度值進行量化,通常劃分為0-255共256個級別,0最暗,255最亮。 bmp格式的文件可以用256色的調色板來表示灰度圖,只不過這個調色板有點特殊,每一個rgb值都是相同的,也就是rgb值從(0,0,0)一直到(255,255,255)。

44、灰度圖使用比較方便,首先rgb值都一樣,其次圖像數(shù)據(jù)即調色板索引值,也就是實際的rgb的亮度值。4.3.2 矩形芯片的讀取與顯示1)本矩形芯片的圖像是典型的256色bmp文件格式,芯片圖像的讀取是在cbmp256doc文件的serialize函數(shù)中,通過ar.write函數(shù)和ar.read函數(shù)來讀取圖像的位圖文件頭、位圖信息頭、顏色表和位圖數(shù)據(jù)本身。ar.write(m_buffer,m_infoheader-biwidth*m_infoheader-biheight)為位圖分配一定空間的緩沖區(qū)。2)在cbmp256view文件中,如果緩沖區(qū)不為空,通過ondraw函數(shù)調用showbuffer

45、函數(shù)把緩沖區(qū)中的圖像顯示在內存設備環(huán)境中。if(pdoc-m_buffer!=null)m_height=pdoc-m_infoheader-biheight;m_width=pdoc-m_infoheader-biwidth;m_buffer=pdoc-m_bufferm_infoheader=pdoc-m_infoheader;showbuffer(0,0);/調用函數(shù)3)圖像信息顯示出來后,在cbmp256view文件中設計一onmousemove函數(shù),通過指針*p計算出任一點處的rgb值,并顯示出任一點處的(x, y)坐標及對應的rgb值。bytes=m_infoheader-bibi

46、tcount/8;p=m_buffer+(m_height-point.y)*m_width+point.x)*bytes;/灰度值if(bytes=1)/如果是8位灰度圖,就輸出灰度值sprintf(message,x=%3d y=%3d gray=%3d,point.x,point.y,*p);/8位if(bytes=3)/如果是24位灰度圖,就輸出rgb值 sprintf(message,x=%3dy=%3dr=%3dg=%3db=%3d,point.x,point.y,*(p+2),*(p+1),*p);/24位4)圖像顯示如圖4.4 圖4.4 讀入圖像顯示說明:因為實驗的圖像為24位

47、bmp位圖,圖像下方的x, y, r, g, b值均根據(jù)鼠標的移動在不斷變化,同時,當鼠標移動到位圖外時,只顯示(x, y)坐標信息。4.4 矩形芯片邊緣檢測的設計本課題的邊緣檢測分為以下幾個部分:(1)最優(yōu)k的求取,根據(jù)最優(yōu)k進行橫向掃描和縱向掃描,得到邊緣直線(2)根據(jù)直線斜率得出芯片與水平線的偏角(3)根據(jù)四條邊緣直線方程計算得出位圖的中心坐標。4.4.1 邊緣檢測算法的設計思路考慮到本圖像中芯片的形狀是矩形,在圖像任一點的灰度值已經求出的前提下,把對圖像的掃描分為橫向掃描和縱向掃描,橫向掃描時,從原點開始做固定斜率且互相平行的直線,該直線在y軸上的截距是逐漸加1變化的,當直線恰好掃描到

48、矩形芯片的邊緣時,此時該直線上的所有像素點的灰度值的和變化最大,此時可以確定該直線,得到邊緣所在直線在y軸上的截距,以便于后面的邊緣提取??v向掃描時的邊緣檢測原理同理于橫向掃描。1)在求直線上像素點之和的時候,需要注意有時候直線經過的點并不是像素點,此時需要求出該直線之上的像素點值和直線之下的像素點,并通過一定得比例(lameda)相加求出該點的灰度值。即:p=m_buffer+(m_height-i)*m_width+x1)*bytes;/灰度值 t1 +=(1-r)*(*p); p=m_buffer+(m_height-i)*m_width+x2)*bytes;/灰度值t1 +=r*(*p

49、);checkmj+=t1; /直線上的灰度值之和此時所求的才是直線式的灰度之和,r就為lameda,是通過r=fabs(x-x1)求得。2)下面為對于不同斜率的直線在橫向掃描時所得的直線上的灰度值之和:for(m=1;m=k_num;m+)k=float(-0.2f+m*float(delta_k);for(j=1;jm_width;j+) checkmj=0.0f; for(i=1;i0 & x10 & x2m_width) t1 +=r*(*p); checkmj+=t1; /直線上的灰度值之和 最后得到的是不同斜率下,不同截距的直線上的灰度值的和。4.4.2 邊緣檢測最優(yōu)斜率k的計算在邊緣檢測時最重要的工作是求出掃描時直線的斜率,最優(yōu)斜率k的計算思路是: 首先設k在-0.2和0.2之間變動,每次移動0.01,同樣是設不同截距的直線掃描,得到不同k值、不同截距下的直線上的灰度值的和。然后根據(jù)差分法求出灰度和變化最大的k值就是最優(yōu)k。1)不同斜率下,不同截距的直線上的灰度值的和求出之后,通過差

溫馨提示

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

評論

0/150

提交評論