《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于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亚洲国产精品_日韩亚洲一区二区
亚洲第一搞黄网站| 午夜精品成人在线视频| 国产精品亚洲视频| 欧美日本中文字幕| 欧美福利在线| 麻豆免费精品视频| 久久一区二区视频| 久久三级福利| 久久午夜色播影院免费高清| 久久精品首页| 久久国产精品99精品国产| 欧美一区成人| 欧美影视一区| 欧美一区中文字幕| 欧美伊人久久久久久午夜久久久久 | 国产精品久久久久久福利一牛影视| 欧美激情综合在线| 免费人成精品欧美精品| 老司机午夜精品视频| 免费在线看成人av| 欧美激情在线观看| 欧美色区777第一页| 国产精品黄视频| 国产农村妇女毛片精品久久莱园子| 国产精品久久中文| 国产日韩一区二区三区在线播放| 国产伪娘ts一区| 激情偷拍久久| 亚洲国产精品久久久久久女王| 亚洲精品国产精品国产自| aⅴ色国产欧美| 亚洲午夜国产成人av电影男同| 亚洲欧美www| 亚洲国产99精品国自产| 亚洲欧洲中文日韩久久av乱码| 亚洲精品久久久久久久久久久久 | 日韩午夜免费| 一本色道**综合亚洲精品蜜桃冫 | 亚洲一区日韩| 久久国产欧美| 亚洲精品国精品久久99热| 一区二区三区视频在线看| 亚洲女人av| 久久久久网站| 欧美久久久久| 国产精品亚洲成人| 韩国欧美国产1区| 亚洲国产精品久久| 亚洲素人一区二区| 久久精品一二三| 一区二区高清视频在线观看| 午夜久久久久久| 免费不卡中文字幕视频| 欧美网站在线观看| 黄色日韩网站| 在线亚洲自拍| 亚洲国产第一| 一区二区精品| 久久九九精品| 欧美色网在线| 精品99一区二区三区| 99视频在线观看一区三区| 午夜精品在线观看| 99re8这里有精品热视频免费 | 亚洲一区二区三区午夜| 久久高清免费观看| 欧美美女福利视频| 国产一区二区三区久久悠悠色av | 国产精品专区h在线观看| 在线不卡中文字幕| 亚洲色在线视频| 91久久精品国产91性色tv| 亚洲一区二区三区四区五区午夜 | 欧美黑人国产人伦爽爽爽| 国产麻豆9l精品三级站| 在线视频观看日韩| 亚洲欧美视频一区二区三区| 99在线精品视频在线观看| 久久精品欧美| 欧美午夜精品电影| 亚洲激情国产| 欧美一二三视频| 亚洲永久视频| 欧美精品偷拍| 一区在线免费观看| 欧美一区二区三区在线看| 亚洲图片欧美日产| 你懂的视频欧美| 国产欧美激情| 一本色道久久加勒比精品| 亚洲国产一区二区三区a毛片| 小处雏高清一区二区三区| 欧美日韩免费在线| 亚洲高清自拍| 久久9热精品视频| 亚洲欧美日韩国产成人| 欧美日本在线| 亚洲国产精品小视频| 久久精品国产在热久久| 欧美一区二区三区在线看| 欧美性猛交99久久久久99按摩 | 欧美亚洲一区在线| 欧美日韩综合另类| 亚洲国产欧美一区二区三区久久 | 久久激五月天综合精品| 午夜精品久久久| 欧美午夜a级限制福利片| 亚洲日本免费电影| 亚洲精品人人| 免费高清在线一区| 狠狠干成人综合网| 久久精品国产亚洲一区二区| 久久精品国产亚洲精品| 国产欧美 在线欧美| 亚洲无线视频| 亚洲欧美另类中文字幕| 国产精品ⅴa在线观看h| 中日韩高清电影网| 亚洲欧美日韩在线播放| 国产精品v亚洲精品v日韩精品 | 亚洲欧美另类中文字幕| 国产精品久久久久久久免费软件 | 国产伦精品一区二区三区照片91| 亚洲自拍电影| 性欧美1819性猛交| 国产区亚洲区欧美区| 亚洲男女自偷自拍| 久久精品国产久精国产思思| 国产日韩精品综合网站| 欧美在线观看你懂的| 久久久人成影片一区二区三区| 红杏aⅴ成人免费视频| 欧美中文在线观看国产| 久久午夜精品一区二区| 影音先锋中文字幕一区| 亚洲人成人77777线观看| 欧美精品一区二区三区一线天视频 | 久久se精品一区精品二区| 久久亚洲春色中文字幕| 亚洲成人在线观看视频| 亚洲精选成人| 欧美三日本三级少妇三2023| 中日韩美女免费视频网址在线观看 | 国产专区精品视频| 亚洲国产婷婷| 欧美日韩国产成人在线| 一本大道久久a久久综合婷婷| 亚洲视频一区在线| 国产精品五区| 亚洲国产成人精品久久| 欧美精品一区视频| 亚洲一区在线观看视频 | 在线观看国产欧美| 日韩一区二区精品| 国产精品久久久久久福利一牛影视| 亚洲欧美另类国产| 久久最新视频| aa级大片欧美三级| 久久精品在这里| 亚洲国产婷婷| 亚洲欧美日韩在线播放| 伊甸园精品99久久久久久| 亚洲视频碰碰| 国内精品久久久久影院 日本资源| 亚洲国产小视频| 欧美亚洲成人免费| 久久精品久久99精品久久| 欧美日韩二区三区| 欧美一区二区三区精品| 欧美激情一区在线观看| 亚洲欧美国产va在线影院| 蜜臀91精品一区二区三区| 一本色道久久99精品综合| 久久久亚洲午夜电影| 亚洲乱码国产乱码精品精天堂| 午夜日韩在线观看| 亚洲国产精品久久久久秋霞蜜臀 | 99视频有精品| 久久久蜜桃一区二区人| 99精品欧美一区| 久久久久综合一区二区三区| 日韩亚洲一区二区| 久久三级福利| 亚洲午夜黄色| 欧美韩日高清| 欧美一区二区在线观看| 欧美日韩精品一本二本三本| 欧美一区二区三区日韩| 欧美日韩免费一区| 亚洲国产精品一区二区三区| 国产精品久久久久久久9999 | 一区二区三区成人精品| 国内精品伊人久久久久av影院| 亚洲天堂第二页| 在线精品国精品国产尤物884a| 午夜欧美大片免费观看| 日韩午夜一区| 欧美jizz19性欧美| 欧美在线一区二区| 国产精品黄视频|