基于FPGA的图像sobel边缘提取算法Verilog开发与开发板硬件测试

1.前言

图像边缘检测大幅度地减少了数据量,并且剔除了可以认为不相关的信息,保留了图像重要的结构属性。在本课题中,将通过FPGA实现图像sobel边缘提取的硬件测试。

2.算法硬件测试效果图预览

1

2

3.算法运行软件版本

vivado2022.2

Matlab2022a/matlab2024b

4.部分核心程序

(完整版代码包含中文注释和操作步骤视频)

 
color_bar hdmi_color_bar(
    .clk(video_clk),
    .rst(1'b0),
    .key(key),
    .hs(video_hs),
    .vs(video_vs),
    .de(video_de),
    .rgb_r(video_r),
    .rgb_g(video_g),
    .rgb_b(video_b)
);
 
video_clock video_clock_m0
(
     // Clock in ports
    .clk_in1(sys_clk),
      // Clock out ports
    .clk_out1(video_clk),
    .clk_out2(video_clk_5x),
      // Status and control signals
    .reset(1'b0),
    .locked()
 );
 
rgb2dvi_0 rgb2dvi_m0 (
    // DVI 1.0 TMDS video interface
    .TMDS_Clk_p(TMDS_clk_p),
    .TMDS_Clk_n(TMDS_clk_n),
    .TMDS_Data_p(TMDS_data_p),
    .TMDS_Data_n(TMDS_data_n),
    .oen(hdmi_oen),
    //Auxiliary signals 
    .aRst_n(1'b1), //-asynchronous reset; must be reset when RefClk is not within spec
    
    // Video in
    .vid_pData({video_r,video_g,video_b}),
    .vid_pVDE(video_de),
    .vid_pHSync(video_hs),
    .vid_pVSync(video_vs),
    .PixelClk(video_clk),
    .SerialClk(video_clk_5x)// 5x PixelClk
); 
  
endmodule
0X2_042m

5.算法仿真参数

parameter H_ACTIVE = 16'd1280;           //horizontal active time (pixels)
parameter H_FP = 16'd110;                //horizontal front porch (pixels)
parameter H_SYNC = 16'd40;               //horizontal sync time(pixels)
parameter H_BP = 16'd220;                //horizontal back porch (pixels)
parameter V_ACTIVE = 16'd720;            //vertical active Time (lines)
parameter V_FP  = 16'd5;                 //vertical front porch (lines)
parameter V_SYNC  = 16'd5;               //vertical sync time (lines)
parameter V_BP  = 16'd20;                //vertical back porch (lines)
parameter HS_POL = 1'b1;                 //horizontal sync polarity, 1 : POSITIVE,0 : NEGATIVE;
parameter VS_POL = 1'b1;                 //vertical sync polarity, 1 : POSITIVE,0 : NEGATIVE;

6.算法理论概述

Soble边缘检测算法比较简,实际应用中效率比canny边缘检测效率要高,但是边缘不如Canny检测的准确,但是很多实际应用的场合,sobel边缘却是首选,尤其是对效率要求较高,而对细纹理 不太关心的时候。Soble边缘检测通常带有方向性,可以只检测竖直边缘或垂直边缘或都检测。

 

posted @ 2026-03-17 14:51  简简单单做算法  阅读(1)  评论(0)    收藏  举报