算子实现_视频处理之Laplace 算子【附源码】

Laplace 算子介绍

Laplace 算子和 Sobel 算子一样,属于空间锐化滤波操作。

拉普拉斯算子是一种重要的图像增强算子,它是一种各向同性滤波器,即滤波器的响应与滤波器作用图像的突变方向无关,而且实现简单,被广泛用于图像锐化和高频增强等算法中。
分别对Laplace算子x,y两个方向的二阶导数进行差分就得到了离散函数的Laplace算子。

Laplace 算子数学定义

在一个二维函数 f(x,y) 中,x,y 两个方向的二阶差分分别为,

9321f1cee794f67a7431ec94c85a7585.png

所以Laplace算子的差分形式为,

4094bdea92f6dc27bc988bba50c5811f.png
010
1-41
010

Laplace 算子改进

注意该 mask 的特点,mask 在上下左右四个 90 度的方向上结果相同,也就是说在 90 度方向上无方向性。为了让该 mask 在 45 度的方向上也具有该性质,对该 filter mask 进行扩展定义为,

111
1-81
111

如同本文开始时说的那样,将 Laplace 算子写成 filter mask 后,其操作大同小异于其他的空间滤波操作。将 filter mask 在原图上逐行移动,然后mask中数值与其重合的像素相乘后求和,赋给与 mask 中心重合的像素,对图像的第一,和最后的行和列无法做上述操作的像素赋值零,就得到了拉普拉斯操作结果。

FPGA 实现

下面给出了关键代码实现

    //pixel add calculate
    always @ (posedge clk) begin

        if(pixel_en_d3)begin
            data_sum    <=(A11+ A12 + A13 +A21+A23+A31+A32+A33) ;
        end

        add_en<=pixel_en_d3;

    end


    always @ (posedge clk) begin
        if(add_en)begin
            if(data_sum[0+:(PIXELS_BITS+3)]>{A22[0+:(PIXELS_BITS)],3'b0})
                o_data<=data_sum[0+:(PIXELS_BITS+3)]-{A22[0+:(PIXELS_BITS)],3'b0};
            else 
                o_data<={A22[0+:(PIXELS_BITS)],3'b0}-data_sum[0+:(PIXELS_BITS+3)];
        end
        valid   <=  add_en;
    end

详细工程可以后台回复【Laplace 算子】即可获得,如何在工程中添加,可以参考小编写的《视频处理之Sobel【附源码】

42a3423f7644a3e042160ad9dd9af47c.png

参考链接

https://blog.csdn.net/hellocsz/article/details/102485387

https://blog.csdn.net/Loney_Island/article/details/80966909

98677aeaf38fe7e5bd3329518ee485b0.png 扫 码 关 注   一 起 畅 聊

深耕在FPGA  扎根于视频领域 

卓越于神经网络

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值