关注、星标公众号,精彩内容每日送达
来源:网络素材红外成像技术具有全天候工作、烟雾穿透能力强等优势,在军事侦察、工 业检测、安防监控等领域应用广泛。然而,由于外部环境和探测器硬件性能影响,红外图像可能存在过曝光和欠曝光的情况,进而导致图存在过亮和过暗的情况,影响图像质量因此,需要对采集到的红外图像进行二次处理,实现图像的亮度和对比度改善。
伽马(Gamma)校正作为一种常用的图像增强方法,其核心思想是通过幂律变换对图像信号进行非线性压缩或扩展,以补偿成像系统和显示系统之间的亮度响应差异,从而实现图像亮度的感知线性化与视觉一致性。
典型的伽马校正公式可表示为:


当校正系数大于1时,将对图像亮部进行压缩,图像整体变暗,当校正系数小于1时,将对图像暗部进行增强,图像整体变亮。
根据上述公式绘制出的伽马校正曲线如下图所示:

图1 伽马校正曲线图
利用matlab仿真红外图像的伽马校正结果如下:

图2 红外图像的伽马校正结果(matlab仿真)
在实际成像系统中,需要将上述伽马校正算法部署至FPGA上,此时需要利用verilog语言实现。verilog实现伽马校正的部分代码如下:
module gamma_sqrt
(input wire clk , //时钟input wire rst_n , //复位//input ---------------------------------------------input wire RGB_hsync , //RGB行同步input wire RGB_vsync , //RGB场同步input wire [15:0] RGB_data , //RGB数据input wire RGB_de , //RGB数据使能//output --------------------------------------------output wire gamma_hsync , //gamma行同步output wire gamma_vsync , //gamma场同步output wire [15:0] gamma_data , //gamma数据output wire gamma_de //gamma数据使能);//========================< 定义信号 >==========================================wire [ 7:0] R ;wire [ 7:0] G ;wire [ 7:0] B ;wire [ 7:0] gamma_R ;wire [ 7:0] gamma_G ;wire [ 7:0] gamma_B ;reg RGB_de_r ;reg RGB_hsync_r ;reg RGB_vsync_r ;
assign R = {RGB_data[15:11],RGB_data[13:11]};assign G = {RGB_data[10: 5],RGB_data[ 6: 5]};assign B = {RGB_data[ 4: 0],RGB_data[ 2: 0]};//==========================================================================//== gamma变换//==========================================================================rom_sqrt u_R( .address (R ), .clock (clk ), .q (gamma_R ));
rom_sqrt u_G( .address (G ), .clock (clk ), .q (gamma_G ));
rom_sqrt u_B( .address (B ), .clock (clk ), .q (gamma_B ));
assign gamma_data = {gamma_R[7:3],gamma_G[7:2],gamma_B[7:3]};
always @(posedge clk or negedge rst_n) begin if(!rst_n) begin RGB_de_r <= 1'b0; RGB_hsync_r <= 1'b0; RGB_vsync_r <= 1'b0; end else begin RGB_de_r <= RGB_de; RGB_hsync_r <= RGB_hsync; RGB_vsync_r <= RGB_vsync; endend
assign gamma_de = RGB_de_r;assign gamma_hsync = RGB_hsync_r;assign gamma_vsync = RGB_vsync_r;
endmodule上述展示校正系数小于1时的verilog代码,主要思想是通过查找表的方式实现Gamma校正,同时保持时序同步。
本次实验的平台为正点原子的Altera FPGA开发板,开发环境为Quartus 和ModelSim。Gamma校正的上板验证结果如下:

图3 FPGA上实现红外图像的伽马校正(校正系数大于1),左图为输入图像,右图为校正后图像。

图4 FPGA上实现红外图像的伽马校正(校正系数小于1),左图为输入图像,右图为校正后图像。
如图3和图4所示,将Gamma校正方法在FPGA上进行部署,实现红外图像亮度和对比度的调整。但本次实验仅实现简单的Gamma校正,需要去手动调整校正系数,后续将进一步探索自适应Gamma校正的FPGA实现。
(全文完)
声明:我们尊重原创,也注重分享;文字、图片版权归原作者所有。转载目的在于分享更多信息,不代表本号立场,如有侵犯您的权益请及时联系,我们将第一时间删除,谢谢!

想要了解FPGA吗?这里有实例分享,ZYNQ设计,关注我们的公众号,探索
2377

被折叠的 条评论
为什么被折叠?



