SOPC技術(shù)在視覺(jué)測(cè)量中的設(shè)計(jì)方案與應(yīng)用
2.3 系統(tǒng)軟件的設(shè)計(jì)
本系統(tǒng)的控制流程相對(duì)簡(jiǎn)單,因此在 Nios II軟核中沒(méi)有內(nèi)嵌操作系統(tǒng),而是通過(guò) IO操作調(diào)用中斷的方式實(shí)現(xiàn)運(yùn)行狀態(tài)的控制、數(shù)據(jù)通信、協(xié)調(diào)外設(shè)等基本操作,控制系統(tǒng)各硬件模塊,使系統(tǒng)軟硬件協(xié)同工作。整個(gè)系統(tǒng)搭建成功之后,在 PC機(jī)上編寫應(yīng)用程序?qū)φ麄€(gè)SOPC系統(tǒng)的運(yùn)行進(jìn)行控制。
3 系統(tǒng)算法的具體實(shí)現(xiàn)
3.1 濾波模塊
根據(jù)所采集到的圖像的特點(diǎn),本文采用 3×3的模板實(shí)現(xiàn)中值濾波,這種方法不僅可以濾除圖像中的噪聲,而且可以將邊緣信息很好的保留下來(lái)。一般求取中值的方法是采用取冒泡法排序,但這種算法并不適合硬件實(shí)現(xiàn)??紤]到硬件實(shí)現(xiàn)的特點(diǎn)和效率,本文采用了一種全新的求取中值的算法,其原理如圖 3所示。其中 max、mid、min分別表示三輸入的最大值、中值和最小值比較器。最后經(jīng)幾輪比較后求得中值。
3.2 邊緣提取模塊及二值化模塊
邊緣提取采用 Roberts算子。 Roberts邊緣檢測(cè)算子利用局部差分算子尋找邊緣,其計(jì)算由式 1給出。
由于待處理圖像特征明顯,采用經(jīng)驗(yàn)閾值法對(duì)圖像進(jìn)行二值化,算法簡(jiǎn)單、實(shí)現(xiàn)方便。
3.3 邊緣細(xì)化模塊
本文的邊緣是建立在二值化之后的,因此處理的圖像都是二值化的,邊緣非常清晰,不需要太復(fù)雜的算法。這里采用兩個(gè) 3×3模板作乘積,如圖所示, X為待處理像素。如果模板乘積不為 0,于是中心象素為 1,反之為 0,即點(diǎn)的周圍有灰度為 0的象素,則保留此點(diǎn),否則剔除。如此很容易得到二值化后點(diǎn)的單象素邊緣。
3.4 后續(xù)處理部分
后續(xù)處理部分由于其數(shù)據(jù)處理量并不大且算法比較復(fù)雜,所以在本系統(tǒng)中,這部分算法在 NiosⅡ中以軟件的方法實(shí)現(xiàn)。由于篇幅所限,在此不作詳細(xì)介紹。
4 系統(tǒng)測(cè)試結(jié)果的分析與總結(jié)
圖 4為原始圖像。圖 5為處理后的最終圖像,點(diǎn)中心已經(jīng)標(biāo)注如圖所示。
經(jīng)測(cè)試,本系統(tǒng)所有算法用 C語(yǔ)言在 PC機(jī)(配置: Pentium( R) 4 CPU 3.00GHz, 512MB內(nèi)存)上實(shí)現(xiàn),所需時(shí)間為 2'12",而本系統(tǒng)僅需 30",其中主要耗時(shí)為 NiosII軟件處理部分,系統(tǒng)的硬件算法部分所耗時(shí)間不到 1"。
本文作者創(chuàng)新點(diǎn):一是采用 FPGA設(shè)計(jì)硬件模塊實(shí)現(xiàn)圖像預(yù)處理算法,這是視覺(jué)測(cè)量系統(tǒng)在處理效率上的創(chuàng)新;二是在系統(tǒng)中加入Nios II CPU,用以 FPGA難以實(shí)現(xiàn)的算法,從而使基于 SOPC技術(shù)的視覺(jué)測(cè)量系統(tǒng)更具靈活性,這是視覺(jué)測(cè)量系統(tǒng)在靈活性方面的創(chuàng)新?;谝陨蟽牲c(diǎn)創(chuàng)新設(shè)計(jì)的視覺(jué)測(cè)量系統(tǒng)兼顧了效率和靈活性,為視覺(jué)測(cè)量系統(tǒng)的設(shè)計(jì)和研究提供了一種新的思路。
評(píng)論