视频处理之浮雕效果【附源码】

欲观原文,请君移步

浮雕效果概念

浮雕 是雕塑与绘画结合的产物,靠透视等因素来表现三维空间,并只供一面或两面观看。浮雕一般是附属在另一平面上的,因此在建筑上使用更多,用具器物上也经常可以看到。浮雕在我们现实生活中处处可见,尤其是中国古代的建筑浮雕众多。浮雕既是一种刻在砖、石壁或木头上的一种雕塑。

浮雕效果是将图像的变化部分突出的表现出来,而相同的颜色部分则被淡化掉,使图像出现纵深感,从而达到浮雕的效果。

算法原理

图像处理算法原理:newpixel(i,j) = pixel(i,j)-pixel(i,j+1)+TH

i为图像高度,j为图像宽度,pixel为当前图像像素点,TH为阈值(0-255)。相当于使用当前位置的像素值减去后一个像素的像素值,然后再加上一个阈值来实现。

FPGA实现

硬件框架

输入为VESA 的1080P标准时序,使用vio来控制阈值。硬件实现框图如下。

程序设计

`timescale      1ns/1ps

module  Emboss
#
(
    parameter           PIXELS_BIT      =   8   ,
    parameter           COLOR_CHANNEL   =   3


(
    input   wire                                    clk             , 
    (*mark_debug = "true"*)input    wire                                    i_vs            , 
    (*mark_debug = "true"*)input    wire                                    i_hs            , 
    (*mark_debug = "true"*)input    wire                                    i_de            , 
    (*mark_debug = "true"*)input   wire [PIXELS_BIT                  -1:0]  i_data          ,

    input   wire [PIXELS_BIT                 -1:0]  Thresholds      , 


    (*mark_debug = "true"*)output   reg                                     o_vs            , 
    (*mark_debug = "true"*)output   reg                                     o_hs            , 
    (*mark_debug = "true"*)output   reg                                     o_de            , 
    (*mark_debug = "true"*)output   reg [PIXELS_BIT*COLOR_CHANNEL-1:0]      o_data          
);    

    (*mark_debug = "true"*)reg     i_vs_r =1'b0;
    (*mark_debug = "true"*)reg     i_hs_r =1'
b0;
    (*mark_debug = "true"*)reg     i_de_r =1'b0;
    (*mark_debug = "true"*)reg     [PIXELS_BIT                  -1:0]i_data_r={PIXELS_BIT{1'
b0}};

    always @(posedge clk) begin
        i_vs_r<=i_vs;
        i_hs_r<=i_hs;
        i_de_r<=i_de;
        i_data_r<=i_data;
    end
    always @(posedge clk) begin
        o_vs<=i_vs_r;
        o_hs<=i_hs_r;
        o_de<=i_de_r;
        o_data[PIXELS_BIT*1-1:PIXELS_BIT*0]<=(i_data_r-i_data+Thresholds);
        o_data[PIXELS_BIT*2-1:PIXELS_BIT*1]<=(i_data_r-i_data+Thresholds);
        o_data[PIXELS_BIT*3-1:PIXELS_BIT*2]<=(i_data_r-i_data+Thresholds);

    end


endmodule

实现结果

灰度图如下图

浮雕效果如下图

调节阈值

参考链接

https://blog.csdn.net/baidu_34971492/article/details/99680493

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值