浮雕效果概念
浮雕 是雕塑与绘画结合的产物,靠透视等因素来表现三维空间,并只供一面或两面观看。浮雕一般是附属在另一平面上的,因此在建筑上使用更多,用具器物上也经常可以看到。浮雕在我们现实生活中处处可见,尤其是中国古代的建筑浮雕众多。浮雕既是一种刻在砖、石壁或木头上的一种雕塑。
浮雕效果是将图像的变化部分突出的表现出来,而相同的颜色部分则被淡化掉,使图像出现纵深感,从而达到浮雕的效果。
算法原理
图像处理算法原理: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