《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA的Sobel邊緣檢測應用
基于FPGA的Sobel邊緣檢測應用
來源:電子技術應用2011年第8期
張麗紅1,2,凌朝東1,2
1.華僑大學 信息科學與工程學院,福建 廈門361021; 2.廈門市專用集成電路系統重點實驗室,福建 廈門 361008
摘要: 針對目前數字圖像處理速度慢的問題, 提出了一種基于 FPGA器件的 Sobel 邊緣檢測實現方案。Sobel 邊緣檢測分別在FPGA和MATLAB上仿真實現,仿真結果表明,該方案可以大幅提高Sobel 邊緣檢測的速度,并且獲得了很好的邊緣檢測效果。最后列舉了一個基于FPGA器件的Sobel邊緣檢測的應用實例。
中圖分類號: TN911.73;TP391.41
文獻標識碼: B
文章編號: 0258-7998(2011)08-0026-04
Application of Sobel edge detection based on FPGA
Zhang Lihong1,2,Ling Chaodong1,2
1.College of Information Science & Engineering, Huaqiao University, Xiamen 361021,China; 2.Key Laboratory of ASIC and System of Xiamen,Xiamen 361008,China
Abstract: Considering the slow speed of recent digital image processing, a new design scheme of Sobel edge detection based on FPGA device was proposed. Sobel edge detection was respectively implemented on MATLAB and FPGA, Simulation result showed that the scheme can greatly increase the speed of Sobel edge detection and acheive a good effect. Finally, an application example of Sobel edge detection based on FPGA device was given.
Key words : Sobel;MATLAB;FPGA;edge detection;DE2-70


    邊緣檢測是圖像處理、計算機視覺的基礎內容;是圖像分析與識別的重要環節;是目標檢測、圖像分割所依賴的重要特征。在 PC機上,MATLAB是圖像處理的強大工具,如何將成熟的算法轉移到嵌入式系統上實現是急需解決的問題。在實時圖像處理中,用Sobel算子進行物體的邊緣檢測是經常用到的算法, 由于對處理速度要求較高且算法處理的數據量較大,用一般的軟件實現會比較慢, 無法達到實時系統的要求。而使用FPGA芯片, 用硬件實現對底層的圖像預處理可提高圖像處理的速度, 滿足系統實時要求。FPGA技術的關鍵就是利用強有力的設計工具以縮短開發周期,提高器件資源利用率,提供綜合器的選擇(例如在最佳速度和設計規模之間做出選擇)。隨著FPGA 芯片技術的進步, 其價格逐步降低,而性能迅速增強, 這為使用 FPGA 芯片搭建圖像處理平臺提供了可能[1]。
1 Sobel邊緣檢測算法
    Sobel算法是一種較成熟的微分邊緣檢測算法,它計算簡單,且能產生較好的檢測效果, 對噪聲具有平滑作用, 可以提供較為精確的邊緣方向信息[2]。
    Sobel 邊緣檢測算子使用兩個方向算子(垂直算子和水平算子),如圖1所示。其原理是分別用這兩個算子對圖像進行卷積運算,得到兩個矩陣,再求這兩個矩陣對應位置的兩個數的均方根,得到一個新的矩陣,即為灰度圖像矩陣中各個像素點的梯度值。最后將梯度值與門限T進行比較,當梯度值≥T時,規定該點的灰度值為255,反之為0。

    根據Sobel算子邊緣檢測的原理可得出如圖2所示的Sobel邊緣檢測算法框圖。對一幅圖像進行Sobel邊緣檢測時,首先要利用Sobel算子計算出水平梯度和垂直梯度,這涉及到卷積運算。然后再把兩個方向的梯度結合起來,這就涉及到均方根運算,最后進行門限處理來判斷圖像邊緣并輸出邊緣檢測結果,這部分可通過編寫Verilog HDL代碼實現[3]。

2 Sobel 邊緣檢測的硬件實現
    Sobel邊緣檢測的硬件實現系統應包含梯度計算模塊和門限處理模塊,其中梯度計算模塊可分為圖像行緩沖模塊和卷積計算模塊。此外,各個模塊功能的實現可通過調用 Quartus II軟件提供的各種宏功能模塊(Megafunctions)來實現,如圖3所示。

 

 

