Verilog图像处理源程序,求用Verilog语言实现的图像处理源程序,比较基础的图像二值化或滤波程序,多谢!

Verilog图像处理源程序,求用Verilog语言实现的图像处理源程序,比较基础的图像二值化或滤波程序,多谢!,第1张

给轮缺你写个灰阶图像二值化的程序轮桐竖吧

module double_value(pixel_value, clk, rst, out)

input clk, rst

input [7:0] pixel_value

output reg out

always @(posedge clk or negedge rst) begin

if (!rst) begin

out <= 1'b0

end

else begin

if (pixel_value <8'd127) begin

out <= 1'b0

end

else begin

out <= 1'腊大b1

end

end

end

endmodule

这个你不能一开始就是用VHDL设计,我做循环频谱处理,给你说过程,也行首旅许对你有用,先用matlab仿真,这一步很重要验证你的方法是不是正确的,这也为你后续的VHDL设计测试做铺垫,因为你设计的vhdl代码需要测试数据,那么就从这里来, 第二步,使用c语言编写算法,这一步的工作是让你熟悉图像边缘检测算法的每一个步骤是如何做到的,因为VHDL是电路标书语言,要对每一BIT都要清楚,C语言的过程可以让你在设计VHDL之前就清楚了,最后一步是转换,只有前两个步骤都做好了,你才可以进行VHDL设计。要不然你设计好了VHDL代码芹虚,你测试都不知档凳道怎么测试,哪里出错你都不知道,有了C语言的过程,你可以对某一个子模块进行调试。

我这里有六位的

module time_display(clk_100,hour,minute,second,led_light,sm_seg)

input clk_100

input [4:0] hour

input [5:0] minute

input [5:0] second

output [5:0] led_light

output [7:0] sm_seg//假设这里用的是8段数码管

reg [5:0] led_light

reg [7:0] sm_seg

reg [3:0] led

reg [2:0] led_count

always @ (posedge clk_100)

begin

if(led_count==5)

led_count<=3'b0

else

led_count<=led_count+3'b001

case(led_count)

3'b000:

begin

led_light<=6'b00_0001

led<=second%10

end

3'b001:

begin

led_light<=6'b00_0010

led<=second/10

end

3'b010:

begin

led_light<=6'b00_0100

led<=minute%10

end

3'b011:

begin

led_light<=6'b00_1000

led<=minute/10

end

3'b100:

begin

led_light<=6'b01_0000

led<=hour%10

end

3'b101:

begin

led_light<=6'b10_0000

led<=hour/10

end

endcase

end

always @ (led_light)

begin

case(led)

4'h0:sm_seg=8'hc0//"0"念高

4'h1:sm_seg=8'hf9//"1"

4'h2:sm_seg=8'ha4//"2"

4'h3:sm_seg=8'hb0//碰岩"3"

4'h4:sm_seg=8'h99//"4"

4'h5:sm_seg=8'h92//"5"

4'h6:sm_seg=8'h82//"6"

4'h7:sm_seg=8'hf8//"7"

4'h8:sm_seg=8'仔吵尺h80//"8"

4'h9:sm_seg=8'h90//"9"

default:sm_seg=8'hc0//"0"

endcase

end

endmodule


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12477672.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存