• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于FPGA的多方向閾值自適應(yīng)Sobel算法實現(xiàn)

    2023-07-20 06:47:31程偉濤郭來功汪強
    無線互聯(lián)科技 2023年9期

    程偉濤 郭來功 汪強

    摘要: Sobel邊緣檢測技術(shù)是圖像處理中最基本的技術(shù)之一。傳統(tǒng)算法速度較慢且只有垂直和水平兩個方向的梯度,對于一些其他方向的邊緣檢測效果不明顯。文章設(shè)計了一種四方向(0°,45°,90°,135°)的Sobel算法來提高邊緣檢測的準確性,針對傳統(tǒng)Sobel邊緣檢測算法閾值設(shè)置會出現(xiàn)偏差的缺點,基于中值濾波,采用自適應(yīng)算法提高閾值準確性。本設(shè)計采用Verilog語言編程。仿真結(jié)果表明:多方向閾值自適應(yīng)Sobel處理速度快,自適應(yīng)閾值合理,邊緣的完整性比傳統(tǒng)方法有顯著提高。

    關(guān)鍵詞:Sobel;自適應(yīng)閾值;FPGA;MATLAB

    中圖分類號: TP391

    文獻標志碼:A

    0 引言

    傳統(tǒng)Sobel算子只有水平和垂直兩個方向1。傳統(tǒng)Sobel算法具有閾值無法自適應(yīng)的缺點。本實驗采用多方向的自適應(yīng)閾值Sobel算法2,利用中值濾波的思想來實現(xiàn)自適應(yīng)閾值。邊緣檢測在速度和準確性上,已經(jīng)有多種提高方式3。應(yīng)用單片機、數(shù)字信號處理芯片來進行圖像處理,采用串行方式,實時性和系統(tǒng)性能并不理想4。因此,實驗采用FPGA的瞬時并行處理數(shù)據(jù)的特點,可以滿足實時性要求5。FPGA這一特性的處理速度遠遠快于軟件處理平臺6

    1 傳統(tǒng)Sobel邊緣檢測

    傳統(tǒng)Sobel算子是一階的邊緣檢測算子,采用的是x和y方向的兩個3×3的卷積因子,記為Gx 和Gy,卷積因子由圖1所示。

    Gx為垂直梯度方向,用于檢測水平邊緣;Gy為水平梯度方向,用于檢測垂直邊緣7,如圖1所示。將x和y兩個方向的卷積因子和原灰度圖像對應(yīng)位置的灰度值進行卷積,f(x,y)為圖像的矩形窗口,見公式(1)和(2)。

    選取一個3×3窗口的灰度值,記為:a1、a2、a3、b1、b2、b3、c1、c2和c3。將它們和x、y方向的卷積因子分別進行卷積,得出結(jié)果就是x和y方向的灰度值,為g1和g2,根據(jù)公式(1)和(2)可得g1和g2的結(jié)果。根據(jù)公式(3)計算出這個3×3的窗口的梯度值大小,記為Gxy。但是考慮到FPGA的資源占用問題,本實驗采用簡單的絕對值求和的方式來計算最終的梯度值。如公式(4):

    Gxy=g1+|g2|(4)

    實驗計算出窗口的梯度值,然后進行圖像分割。將公式(4)的結(jié)果和給出的閾值做比較,設(shè)閾值大小為T,大于閾值的賦值為1,小于閾值的賦值為0。

    2 改進的Sobel算子

    2.1 四方向Sobel算子

    傳統(tǒng)Sobel算子的檢測方向只有x和y兩個方向,當(dāng)像素點其他方向的幅值較高,而x和y方向的幅值較低,傳統(tǒng)算法無法檢測到邊緣點。本文在水平和豎直兩個方向的基礎(chǔ)上,增加了45°和135°兩個方向,同樣采用3×3大小的窗口,全部4個卷積因子如圖2所示,從左到右分別是0°、45°、90°和135°,分別記為G1、G2、G3和G4

    將0°、45°、90°和135°方向的算子與目標窗口進行卷積,得到改進的梯度計算結(jié)果為記為g1,g2,g3,g4,見公式(8):

    將所求的4個方向的差分的絕對值相加,即為最終的梯度值,如公式(9)所示。

    Gxy=|g1|+|g2|+|g3|+|g4|(9)

    2.2 自適應(yīng)閾值

    計算自適應(yīng)閾值通常采用大津法或基于直方圖的方法等,這一類的算法較為復(fù)雜,一般應(yīng)用于軟件實現(xiàn),而在硬件上這一類方法不太容易實現(xiàn)。本文參考的是中值濾波的思想,考慮到圖像灰度值都是非負數(shù),所以比較大小對的方式可以直接使用有符號數(shù)減法來表示。同時,本研究對張琪等5的方法做出改進:第一步,在3×3的窗口中,先將每一行按照從大到小的順序排列,得到一個新矩陣。第二步,找出這個新矩陣第一列的最大值(MAX_MAX)和最小值(MAX_MIN),第二列的中間值(MID_MID)以及第三列的最大值(MIN_MAX)和最小值(MIN_MIN)。第三步,找出第二步5個數(shù)值的中值,即為閾值T。這種方法所需要比較的數(shù)值較多,步驟較為煩瑣,因此對第二步做出改進。第二步中第一列的最大值就已經(jīng)確定為第三步的最大值,同理第三列的最小值也是第三步的最小值,因此可以直接將這兩個數(shù)值去掉,在MAX_MIN,MID_MID,MIN_MAX中比較出中值。

    3 系統(tǒng)框架

    3.1 FIFO數(shù)據(jù)處理

    Sobel數(shù)據(jù)處理采用的FIFO求和的思想。本實驗選取一個3×3的窗口數(shù)據(jù),因此采用FIFO來處理數(shù)據(jù)8。兩個FIFO的作用是緩存兩行,可以得到三行數(shù)據(jù)。這里用到了FPGA的流水線特性,其優(yōu)點可以實現(xiàn)數(shù)據(jù)的無縫緩存和處理,不僅節(jié)約了緩存區(qū)空間,而且提高了數(shù)據(jù)流的處理速度9。

    將數(shù)據(jù)寫入寄存器之后,需要將寄存器里的數(shù)據(jù)進行Sobel處理,因此,再次定義一個讀出標志信號,當(dāng)行計數(shù)器計數(shù)到第三行的時候,將緩存的數(shù)據(jù)往外讀出。對數(shù)據(jù)進行Sobel運算和閾值計算。

    3.2 Sobel模塊

    數(shù)據(jù)由FIFO進入Sobel模塊之后,由于時序信號需要延遲一個周期,因此,每一列的數(shù)據(jù)都會比前一列慢一個時鐘周期,當(dāng)FPGA標志信號有效時,可以得出Sobel計算所需要的9個數(shù)據(jù)。根據(jù)公式(8)和公式(9),計算出灰度值。模塊由一個最高位判斷框和一個數(shù)據(jù)選擇器組成,當(dāng)最高位是0時,表示正數(shù),此時輸出的絕對值就是本身,當(dāng)最高位是1的時候,表示為負數(shù),就需要對負數(shù)進行取反碼再加一位。利用加法器和減法器計算出g1,g2,g3,g4,然后對這4個梯度值進行絕對值求和,所得結(jié)果為梯度值gxy。

    3.3 閾值自適應(yīng)模塊

    4個方向的Sobel算法抗噪能力并沒有多高,因此使用自適應(yīng)閾值盡可能地避免噪聲的干擾。本實驗根據(jù)中值濾波的原理,找出窗口的中值作為圖像的閾值,這種方法相對簡單,易于實現(xiàn)。實驗利用FPGA的并行特性,信號進入Sobel模塊之后,分成兩個方向,一個方向是進入Sobel灰度值計算模塊,另一部分是進行閾值自適應(yīng)。

    3.4 邊緣判定模塊

    邊緣判定條件是閾值比較。計算所得的灰度值和自適應(yīng)閾值模塊給出的常數(shù)做出對比,大于這個常數(shù),則判斷為邊緣,高電平為FF,顯示為白色;小于或者等于給定的閾值,則判斷不是邊緣,為低電平00,顯示為黑色。

    4 實驗結(jié)果與分析

    本過FPGA對圖像進行邊緣檢測。首先使用

    MATLAB2018a版本對圖像進行預(yù)處理。所處操作環(huán)境是Windows10系統(tǒng),CPU為i5-7300,GPU為1050Ti。采用的數(shù)據(jù)是一個大小為541×541的Lena灰度圖。經(jīng)過QuartusⅡ13.1軟件編寫Verilog HDL語言來實現(xiàn)數(shù)據(jù)的傳遞、處理,通過Modelsim10.4和MATLAB雙重驗證算法的可行性。在Verilog的測試文件中,新建一個txt文件,將最終仿真的數(shù)據(jù)存入這個txt文件,然后在MATLAB中打開這個txt文件,得到最終的邊緣檢測圖。圖片選用的是一張541×541的Lena圖。實驗結(jié)果如圖3所示。從a,b,c,d依次是原灰度圖、人為設(shè)置閾值為116的傳統(tǒng)Sobel檢測圖、認為設(shè)置閾值為70的傳統(tǒng)Sobel檢測圖以及改進之后的自適應(yīng)閾值的Sobel檢測圖。結(jié)合原圖發(fā)現(xiàn),圖3(a)對比圖3(d),兩者使用同樣的閾值,有4處比較明顯的邊緣沒有檢測到,由圖中紅色圈標記可以看出。圖3(c)和圖3(d)也有3處比較明顯的差距。總體來說都是在45°和135°方向上差距明顯,邊緣的完整性比兩方向的Sobel檢測算法好。在運算速度上,F(xiàn)PGA的所用時間約為0.05 s,而傳統(tǒng)Sobel時間約為2.63 s,速度提升了50倍。

    5 結(jié)語

    本文分析了邊緣檢測的作用以及傳統(tǒng)Sobel邊緣檢測算子的優(yōu)缺點,并針對缺點做出兩處改進。第一個改進就是將邊緣檢測的方向由x和y兩個方向增加到0°、45°、90°和135°4個方向。第二個是對閾值設(shè)定做出改進,將原先的人為設(shè)置改成自適應(yīng)閾值。在速度方面,結(jié)合FPGA并行特性和流水性,運行速度高于軟件的運行速度,處理一張大小為541×541的圖片所用時間僅為0.05 s,而軟件平臺的處理時間為2.6 s,速度提升了50倍。對比傳統(tǒng)Sobel算子,改進之后檢測的邊緣效果明顯優(yōu)于傳統(tǒng)算法。

    參考文獻

    [1]劉逢丁,曹杰,王營博,等.激光雷達距離像的實時邊緣檢測[J].光學(xué)技術(shù),2021(4):404-409.

    [2]陳磊,葉焱.多方向自適應(yīng)閾值邊緣檢測算法及FPGA并行實現(xiàn)[J].無線通信技術(shù),2019(4):21-26.

    [3]ALMOMANY A,ALOMARI A M,JARRAH A,et al.An OpenCL-based parallel acceleration of a Sobel edge detection algorithm Using Intel FPGA technology[J].South African Computer Journal,2020(1):3-26.

    [4]祁欣,陳劍鋒,羅偉林.圖像預(yù)處理算法的FPGA實現(xiàn)[J].國外電子測量技術(shù),2021(2):102-107.

    [5]張棋,賈方秀,殷婷婷.基于改進Sobel算法的實時圖像邊緣檢測系統(tǒng)設(shè)計[J].儀表技術(shù)與傳感器,2018(2):101-104,108.

    [6]葉惠嬌,冉全,成果.FPGA圖像邊緣檢測系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機應(yīng)用與軟件,2018(12):237-240,302.

    [7]譚媛,黃輝先,徐建閩,等.基于改進Sobel算子的遙感圖像道路邊緣檢測方法[J].國土資源遙感,2016(3):7-11.

    [8]SUDHARSHAN K M.Design of a Sobel Edge Detection Algorithm on FPGA[J].Turkish Journal of Computer and Mathematics Education(TURCOMAT),2021(12):2458-2462.

    [9]陳鑫元,李筠,楊海馬,等.自適應(yīng)閾值圖像二值化及形態(tài)學(xué)處理的FPGA實現(xiàn)[J].電子測量技術(shù),2016(7):67-71.

    (編輯 王永超)

    Implementation of multidirectional threshold adaptive Sobel algorithm based on FPGA

    Cheng Weitao, Guo Laigong, Wang Qiang

    (School of Electrical and Information Engineering,Anhui University of Science and Technology, Huainan 232001, China)

    Abstract: Sobel edge detection technology is one of the most basic technologies in image processing. The traditional algorithm is slow and has only two gradients in the vertical and horizontal directions. The effect of edge detection in some other directions is not obvious. This paper designs a four-direction (0°, 45°, 90°, 135°) Sobel algorithm to improve the accuracy of edge detection. Aiming at the defect that the threshold setting of the traditional Sobel edge detection algorithm may deviate, based on median filtering, adaptive algorithm is adopted to improve the accuracy of the threshold. The design is programmed in Verilog language. The simulation results show that the multi-directional threshold adaptive Sobel processing speed is fast, the adaptive threshold is reasonable, and the integrity of the edge is significantly improved than the traditional method.

    Key words: Sobel; adaptive threshold; FPGA; MATLAB

    普格县| 岑巩县| 抚顺县| 肥西县| 新邵县| 孟津县| 乌什县| 玛沁县| 迁安市| 五大连池市| 隆回县| 兴文县| 大关县| 喜德县| 保山市| 益阳市| 株洲市| 措美县| 龙川县| 隆回县| 安康市| 岳阳县| 阿尔山市| 峨边| 洛浦县| 南开区| 都匀市| 鄂托克前旗| 阿克苏市| 湄潭县| 万安县| 安国市| 江孜县| 宝山区| 志丹县| 湖口县| 峨山| 新余市| 鲁山县| 普安县| 安平县|