【FPGA】图像处理模块

这里记录一下,一些常见且可直接调用的图像处理模块

RGB565转成灰度值图像

module RGB2Gray(
	clk,
	rst_n,
	rgb_inen,
	rgb565,
	gray
);
input				clk; //时钟
input				rst_n; //异步复位
input				rgb_inen; //rgb 输入有效标识
input	[15:0]		rgb565	;
output	[15:0]		gray; //GRAY 输出

//求平均法GRAY = (R+B+G)/3=((R+B+G)*85)>>8
wire 	[9:0]		sum;
wire 	[7:0]		red;
wire 	[7:0]		green;
wire 	[7:0]		blue;

reg 	[15:0]		gray_r;
wire	[7:0]		gray_8;

assign	sum = 	red + green + blue;
assign	red = 	{rgb565[15:11],rgb565[13:11]};
assign	green = {rgb565[10:5],rgb565[6:5]};
assign	blue = 	{rgb565[4:0],rgb565[2:0]};


always@(posedge clk or negedge rst_n)begin
	if(!rst_n)
		gray_r <= 16'd0;
	else if(rgb_inen)
		gray_r <= {sum,6'b000000}+{sum,4'b0000}+ {sum,2'b00} + sum;
	else
		gray_r <= 16'd0;
end

assign gray_8 = gray_r[15:8];
assign gray = {gray_8[7:3],gray_8[7:2],gray_8[7:3]};


endmodule

猜你喜欢

转载自blog.csdn.net/qq_42792802/article/details/127264293
今日推荐