FPGA的圖像處理技術(shù),你知道多少?
最近一段時(shí)間一直在研究基于FPGA的圖像處理,乘著EEPW這個(gè)機(jī)會(huì)和大家交流一下,自己也順便總結(jié)一下。主要是為了大家對(duì)用FPGA做圖像處理有個(gè)感性的認(rèn)識(shí),如果真要研究的話就得更加深入學(xué)習(xí)了。本人水平有限,如有錯(cuò)誤,歡迎大家批評(píng)指正。
本文引用地址:http://cafeforensic.com/article/185312.htm基于軟件的圖像處理方法存在著一些局限性,尤其是計(jì)算速度和算法效率方面。所以大家很自然的就想到了FPGA作為嵌入式圖像應(yīng)用的平臺(tái)。許多圖像處理本身就是并行計(jì)算的,并且FPGA的編程硬件,本質(zhì)上也是并行的。但是利用FPGA硬件進(jìn)行圖像處理存在很多的困難,需要學(xué)到很多的技巧。下面我介紹兩幾種比較基礎(chǔ)的圖像處理算法思想。
單幅圖像的點(diǎn)操作是圖像處理中最簡(jiǎn)單的操作,輸出值只取決于輸入值,與位置無(wú)關(guān),可以看作是一個(gè)函數(shù)的映射。從硬件實(shí)現(xiàn)的角度來(lái)說(shuō),最簡(jiǎn)單的方式就是通過(guò)一個(gè)實(shí)現(xiàn)函數(shù)的模塊對(duì)輸入的每個(gè)像素進(jìn)行依次處理,也就是流水化處理。每個(gè)像素都是單獨(dú)處理的,可以把圖像分為若干部分,每個(gè)部分單獨(dú)處理,所以點(diǎn)操作容易并行實(shí)現(xiàn)。點(diǎn)操作可作為讀取圖像和后續(xù)處理之間的一個(gè)橋梁。A:亮度調(diào)節(jié);為了使圖像變亮,可以增大輸出像素值,可以通過(guò)加一個(gè)常量實(shí)現(xiàn)。類似地,變暗減小像素值。但是實(shí)際中,調(diào)節(jié)亮度要復(fù)雜的多,因?yàn)槿说囊曈X(jué)系統(tǒng)是非線性的。B:對(duì)比度調(diào)節(jié);圖像的對(duì)比度受映射函數(shù)的斜率影響。斜率大于1增強(qiáng),小于1則降低,可以通過(guò)乘以一個(gè)大于或者小于1的常數(shù)實(shí)現(xiàn)。C:同時(shí)調(diào)節(jié)亮度和對(duì)比度;一個(gè)簡(jiǎn)單的調(diào)節(jié)它們的點(diǎn)操作是:Q=aI+b=a(I+b’),a,b是控制亮度和對(duì)比度的任意常數(shù)。當(dāng)Q超出范圍怎么辦?例如用8位表示像素值時(shí),Q超出0~255,那么輸出怎么辦?默認(rèn)情況下只取8位最低有效位并且忽略任何會(huì)導(dǎo)致值超出范圍的溢出位。通常還需要進(jìn)行飽和或者裁剪到極值效果會(huì)更好。
直方圖操作。使用直方圖的圖像處理有兩個(gè)相關(guān)的主要步驟。第一步是建立直方圖,第二步是從直方圖中提取數(shù)據(jù)并用它來(lái)處理圖像。A建立直方圖:對(duì)每個(gè)像素值累計(jì)計(jì)數(shù)。通過(guò)計(jì)數(shù)器數(shù)組完成計(jì)算每個(gè)像素值出現(xiàn)的次數(shù)。這個(gè)方法的缺點(diǎn)是占用的硬件資源比較多,適合閾值后的直方圖計(jì)算??梢允褂秒p口存儲(chǔ)器實(shí)現(xiàn),可以大大減少邏輯資源的使用。B直方圖均衡化(使用局部信息來(lái)分配那些在輸出像素值的范圍上具有大的計(jì)數(shù)值的輸入值的像素來(lái)獲得更平坦的直方圖):實(shí)現(xiàn)直方圖均衡化的映射是歸一化累積直方圖。直觀地,如果輸入點(diǎn)集合的計(jì)數(shù)值大于平均值,那么映射的斜率大于1,反之,小于1。
局部濾波器。局部濾波器擴(kuò)展點(diǎn)操作,以一個(gè)局部窗口內(nèi)像素值的函數(shù)運(yùn)算結(jié)果作為輸出。窗口的大小、形狀可以隨意,但是一般都是采用奇數(shù)正方形的,我見(jiàn)過(guò)最多的就是3x3,5x5,7x7,這樣的話中心就很容易確定。局部濾波器有去噪、邊緣檢測(cè)、邊緣增強(qiáng)等。線性去噪有排序去噪,均值去噪,加權(quán)均值去噪等,邊緣檢測(cè)可以利用Prewitt,Sobel算子等,將這些算法在3x3窗口中實(shí)現(xiàn),相對(duì)來(lái)說(shuō)就比較容易了。也可以改進(jìn)這些算法,是寫(xiě)小論文比較好的創(chuàng)新點(diǎn)。還有一些形態(tài)學(xué)濾波器,顏色濾波器,大致思想都一樣,就是實(shí)現(xiàn)的時(shí)候算法改一下。
我個(gè)人感覺(jué)基于FPGA的圖像處理相對(duì)來(lái)說(shuō)比較專業(yè),比較難,同時(shí)這里面的知識(shí)也比較多,適合做研究。我最近看的一本書(shū)是《基于FPGA的嵌入式圖像處理系統(tǒng)設(shè)計(jì)》,國(guó)外《Design for Embedded Image Processing on FPGAs》(作者Bailey)的翻譯本,翻譯水平一般,有些地方看中文版的看不懂,一看英文版的就明白了。我把英文版的電子文檔上傳到了eepw下載區(qū)。http://forum.eepw.com.cn/thread/243584/1。 初學(xué)者可以使用DSP Builder建立Simulink模型,然后它可以自動(dòng)轉(zhuǎn)換為VHDL或者verilog代碼,然后再學(xué)習(xí)和修改那個(gè)代碼,這樣的話入門可以更快一點(diǎn)。如有錯(cuò)誤,大家多多指正。Eepw ID:lhzh7。
濾波器相關(guān)文章:濾波器原理
fpga相關(guān)文章:fpga是什么
濾波器相關(guān)文章:濾波器原理
存儲(chǔ)器相關(guān)文章:存儲(chǔ)器原理
塵埃粒子計(jì)數(shù)器相關(guān)文章:塵埃粒子計(jì)數(shù)器原理 數(shù)字濾波器相關(guān)文章:數(shù)字濾波器原理
評(píng)論