《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于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亚洲国产精品_日韩亚洲一区二区
久久精品91久久久久久再现| 亚洲一区制服诱惑| 日韩视频在线一区二区三区| 一区二区在线看| 国产日产欧产精品推荐色| 国产精品成人一区二区三区吃奶| 欧美 日韩 国产 一区| 久久亚洲春色中文字幕久久久| 欧美亚洲一区二区在线| 亚洲免费视频在线观看| 亚洲永久视频| 亚洲综合色噜噜狠狠| 亚洲午夜三级在线| 亚洲专区国产精品| 亚洲欧美视频在线观看视频| 亚洲一区二区三区四区中文| 中日韩高清电影网| 一区二区欧美在线| 国产精品99久久久久久久女警| 日韩亚洲欧美成人一区| 99riav久久精品riav| 制服丝袜亚洲播放| 亚洲一区在线观看视频 | 影音先锋日韩精品| 在线成人激情| 91久久在线观看| 日韩视频在线免费| 中文在线资源观看视频网站免费不卡| 一区二区国产在线观看| 亚洲欧美日韩精品久久亚洲区 | 久久国产主播| 久久亚洲精品网站| 米奇777超碰欧美日韩亚洲| 久色成人在线| 欧美片在线播放| 国产精品久久看| 国产午夜精品视频| 在线观看日韩专区| 亚洲老司机av| 亚洲尤物在线| 久久都是精品| 一区二区三区www| 欧美一区二区三区免费在线看| 久久免费视频这里只有精品| 欧美电影免费观看高清| 欧美日韩直播| 国产午夜精品久久久久久免费视| 在线不卡欧美| 一区二区av| 欧美怡红院视频| 日韩午夜av电影| 欧美一级二区| 欧美电影免费观看高清| 国产精品久久久久久久久搜平片| 国产一区久久久| 亚洲乱码一区二区| 欧美一区二区精美| 99天天综合性| 久久国产视频网站| 欧美精品入口| 国产一本一道久久香蕉| 日韩视频久久| 久久黄色影院| 亚洲一区www| 美女精品一区| 国产精品免费网站| 亚洲第一毛片| 午夜天堂精品久久久久| 99精品国产一区二区青青牛奶 | 国产精品色一区二区三区| 精品二区视频| 中文一区在线| 91久久久久久| 欧美一区二区三区在线看 | 欧美日韩在线播放三区四区| 国产一区二区三区黄视频| 日韩视频中文字幕| 久久国产精品久久国产精品| 亚洲手机在线| 欧美成人按摩| 国产一区二区在线观看免费播放| 亚洲开发第一视频在线播放| 亚洲电影在线播放| 欧美一级欧美一级在线播放| 欧美激情精品久久久久久| 国产亚洲午夜高清国产拍精品| 一本色道88久久加勒比精品| 91久久精品一区| 久久婷婷成人综合色| 国产精品―色哟哟| 99re热这里只有精品免费视频| 亚洲国产精品va在看黑人| 欧美一区二区精品在线| 欧美日韩在线观看一区二区| 在线欧美日韩国产| 欧美中文字幕| 欧美中文日韩| 国产精品拍天天在线| 亚洲美女视频| 亚洲精品美女在线| 美女视频黄a大片欧美| 国产一区二区三区久久久| 亚洲主播在线观看| 亚洲深夜影院| 欧美色播在线播放| 亚洲精品视频中文字幕| 亚洲国产日韩欧美综合久久| 欧美一区二区三区在线免费观看 | 亚洲性夜色噜噜噜7777| 欧美国产精品劲爆| 亚洲二区在线观看| 亚洲人成网站在线播| 老鸭窝毛片一区二区三区| 国内精品美女av在线播放| 亚洲欧美高清| 新狼窝色av性久久久久久| 国产精品久久久久久久久免费樱桃| 亚洲美女中文字幕| 亚洲少妇一区| 欧美午夜电影在线| 一区二区三区视频观看| 亚洲一区二区三区欧美| 欧美三级日本三级少妇99| 亚洲精品综合精品自拍| 夜夜嗨av一区二区三区网站四季av | 午夜亚洲影视| 久久精品中文| 国产综合香蕉五月婷在线| 欧美在线看片| 久热成人在线视频| 在线看一区二区| 日韩视频精品| 欧美性事免费在线观看| 一区二区三区欧美在线观看| 亚洲欧美制服另类日韩| 国产精品色婷婷久久58| 篠田优中文在线播放第一区| 久久国产主播精品| 精品av久久久久电影| 亚洲日本理论电影| 欧美全黄视频| 亚洲色诱最新| 久久国产精品久久久| 影音先锋另类| 99精品视频一区二区三区| 欧美日韩一区二区国产| 亚洲一区视频在线| 久久婷婷综合激情| 亚洲国产婷婷香蕉久久久久久99| 一本色道久久99精品综合| 欧美性一区二区| 欧美一区二区三区免费大片| 狂野欧美激情性xxxx| 亚洲精品一二三| 午夜精品久久久久久久男人的天堂| 国产日产欧产精品推荐色| 亚洲国产日韩欧美一区二区三区| 欧美激情自拍| 亚洲欧美日韩视频一区| 免费成人黄色av| 一区二区激情| 久久久亚洲国产美女国产盗摄| 亚洲成人在线观看视频| 亚洲一区二区在线免费观看视频| 国产日韩欧美综合一区| 亚洲精品偷拍| 国产精品免费观看视频| 久久国产精品毛片| 欧美日韩国产综合视频在线观看中文| 亚洲一区精品电影| 浪潮色综合久久天堂| 亚洲乱码国产乱码精品精可以看| 性欧美超级视频| 亚洲国产欧美国产综合一区| 亚洲欧美综合另类中字| 在线欧美日韩精品| 午夜精品美女自拍福到在线| 在线 亚洲欧美在线综合一区| 亚洲一级网站| 在线电影院国产精品| 亚洲免费网址| 91久久线看在观草草青青| 香蕉久久一区二区不卡无毒影院| 在线色欧美三级视频| 亚洲综合视频一区| 亚洲国产精品久久| 久久9热精品视频| 亚洲精品一二三| 久久久一二三| 亚洲影院色在线观看免费| 欧美多人爱爱视频网站| 亚洲欧美三级在线| 欧美日韩一区在线播放| 亚洲国产另类 国产精品国产免费| 欧美先锋影音| 99精品国产在热久久下载| 狠狠色狠狠色综合日日五| 亚洲欧美激情视频| 亚洲乱码国产乱码精品精可以看| 久久久成人精品|