《電子技術(shù)應用》
您所在的位置:首頁 > 其他 > 設計應用 > 基于數(shù)字圖像處理技術(shù)的工程檢測軟件設計
基于數(shù)字圖像處理技術(shù)的工程檢測軟件設計
摘要:  利用工業(yè)數(shù)碼相機拍攝照片,,獲取模擬圖像,,再通過圖像采集卡,對圖像進行離散化 后傳送給計算機,計算機將得到的數(shù)字圖像按一定的圖像文件格式保存;然后調(diào)用該圖像處理系統(tǒng)對圖像處理分析,根據(jù)需要提取的特征值,最后對得到的特征數(shù)值進行數(shù)據(jù)重構(gòu)分析,獲取精度公差結(jié)果,。
Abstract:
Key words :

一,、 概述
  利用工業(yè)數(shù)碼相機拍攝照片,,獲取模擬圖像,再通過圖像采集卡,,對圖像進行離散化 后傳送給計算機,計算機將得到的數(shù)字圖像按一定的圖像文件格式保存;然后調(diào)用該圖像處理系統(tǒng)對圖像處理分析,根據(jù)需要提取的特征值,最后對得到的特征數(shù)值進行數(shù)據(jù)重構(gòu)分析,獲取精度公差結(jié)果,。

二、 該軟件的構(gòu)件關(guān)系
  本軟件的設計是以VB6.0為客戶,,MATLAB6.5與AUTOCAD為服務器來共同完成的,。利用VB的可視化設計構(gòu)建人機對話界面,,利用MATLAB的圖形處理功能和強大的編程功能完成軟件核心處理,而后利用AUTOCAD的圖形標注和測量功能完成圖像數(shù)據(jù)的獲得,。
  對AutoCAD對象控制[1]:acaddoc.sendcommand "符合Autocad 的指令" ,;該命令可以向AutoCAD發(fā)出指令調(diào)用且執(zhí)行該指令。
  對MATLAB的對象控制[2]:在將MATLAB作為服務器利用ActiveX技術(shù)進行調(diào)用時,,在操作系統(tǒng)的注冊表中只有以下三個函數(shù)可以用,。
1) matlab.execute “ MATLAB格式的程序”;該句用于執(zhí)行MATLAB的命令
2) matlab.getfullmatrix(“a”, “base”, “mreal”,“mimag”),;該句用于執(zhí)行從MATLAB中讀出距陣的數(shù)值,,放在數(shù)組a中,mreal為距陣的實部,,mimag為距陣的虛部,。
3) matlab.putfullmatrix(“a”, “base”, “mreal”,“mimag”);該句用于執(zhí)行把外部的數(shù)組讀入到MATLAB中距陣的數(shù)值,,放在距陣a中,,mreal為距陣的實部,mimag為距陣的虛部,。
  在VB中應用符合MATLAB與AutoCAD的命令,,首先必須建立VB與MATLAB,VB與AutoCAD之間的聯(lián)系,。這是通過在VB中書寫公用變量聲名的方式來實現(xiàn)的,。
  其核心程序為:
