【基于FPGA的图像处理工程】边缘检测工程之二值化模块代码解析
【基于FPGA的图像处理工程】 —边缘检测工程:二值化模块代码解析作者:陈刀刀本文为明德扬原创文章,转载请注明出处!二值化模块的功能:该模块将输入进来的数据与二值图像的阈值进行判断,最终输出0或者1。一、设计架构 该模块的功能对输入的灰度图像做二值化处理。 期望输出波形如下所示: 设value取150,在第一个红色箭头处,当din_vld=1时,din为56大于150,dout输出1,同时dout_vld为1; 在第二个箭头处,当din_vld=1时,din为85小于150,dout输出0,同时dout_vld为1; 在第三个箭头处,当din_vld=1时,din为87小于150,dout输出0,同时dout_vld为1; 其他情况以此类推。
二、信号的意义
信号类型意义
clk输入信号时钟信号,时钟频率为25M
rst_n输入信号复位信号,低电平有效。
value输入信号二值图像的阈值
din输入信号输入灰度图像数据,为8位。
din_vld输入信号输入灰度图像数据有效信号。1:数据有效;0:数据无效。
din_sop输入信号输入灰度图像数据起始指示信号。1:数据有效;0:数据无效。
din_eop输入信号输入灰度图像数据结束指示有效信号。1:数据有效;0:数据无效。
dout输出信号输出的二值图像的图像数据,为1位。设计逻辑:当输入的值比设定阈值大,则输出1;反之则输出0。
dout_vld输出信号输出二值图像数据的有效信号。1:数据有效;0:数据无效。设计逻辑:与输入的二值图像数据的有效信号同步。
dout_sop输出信号输出灰度图像数据起始指示信号。1:数据有效;0:数据无效。设计逻辑:与输入的灰度图像数据起始指示信号同步。
dout_eop输出信号输出灰度图像数据结束指示有效信号。1:数据有效;0:数据无效。设计逻辑:与输入的灰度图像数据结束指示有效信号同步。
三、参考代码 下面展出本模块的设计,欢迎进一步交流,如果需要源代码,欢迎与本人联系。 module gray_bit(
clk ,
rst_n ,
value ,
din ,
din_vld ,
din_sop ,
din_eop ,
dout ,
dout_vld ,
dout_sop ,
dout_eop
);
input clk ;
input rst_n ;
input value ;
input din ;
input din_vld ;
input din_sop ;
input din_eop ;
output dout ;
output dout_vld;
output dout_sop;
output dout_eop;
reg dout ;
reg dout_vld;
reg dout_sop;
reg dout_eop;
always@(posedge clk or negedge rst_n)begin
if(rst_n==1'b0)begin
dout <= 1'b0;
end
else if(din >= value)begin
dout <= 1'b1;
end
else begin
dout <= 1'b0;
end
end
always@(posedge clk or negedge rst_n)begin
if(rst_n==1'b0)begin
dout_vld <= 1'b0;
end
else begin
dout_vld <= din_vld;
end
end
always@(posedge clk or negedge rst_n)begin
if(rst_n==1'b0)begin
dout_sop <= 1'b0;
end
else begin
dout_sop <= din_sop;
end
end
always@(posedge clk or negedge rst_n)begin
if(rst_n==1'b0)begin
dout_eop <= 1'b0;
end
else begin
dout_eop <= din_eop;
end
end
end module
明德扬专注FPGA研究,我司正在连载两本书籍: 《基于FPGA至简设计法实现的图像边缘检测系统》(http://www.fpgabbs.cn/forum.php?mod=viewthread&tid=691)、《ASIC和FPGA时序约束理论与应用》(http://www.fpgabbs.cn/forum.php?mod=viewthread&tid=705),有兴趣点击观看。也欢迎加入群(838209674),及时获取最新的文章信息,个性化问题也可以找我哦:Q 1277642036(陈刀刀)。
页:
[1]