數位影像處理概念簡介
數位化影像處理,包括擷取影像(Acquisition Image),將之轉成數位化格式,進而透過電腦(Computer),加以處理、運算、分析或顯示影像。現階段,此種科技普遍且大量應用於科學性研究(Scientific)、醫學病理分析(Biomedical)與臨床診斷(Medical Visualization)、工業視覺檢測、甚致軍事用途(Military)等領域。當然,所謂影像處理(Image Processing)專有名詞,亦不全然僅限採用數位化處理方式,其它例如類比式(Analog)或光電式(Optical),也同時被應用於相關或不同場合,但對於面臨大量且複雜的影像資料,應用電腦技術,立即、有效且迅速地處理所取得之影像,卻是目前最具效益的處理方法之一。
在一般情況下,數位影像處理(Digital image processing)技術,主要是針對影像中已經存在但不清楚可見的重要訊息(information),利用加強處理(enhance)與資料分析(analyze),以便取得相關統計數據(statistical data)。後續再根據這些有效統計值,深入做比對以及再分析,並據以作決策工作(decision making)。
由於整個數位影像處理(Digital image processing),完全架構在電腦為主的系統上來進行處理,分析與決策作業,因此,不僅可以達到自動化(automation)及重覆性(repetitive)的作業或量測、分析,更可透過其它軟體,計算取得所需要的重要訊息或統計數據,並將結果(數據)進行儲存或經由網路傳送至其它目的地或儲存裝置,供日後讀取判讀分析。凡此種種,均可避免或降低因人為主觀上的誤判,而造成錯誤甚至不可彌補的決策。同時在數位影像處理方法裡,經由事先正確地校正(calibration)程序,便可以精確且反覆地從事影像量測與計算,並將結果或數據轉換為實際的物數量,例如公分(cm)、公尺(m)或其它單位。有別於採用傳統式的量規或制具,利用數位影像量測的技術,使用者可進行非接觸式(non-contact)量測與計算。
*應用領域
典型應用例子,如印刷品、紡織品或鋼板上瑕疵檢測、精密機械加工產品之尺寸或孔洞量測。在某些生產製程或流程中,透過數位影像處理來進行分類或等級篩選。工業機器人中,pick-and-place的全自動機台、以及醫學影像領域、遠端醫療視訊診斷、超音波影像診斷等,都是數位影像處理成功被採用的範例。
在農業方面,透過衛星影像(Sate Ilite image),擷取地球表面上農作物栽種面積的影像,進行分析比對,深入了解農作物生長的情況,如橘子,大致可獲得將來農作物收成的預期產量。
在電子業方面,應用影像/視覺檢測設備的自動化生產線,可即時檢驗與分析生產線上所產出之電路板(PCB)上,是否有缺件或不良等瑕疵品,在製程上,迅速得知最後的統計數據及確切的產品良率或產能(yields)。
在製造業方面,相同的技術,則可用來檢查罐子上的標纖是否位置正確、標纖上的製造日期是否正確、瓶蓋是否旋緊等,自動判斷或品管作業。嚴格說來,有關的應用例子,確實是不勝枚舉!!!
*系統組成單元
構成壹套數位影像處理系統的主要單元,包括壹部標準PC,搭配其它特殊的硬體及軟體。通常主要的輸入裝置是壹部攝影機(CCD),也是整個影像進行數位化流程中的首要單元。
類比式的攝影機,必須經由影像卡(frame grahber)轉換成數位化影像訊號。同樣地,數位式攝影機(攝影機內部,已經做類比/數位轉換),亦須透過影像卡,將攝影機送出之數位影像,同步並傳送至電腦內部主記憶體中。
上述兩種不同取像方式,所擷取產生之數位化影像檔案或資料,再藉由電腦內部之中央處理單元(CPU),進行處理或分析作業。在實際應用,若發生前面所提的中央處理單元(CPU)執行速率不夠快,導致完成運算產生結果之所耗費時間過於冗長,則採用配備硬體加速器之智慧型影像卡,是必要的選項之一。
至於顯示影像功能部份,大多數的系統均經由電腦上所配備之顯示卡(VGA)做動態或靜態之顯示動作。但某些影像卡,則直接配備圖形顯示晶片(Display controller),提供取像、處理以及影像顯示等三合一功能。
*如何架構壹套應用系統
以目前個人電腦(PC),結合Windows人性化的視窗使用者介面環境與平台上,一般使用者都可以相當輕易地進行影像卡與搭配軟體的按裝作業,隨插即用(plug-and-play),輕易地建立整套影像處理系統。若是針對系統整合商,例如祈求建立壹套工業視覺自動檢測裝置,則必須綜合考量找出合適的光源與光學鏡頭,軸控裝置以及應用導向的軟體,而構成最終解決方案(total solution)。
提供視窗介面(Windows based)的套裝軟體,除了提供上百個可立即上線操作的影像處理與分析工具外,更進一步支援巨集指令,供使用者自行撰寫高階的簡易程式集,以達到全自動執行的影像作業。
假若,上述之套裝工具軟體尚不足以完全適用或100%符合特定應用目的之所需,則程式設計者可以採用以〝C〞語言或者〝OCX呼叫〞支援的影像/視覺程式庫,搭配標準的物件導向程式語言,例如Visual Basic,進行應用程式開發與撰寫,最後,再輔以完善的人機操作介面,迅速地完成應用執行或系統工具開發整合。特別值得留意的是,毋論是基於何種因素或應用需求,而必須進行電腦化的影像處理相關工作,首先,要儘一切可能性確保原始影像良好,以利後續作業。重點包括使用適切的光源來進行必要的照明、高品質的攝影輸入設備、以及精確的影像介面卡。換個角度來看,若經由數位化的影像資料中,已失去所需要的資訊,或因其它種種因素,資料中同時存在太多的雜訊(noise),則再多的前處理技巧與作業,仍舊無法分析或計算出原先所期待的資訊或結果。一般說來,雜訊、模糊或對比不好、或打光不正確,均造成影像處理與分析上的困難度提高,亦或終究會影響或降低分析與量測的精確度。
在進行影像處理作業,比較低階(lower-level)的圖像處理(pixel processing)法則,大致區分為二種:包括neighborhood與point-to-point。顧名思義,所謂neighborhood處理是應用矩陣式或群族式的運算法則,而point-to-point則僅限於個別圖素(pixel)進行影像作業。
通常濾波作業(filters)常見於一般的影像處理方法中,主要是用來加強對比或進行特徵擷取(feature extraction)。例如,利用均化濾波(smoothing filter),可立即過濾影像中的雜訊(noise)或雪花效應。銳化濾波(Sharpening filter),則可使影像中邊緣(Edge)對比更清楚或加強效果。但由於個別影像之間,差異性大且多半不盡相同,選用最適當的濾波作業,或甚至必須自行設定特殊的濾波方法,處理特定的圖像資料,以達到最佳的結果,則必須由使用者自行決定與判斷。
*前處理方法與可行性
比較高階(Higher-level),應用導向(Application-oriented)的運算法則(Algorithms),諸如Blob分析、圖形辦識與比對(pattern recognition & matching)、量測(measurement)與定位(Alignment),則可讓使用者直接選用來從事影像處理與分析的工作,並自動搜集有效數據與統計數值。
但是,在進行上述運算法則之前,某些情況發生時,則有必要先作前處理作業,才能順利計算而取得所要結果。例如,待測工作表面上,光度分佈不圴勻,以致無法進行工作尺寸之量測。或者,當使用Blob分析法則進行顆粒數量計測時,少數顆粒之影像重疊,往往會造成錯誤的計算,得到不正確的數據結果!
在相關的前處理工具中,二值化(thresholding)是最經常被用來做前景/背景區隔之前處理技巧之一。它主要是利用改變或調整影像之對比與亮度值,來分辦整張圖像中欲處理與分析的物件,或使之呈現明顯的對比。而應用形態法則(morphology)、侵蝕(erosion)或膨漲(dilation),則可用來將相鄰或重疊之顆粒自動分離,以便得到正確的計數結果。
真正在進行影像處理與分析工作時,透過或多或少的trial-and-error過程,找出最好前處理及分析量測組合工具,通常是不可避免。然而,藉由套裝軟體中,所提的應用範例介紹或相關手冊說明,相關網站所提供的訊息瀏覽,甚至尋求供應商或代理商的技術支援,可能是一條比較快的捷徑與有效的解決方案。