专栏首页瓜大三哥视频处理之浮雕效果【附源码】

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

浮雕效果概念

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

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

算法原理

图像处理算法原理: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

本文分享自微信公众号 - 瓜大三哥(xiguazai_tortoise),作者:瓜大三哥

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-06-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • zynq中PS访问BRAM(一)

    (1)ZYNQ中PS端MIO操作 (2)ZYNQ中PS端MIO中断 (3)ZYNQ中PS端UART通信

    瓜大三哥
  • FPGA设计技巧

    FPGA的用处比我们平时想象的用处更广泛,原因在于其中集成的模块种类更多,而不仅仅是原来的简单逻辑单元查找表(LUT)。而且还有一些其他资源,例如:

    瓜大三哥
  • HLS Lesson15-for循环优化:其他方法

    例1: void for_merge(data_t a[N],data_t b[N],data_t c[N],data_t d[N]) { data_t x_a...

    瓜大三哥
  • 专访小 i 机器人CEO朱频频:聊天机器人进入深耕应用场景的时候,什么才是真正的杀手锏?

    AI科技评论按:今年的墨尔本IJCAI 2017上, 一众中国公司参会并出现在其白金赞助商名单上,其中的小i机器人是8家赞助商名单中比较特别的一家,或许它的AI...

    AI科技评论
  • Science:Julich-Brain:一个新的细胞结构水平的概率脑图谱

    细胞结构是人类大脑在微结构上出现分离的基本生物原理,但就目前为止,还没有出现一个考虑到细胞层面及个体差异的人类脑图谱出现。本文介绍了Julich(德国于利希)实...

    用户1279583
  • Linux 下Input系统应用编程实战

    什么是input子系统?不管是什么操作系统,都有一个程序是用于管理各种输入设备的,打个比方,生活中使用的电脑键盘、鼠标就是输入设备,小到日常生活中无可避免的智能...

    morixinguan
  • [译] 复用 Vue 组件的 6 层手段

    原文:https://michaelnthiessen.com/6-levels-of-reusability/?cksubscriberid=68763622...

    江米小枣
  • 原码、反码、补码的产生、应用以及优缺点有哪些?

    后来在生活中为了表示“欠别人钱”这个概念,就从无符号数中,划分出了“正数”和“负数”正如上帝一挥手,从混沌中划分了“白天”与“黑夜”为了表示正与负,人们发明...

    shengjk1
  • 接口测试工具 - RESTClient

    张树臣
  • 专家谈|中国AI凭什么就达不到世界一流水平?

    GAIR 今年夏天,雷锋网将在深圳举办一场盛况空前的“全球人工智能与机器人创新大会”(简称GAIR)。大会现场,谷歌,DeepMind,Uber,微软等巨头的人...

    AI科技评论

扫码关注云+社区

领取腾讯云代金券