2.1 圖像行緩沖模塊器
    梯度計算模塊主要完成兩個Sobel算子分別與圖像像素矩陣(3×3窗口)的卷積運算。首先要構造3×3圖像像素矩陣,要完成這個功能,必須引入一個容量足夠大的存儲單元來緩沖串行輸入的圖像數據流, 并把串行圖像數據轉化為并行的3行圖像數據,這樣在3個像素時鐘后就可以得到3×3圖像像素矩陣。以往常使用先入先出棧(FIFO)作為圖像數據的緩沖器[4],但對 FIFO的讀寫操作較為復雜。本文通過調用Quartus II軟件提供的基于RAM移位寄存器宏模塊altshift_taps也能實現同樣功能。
    altshift_taps宏模塊是一個可配置的、具有抽頭(Taps)輸出的移位寄存器,每個抽頭在移位寄存器鏈的指定位置輸出數據。對MATLAB常用的256×256圖像進行Sobel邊緣檢測,altshift_taps模塊參數設置為8 bit輸入/8 bit輸出、3抽頭,相鄰兩個抽頭相距256個寄存器,如圖4所示。其中相鄰兩個抽頭的距離是根據圖像的大小來設置的,例如在硬件下載仿真上,TRDB-LTM液晶屏能正常顯示的圖像大小是800×480,此時抽頭距離應設置為800。

2.2 卷積計算模塊
    卷積計算模塊是為了得到水平、垂直兩個方向的梯度值,要實現卷積運算需要做大量的乘法和加法運算。如果采用以往分立的D觸發器和加法器以及乘法器來完成[5],但其結構復雜。本文通過調用 Quartus II軟件提供的宏功能模塊中的可編程乘加器 altmult_add和可編程多路并行加法器 parallel_add來實現。
    卷積運算的具體實現是垂直算子和水平算子使用并行結構,與altshift_taps宏功能模塊輸出的數據同時相乘并相加,需用到6個可編程乘加器altmult_add模塊,其參數設置如圖5所示,得到的6個數據可分為水平和垂直兩組各3個。再將這兩組數據分別送往可編程多路并行加法器parallel_add模塊,其參數設置如圖6所示,得到兩個數據。最后通過調用浮點平方根altfp_sqrt模塊來計算這兩個數據的均方根,即得到3×3 窗口中心點像素的梯度值,該模塊的參數設置如圖7所示。該方法可以保證每個周期輸出一個像素點的Sobel 梯度值。此外,所用到的這些模塊可以根據系統設計需求靈活選用[6]。

2.3 門限處理模塊
    門限處理模塊編寫的Verilog HDL代碼實現如下:
