1基本原理
真彩色图像的颜色通道分为R,G,B。按照RGB888来讲,三个通道分别为8bit,范围为0-255。
因为图像数据是无符号的所以再亮暗调节的时候不能超出这个范围。
暗调节:
Rnew=R-step 当(R》step)Rnew=0 当(R《step)
Gnew=G-step 当(G》step)Gnew=0 当(G《step)
Bnew=B-step 当B》step)Bnew=0 当(B《step)
2 verilog源码设计
图像的亮暗主要通过按钮来调节,调节的大小(步进)COE来控制。
其中数据的处理需要一个像素时钟,所以需要对VGA的其他同步信号进行1 clock的延时输出。
/**********************************
copyright@FPGA OPEN SOURCE STUDIO
`define COE 30*key_cnt
module dark#(
parameter DW = 24
)(
input pixelclk,
input reset_n,
input [DW-1:0] din,//rgb in
input i_hsync,
input i_vsync,
input i_de,
input [1:0] key_cnt,
output [DW-1:0]dout,//rgb out
output o_hsync,
output o_vsync,
output o_de
);
wire [7:0] r,g,b;
reg [7:
0] rout,gout,bout;
reg hsync_r;reg vsync_r;reg de_r;
assign r=din[23:16];assign g=din[15:8];assign b=din[7:0];
//assign rdark =(r》`COE)?(r-`COE):8‘b0;
assign o_hsync = hsync_r;assign o_vsync = vsync_r;assign o_de = de_r;assign dout={rout,gout,bout};
//synchronizationalways @(posedge pixelclk) begin hsync_r 《= i_hsync; vsync_r 《= i_vsync; de_r 《= i_de;end
always @(posedge pixelclk or negedge reset_n)begin if(!reset_n) begin rout《=0; gout《=0; bout《=0; end else begin case(key_cnt) 2’b00:begin rout《=r; gout《=g; bout《=b; end 2‘b01,2’b10,2‘b11:begin rout《=(r》`COE)?(r-`COE):8’b0; gout《=(g》`COE)?(g-`COE):8‘b0; bout《=(b》`COE)?(b-`COE):8’b0; end endcase endend
endmodule
3仿真效果
从亮到暗的变化很明显。
编辑:jq
-
仿真
+关注
关注
53文章
4406浏览量
137665 -
图像数据
+关注
关注
0文章
54浏览量
11633 -
Verilog
+关注
关注
30文章
1370浏览量
114125 -
VGA
+关注
关注
5文章
576浏览量
65826
原文标题:基于FPGA图像的亮暗调节--变暗调节(附源码)
文章出处:【微信号:leezym0317,微信公众号:FPGA开源工作室】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
FZH015 一款具有 128 阶线性电流调节功能的恒流LED驱动电路 ,原厂技术支持
LED芯片越亮,发热量越大,还是芯片越暗,发热量越大?
变频器参数的电流环与速度环调节方法
调试DLP4710遇到只亮暗白光,不显示内容的问题,怎么解决?
DLP3010EVM-LC测试了250hz以及更高的帧率发现亮度不稳定,出现忽亮忽暗的情况,怎么解决?
正反馈调节与负反馈调节的区别
电流控制器怎么调节
基于FPGA实现图像直方图设计

FPGA图像的亮暗调节之变暗调节
评论