Public matlab As Object ;全局變量聲名
Public acaddoc As Object
Public mdspace As Object
Public acadapp As Object
Public acadutil As Object
On Error Resume Next ,;對于matlab的打開,、聲明和錯誤處理
Set matlab = GetObject( "matlab.application"
If Err Then
Err.Clear
Set matlab = CreateObject("matlab.application"
If Err Then
MsgBox "軟件不能打開MATLAB,請重試!"
Exit Sub
End If
End If
以下是autocad的引用,對AutoCAD的打開,、聲明和錯誤處理
On Error Resume Next
Set acadapp = GetObject(, "autocad.application"
If Error Then
Err.Clear
Set acadapp = CreateObject("autocad.application"
If Err Then
MsgBox "無法引導AUTOCAD,請檢查是否已安裝了AUTOCAD2000."
End If
End If
Set acaddoc = acadapp.activedocument ,;設置autocad的具體工作情況
Set mdspace = acaddoc.modelspace
Set acadutil = acaddoc.utility
acadapp.Visible = False

三、 軟件的核心算法
1,、 灰度圖像的算法
  邊緣是指其周圍象素灰度有階躍變化或者屋頂變化的那些要素的集合[4],。求解二維實函數(shù)的梯度后選擇合適的閾值提取邊緣的方法稱為梯度閾值法。這種微分算法運算簡單,,但抗干擾能力差,。經(jīng)典的邊緣檢測方法是考察圖像的每個像素的某個領(lǐng)域內(nèi)灰度的變化,利用邊緣鄰近一階或二階導數(shù)變化規(guī)律,,用簡單的方法檢測邊緣,,該方法常被稱為邊緣檢測局部算子。
  Roberts算子的基本原理:
  對數(shù)字圖像的灰度函數(shù)為Z=f(x,y),x和y分別為像素的坐標,。若在坐標點(x,y)處有邊緣,,則利用f(x,y)在x與y方向上的變化率可以算出其變化最快的方向,即梯度方向,。
  若考慮數(shù)字圖像的離散域,,可以直接用圖像的一階差分代替圖像函數(shù)的偏導數(shù),二維離散圖像函數(shù)在x方向與y方向的一階差分分別定義為f(x+1,y)-f(x,1)與f(x,y+1)-f(x,y),。

2、 二值圖像的算法
  二值圖像中所有的像素只能從0和1這兩個值中取值,,因此,,在MATLAB中,二值圖像用一個由0和1組成的二維矩陣來表示,。它們分別代表著關(guān)閉和打開,,關(guān)閉表示該像素處于背景,而打開表示該像素處于前景,。以這種方式來進行操作圖像更容易識別出圖像的結(jié)構(gòu)特征,。

四、 該軟件的操作方法
  首先是,,原照片圖像的獲取工作,。可以是彩色照片也可以是黑白照,,它們都是模擬圖像,,如果想要對其進行處理就必須先將其轉(zhuǎn)換為數(shù)字圖像。其次,,是圖像的預處理,。用戶可以通過該軟件進行各種圖像格式的剪裁、翻轉(zhuǎn),、比例調(diào)整,、濾波,二值圖像的腐蝕處理,、膨脹處理,、直方圖的均衡化等等。再次,,是灰度圖像的處理,。用戶可以根據(jù)自己的需要通過比較各種算子的處理結(jié)果來確定所獲取的圖像,及而是對灰度果圖像的處理結(jié)果進行圖像的擬合重構(gòu)分析,。如果用戶對灰度圖像的處理結(jié)果不滿意,,可以通過二值圖像操作菜單欄進行二值圖像的相關(guān)操作;在這里用戶可以進行,二值圖像的骨架化處理,,其精度可以高達一個象素級,。接下來,用戶將進行的是圖像幾何尺寸的重構(gòu)和公差的計算顯示,。在此處,,用戶可以通過點擊菜單欄相應的內(nèi)容獲取,其點擊的順序是從上向下依次序點擊,。最后,,在相關(guān)信息菜單欄用戶可以通過點擊獲取已打開的圖片信息,圓度公差表以及該軟件的版權(quán)聲明信息,。

五,、 一個簡單的實例
1.該軟件的安裝
  單擊setup.exe,依照一般軟件的安裝方式就可以完成安裝,。初始密碼為:111111,。 圖1 安裝界面
圖2 初始界面
2.該軟件的操作
  依照該軟件的相關(guān)菜單就可以完成操作。其順序為:圖像的預處理,,灰度處理(或二值處理),,數(shù)據(jù)重構(gòu),公差獲得,。
  以一個茶杯的照片為例:茶杯直徑為35mm;其點陣1024×768像素 圖3 原始圖像 圖4 灰度圖像剪裁(488×488像素) 圖5 該照片的灰度直方圖
圖6 灰度算子獲取輪廓邊界 圖7 圓形的重構(gòu)
  結(jié)果分析:外包絡圓直徑為像素492,;內(nèi)包絡圓直徑為像素486;該茶杯的圓度公差為6個像素,,即0.05mm,。該結(jié)果與實測結(jié)果基本吻合。

3.注意事項
  該軟件要求用戶系統(tǒng)中必須安裝MATLAB和AUTOCAD,;如果沒用安裝其中的任何一個,,本軟件將提示用戶不可正常工作的原因。

六,、 結(jié)束語
  通過以上分析,,文中已經(jīng)清晰地構(gòu)建出了該軟件的系統(tǒng)模型。文中同時給出了核心部分程序的基本算法以及三個軟件的調(diào)用申請指令,;這對于圖形圖像軟件的開發(fā)者來說,,具有較好的參考價值。實踐表明,,本軟件運行結(jié)果真實,、有效,具有很強的實用性,。

參考文獻
[1] 胡海青等 著.Autocad的設計與二次開發(fā)[M].北京:化學工業(yè)出版社,,2001,3.
[2] 王曉丹,吳崇明 編著.基于MATLAB的系統(tǒng)分析與設計——圖像處理[M].西安:西安電子科技大學出版社,,2004,,5.
[3] 張兆禮,趙春暉,梅曉丹. 現(xiàn)代圖像處理技術(shù)及Matlab 實現(xiàn)[M]. 北京:人民郵電出版社, 2001,5.
[4] 張杰.一種實用的二值圖像細化算法[J]. 計算機應用及軟件,1998,(12):28-32.

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。