reg [9:0] cnt;
always@(posedge iCLK, negedge iRST_N)
begin
    if (!iRST_N)
    begin 
        oDVAL <= 0; cnt<=10'b0;
    end
    else
    begin
        if(cnt==10'd768) //3*256=768
        begin 
            oDVAL<=iDVAL; cnt<=10'b0;  end
        else  cnt<=cnt+10'b1;
        if (oDVAL)
        oDATA<=(Abs_mag< iTHRESHOLD) ? 0 : 1023;
        else  oDATA <= 0;
    end
end
    該模塊檢測到的邊緣數據需經過3行時間的延時才能輸出,如圖8中間線處的時間為15.4 &mu;s,是第769個周期。如果不延時,仿真出來的圖像會出現上下偏移的現象。延時產生的原因是移位寄存器宏功能模塊altshift_taps填充需要的延時和門限處理需要的延時。

3 軟件仿真和分析
    為了更加直觀地驗證Sobel 邊緣檢測的FPGA硬件實現效果,本文采用 MATLAB 和 Modelsim 進行混合仿真[7],并與Sobel 邊緣檢測的MATLAB實現進行比較。
3.1 Quartus II編譯
    在Quartus II中編譯整個工程,產生Modelsim仿真測試時所需的文件*.vo和*.sdo。本文選用Altera公司的Cyclone II 系列FPGA EP2C70F896C6器件,利用 Quartus II 7.2軟件完成Sobel邊緣檢測的 FPGA系統設計。圖9給出了該系統所消耗的資源情況,從中可以看出,該系統僅僅占用了芯片1%的邏輯單元,剩余的資源可以用來實現更復雜的功能。

3.2 Modelsim測試
    在Modelsim中編寫測試文件,并存儲檢測到的邊緣數據。系統仿真的時鐘信號設為50 MHz,處理一幅256&times;256的8 bit圖像, 所需時間為1.3 ms,則每秒可處理圖像為770幅, 達到了實時系統的要求, 解決了普通計算機運算需時長的問題。
3.3 MATLAB處理
    最后將Modelsim存儲的數據經過MATLAB處理,得到邊緣圖像。圖10是閾值為150時lena圖像的仿真情況。
3.4 仿真結果分析
    由圖10可知,(a)是原始圖像,(b)是Sobel 邊緣檢測的MATLAB實現,(c)是Sobel 邊緣檢測的FGPA實現。比較(b)和(c)可以看出,在邊緣檢測效果方面,硬件時序仿真結果和MATLAB處理結果是一致的。這是因為原始圖像也是采用8 bit定點存儲格式,所以沒有量化精度的損失,即該設計取得了很好的邊緣檢測效果。

4 Sobel邊緣檢測的FPGA應用
4.1 開發環境

    開發環境的硬件驗證平臺是DE2-70開發板,其目標芯片是Altera公司的Cyclone II系列中的 EP2C70-
F896C6N型FPGA器件。該板可外接TRDB-D5M攝像頭和彩色TRDB-LTM 觸摸屏。
4.2 系統結構框架
    圖11是整個系統結構框架,其中虛線部分是Altera公司的FPGA。該系統將TRDB-D5M攝像頭采集的圖像數據送FPGA板進行處理,并在TRDB-LTM液晶屏上顯示。

4.3 系統仿真結果
    該系統可以調整曝光值和閾值,選擇是否鏡像,控制顯示的圖像為彩色模式、灰階模式或者Sobel邊緣檢測模式。圖12、圖13的四幅圖像依次為彩色模式、灰階模式和Sobel邊緣檢測模式下當閾值分別為3和96時的圖像。

    從仿真結果及實驗所得到的圖像來看, 該系統較好地完成了Sobel 算子邊緣檢測的任務。實驗結果表明,使用 FPGA 器件能較為準確地檢測出有用的邊緣信息,即能較好地完成圖像處理的邊緣檢測工作。
    該設計利用可編程的FPGA模塊完成Sobel 邊緣檢測的硬件設計。該方法既避免了自己編寫大量程序代碼的繁瑣,又獲得了很好的綜合和實現結果。在系統構建時,各功能模塊具有良好的移植性和系統擴展性。且使用的邏輯門個數少,占用很少系統資源,可以在FPGA 上完成更多更復雜的圖像處理工作,為FPGA 單芯片圖像處理系統的實現提供了條件。

參考文獻
[1] 宇野由麻子,大石基之,成英.FPGA產品市場現狀與展望[J].電子設計應用,2004(12):63-72.
[2] SHARIFI M,FATHY M,MAHMOUDI M T.A classified  and comparative study of edge detection algorithms[A].Proceedings of the International Conference on Information Technology:Coding and Computing[C].Iran,2002:117-120.
[3] 夏宇聞.Verilog數字系統設計[M].北京:北京航空航天大學出版社,2003.
[4] 官鑫,王黎,高曉蓉,等.圖像邊緣檢測Sobel算法的FPGA仿真與實現[J].現代電子設計,2009(8):109-111.
[5] 艾揚利,楊兵.基于FPGA的Sobel算子并行計算研究[J].現代電子技術,2005,28(9):50-51.
[6] 李明,趙勛杰,毛偉民.Sobel邊緣檢測的FPGA實現[J]. 現代電子技術,2009,16:44-46.
[7] 杜勇,劉帝英.Matlab在FPGA設計中的應用[J].電子工程師,2007,33(1):9211.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
美玉足脚交一区二区三区图片| 国产精品久久久久久模特 | 国产亚洲精久久久久久| 国产精品一区二区在线观看网站| 欧美三日本三级少妇三2023| 欧美日韩成人精品| 欧美另类高清视频在线| 欧美激情在线免费观看| 欧美激情一区二区三区四区| 欧美激情国产日韩精品一区18| 欧美高清视频在线| 欧美精品不卡| 欧美午夜电影一区| 国产精品多人| 国产女人18毛片水18精品| 国产欧美成人| 国产亚洲第一区| 黄色亚洲网站| 亚洲国产精品女人久久久| 最新国产乱人伦偷精品免费网站| 91久久精品美女| 日韩亚洲精品视频| 亚洲视频在线看| 亚洲欧美国产va在线影院| 午夜欧美大尺度福利影院在线看| 先锋资源久久| 亚洲国产另类久久久精品极度| 亚洲人成毛片在线播放| 一级成人国产| 香蕉久久a毛片| 久久久久国产精品一区三寸| 看欧美日韩国产| 欧美人与性动交cc0o| 欧美午夜片在线免费观看| 国产精品夜夜夜| 国产自产精品| 亚洲国产精品一区二区三区| 一区二区三区精品| 香蕉视频成人在线观看| 亚洲第一区在线| aa日韩免费精品视频一| 小黄鸭精品aⅴ导航网站入口| 午夜综合激情| 免费观看成人| 国产精品成人在线| 国内精品久久久久久久影视蜜臀| 91久久国产综合久久蜜月精品| 亚洲色图综合久久| 欧美专区在线观看| 日韩视频一区| 欧美一区二区在线免费播放| 免费观看国产成人| 国产精品高潮在线| 极品尤物久久久av免费看| 亚洲精品自在久久| 亚洲欧美综合国产精品一区| 亚洲精品国产精品乱码不99| 亚洲新中文字幕| 久久精品视频在线看| 欧美日韩国产欧| 国产一区二区三区丝袜| 日韩视频在线免费| 欧美一区二区在线免费观看| 99视频精品| 久久久久久久999精品视频| 欧美日韩国内自拍| 国产噜噜噜噜噜久久久久久久久| 亚洲电影在线看| 亚洲欧美日韩国产综合在线| 亚洲美洲欧洲综合国产一区| 欧美一区二区三区四区高清| 欧美精品免费视频| 国产一区二区三区无遮挡| 亚洲精品在线电影| 久久精品一区| 欧美一级理论性理论a| 欧美金8天国| 狠狠久久综合婷婷不卡| 亚洲视屏一区| 99国产精品久久久久久久久久| 久久国产婷婷国产香蕉| 欧美体内she精视频| 亚洲大黄网站| 亚洲一区三区视频在线观看 | 欧美国产综合| 国产一区二区无遮挡| 一个人看的www久久| 亚洲欧洲在线一区| 久久久久久久成人| 国产欧美日韩精品一区| 一本色道久久综合亚洲精品不卡 | 久久不射中文字幕| 欧美色图一区二区三区| 亚洲大片免费看| 欧美影视一区| 欧美一区二区三区播放老司机| 欧美日韩一区二区免费视频| 亚洲第一久久影院| 亚洲高清激情| 久久天堂av综合合色| 国产亚洲精品一区二555| 亚洲在线中文字幕| 亚洲自拍电影| 欧美视频不卡中文| 亚洲精品乱码| 亚洲美女黄色片| 欧美高清在线观看| 精品电影在线观看| 欧美在线综合| 久久久久久久999精品视频| 国产欧美日韩不卡| 午夜老司机精品| 久久国内精品视频| 国产亚洲人成网站在线观看| 亚洲女同性videos| 欧美在线3区| 国产日韩在线一区二区三区| 亚洲一区欧美激情| 欧美一区二区三区视频在线观看| 国产精品伦一区| 亚洲一级片在线观看| 亚洲欧美国产高清va在线播| 国产精品国产三级国产专播品爱网 | 欧美日韩精品一二三区| 亚洲精品美女久久7777777| 日韩亚洲不卡在线| 欧美日韩精品系列| 在线视频你懂得一区| 亚洲欧美激情四射在线日| 国产精品日韩一区二区三区| 亚洲一区二区三区中文字幕| 香蕉久久夜色精品国产| 国产麻豆午夜三级精品| 亚洲欧美精品suv| 久久久久国内| 亚洲大胆人体视频| av72成人在线| 国产精品九九久久久久久久| 亚洲一区二区欧美日韩| 久久精品99| 伊人伊人伊人久久| 夜夜狂射影院欧美极品| 国产精品乱码| 欧美一区二视频在线免费观看| 久久一区二区三区四区五区| 亚洲国产精品女人久久久| 中文精品在线| 国产伦精品一区二区三区高清版| 性色av香蕉一区二区| 蜜桃精品久久久久久久免费影院| 亚洲激情二区| 亚洲欧美综合网| 韩国av一区二区三区| 夜夜精品视频一区二区| 国产精品久久久久久久久果冻传媒 | 久久aⅴ乱码一区二区三区| 国产一区日韩一区| 99这里只有久久精品视频| 国产九九精品视频| 亚洲国产综合在线| 欧美午夜电影一区| 久久av资源网| 欧美日韩国产成人在线| 午夜亚洲福利| 欧美精品国产一区二区| 亚洲一区二区三区四区在线观看| 久久久五月天| 一本色道久久综合狠狠躁的推荐| 久久国产精品毛片| 亚洲精品欧美极品| 久久精品国产精品亚洲精品| 亚洲精品久久在线| 久久国产加勒比精品无码| 亚洲精品一二区| 久久久国产午夜精品| 99视频超级精品| 另类激情亚洲| 亚洲网友自拍| 欧美黄色小视频| 午夜视频在线观看一区二区三区| 欧美激情第1页| 小嫩嫩精品导航| 欧美日韩天堂| 亚洲国产精品久久久久婷婷884| 欧美视频福利| 亚洲区一区二区三区| 国产日韩欧美视频在线| 一本色道久久综合| 韩国女主播一区二区三区| 亚洲愉拍自拍另类高清精品| 尤妮丝一区二区裸体视频| 亚洲欧美国产毛片在线| 亚洲级视频在线观看免费1级| 久久成人精品无人区| 亚洲免费av电影| 另类人畜视频在线| 欧美一级视频免费在线观看| 欧美视频一区二| 亚洲精品国产精品国自产在线 | 亚洲国产激情|