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
-
仿真
+關注
關注
50文章
4073瀏覽量
133556 -
圖像數據
+關注
關注
0文章
52瀏覽量
11276 -
Verilog
+關注
關注
28文章
1351瀏覽量
110077 -
VGA
+關注
關注
5文章
535瀏覽量
62905
原文標題:基于FPGA圖像的亮暗調節--變暗調節(附源碼)
文章出處:【微信號:leezym0317,微信公眾號:FPGA開源工作室】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論