伽马校正:FPGA

2023-12-23 07:12
文章标签 fpga 校正 伽马

本文主要是介绍伽马校正:FPGA,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

参考资料:

Tone Mapping 与 Gamma Correction - 知乎 (zhihu.com)

Book_VIP: 《基于MATLAB与FPGA的图像处理教程》此书是业内第一本基于MATLAB与FPGA的图像处理教程,第一本真正结合理论及算法加速方案,在Matlab验证,以及在FPGA上加速实现的书籍,填补了行业的空缺,书中选择了几十个图像处理算法进行硬件加速,希望真正能够让从业者了解如何采用FPGA进行加速,如何掌握精髓,改变未来。 这里,借用Gitee,托管本书相关的图像算法代码及相关资料等,与您共享。icon-default.png?t=N7T8https://gitee.com/crazybingo/Book_VIP* 代码是从这里拿来的程序改的。

目的:把图片变亮或变暗。

实现方法:查找表。

Gamma值0.6:

//Curve of Gamma = 0.6
module Gamma_06
(input		[7:0]	Pre_Data,output	reg	[7:0]	Post_Data
);always@(*)
begincase(Pre_Data)8'h00 : Post_Data = 8'h00; 8'h01 : Post_Data = 8'h09; 8'h02 : Post_Data = 8'h0E; 8'h03 : Post_Data = 8'h12; 8'h04 : Post_Data = 8'h15; 8'h05 : Post_Data = 8'h18; 8'h06 : Post_Data = 8'h1B; 8'h07 : Post_Data = 8'h1D; 8'h08 : Post_Data = 8'h20; 8'h09 : Post_Data = 8'h22; 8'h0A : Post_Data = 8'h25; 8'h0B : Post_Data = 8'h27; 8'h0C : Post_Data = 8'h29; 8'h0D : Post_Data = 8'h2B; 8'h0E : Post_Data = 8'h2D; 8'h0F : Post_Data = 8'h2F; 8'h10 : Post_Data = 8'h30; 8'h11 : Post_Data = 8'h32; 8'h12 : Post_Data = 8'h34; 8'h13 : Post_Data = 8'h36; 8'h14 : Post_Data = 8'h37; 8'h15 : Post_Data = 8'h39; 8'h16 : Post_Data = 8'h3B; 8'h17 : Post_Data = 8'h3C; 8'h18 : Post_Data = 8'h3E; 8'h19 : Post_Data = 8'h3F; 8'h1A : Post_Data = 8'h41; 8'h1B : Post_Data = 8'h42; 8'h1C : Post_Data = 8'h44; 8'h1D : Post_Data = 8'h45; 8'h1E : Post_Data = 8'h47; 8'h1F : Post_Data = 8'h48; 8'h20 : Post_Data = 8'h49; 8'h21 : Post_Data = 8'h4B; 8'h22 : Post_Data = 8'h4C; 8'h23 : Post_Data = 8'h4D; 8'h24 : Post_Data = 8'h4F; 8'h25 : Post_Data = 8'h50; 8'h26 : Post_Data = 8'h51; 8'h27 : Post_Data = 8'h53; 8'h28 : Post_Data = 8'h54; 8'h29 : Post_Data = 8'h55; 8'h2A : Post_Data = 8'h56; 8'h2B : Post_Data = 8'h58; 8'h2C : Post_Data = 8'h59; 8'h2D : Post_Data = 8'h5A; 8'h2E : Post_Data = 8'h5B; 8'h2F : Post_Data = 8'h5C; 8'h30 : Post_Data = 8'h5E; 8'h31 : Post_Data = 8'h5F; 8'h32 : Post_Data = 8'h60; 8'h33 : Post_Data = 8'h61; 8'h34 : Post_Data = 8'h62; 8'h35 : Post_Data = 8'h63; 8'h36 : Post_Data = 8'h64; 8'h37 : Post_Data = 8'h66; 8'h38 : Post_Data = 8'h67; 8'h39 : Post_Data = 8'h68; 8'h3A : Post_Data = 8'h69; 8'h3B : Post_Data = 8'h6A; 8'h3C : Post_Data = 8'h6B; 8'h3D : Post_Data = 8'h6C; 8'h3E : Post_Data = 8'h6D; 8'h3F : Post_Data = 8'h6E; 8'h40 : Post_Data = 8'h6F; 8'h41 : Post_Data = 8'h70; 8'h42 : Post_Data = 8'h71; 8'h43 : Post_Data = 8'h72; 8'h44 : Post_Data = 8'h73; 8'h45 : Post_Data = 8'h74; 8'h46 : Post_Data = 8'h75; 8'h47 : Post_Data = 8'h76; 8'h48 : Post_Data = 8'h77; 8'h49 : Post_Data = 8'h78; 8'h4A : Post_Data = 8'h79; 8'h4B : Post_Data = 8'h7A; 8'h4C : Post_Data = 8'h7B; 8'h4D : Post_Data = 8'h7C; 8'h4E : Post_Data = 8'h7D; 8'h4F : Post_Data = 8'h7E; 8'h50 : Post_Data = 8'h7F; 8'h51 : Post_Data = 8'h80; 8'h52 : Post_Data = 8'h81; 8'h53 : Post_Data = 8'h82; 8'h54 : Post_Data = 8'h83; 8'h55 : Post_Data = 8'h84; 8'h56 : Post_Data = 8'h85; 8'h57 : Post_Data = 8'h86; 8'h58 : Post_Data = 8'h87; 8'h59 : Post_Data = 8'h88; 8'h5A : Post_Data = 8'h89; 8'h5B : Post_Data = 8'h89; 8'h5C : Post_Data = 8'h8A; 8'h5D : Post_Data = 8'h8B; 8'h5E : Post_Data = 8'h8C; 8'h5F : Post_Data = 8'h8D; 8'h60 : Post_Data = 8'h8E; 8'h61 : Post_Data = 8'h8F; 8'h62 : Post_Data = 8'h90; 8'h63 : Post_Data = 8'h91; 8'h64 : Post_Data = 8'h91; 8'h65 : Post_Data = 8'h92; 8'h66 : Post_Data = 8'h93; 8'h67 : Post_Data = 8'h94; 8'h68 : Post_Data = 8'h95; 8'h69 : Post_Data = 8'h96; 8'h6A : Post_Data = 8'h97; 8'h6B : Post_Data = 8'h97; 8'h6C : Post_Data = 8'h98; 8'h6D : Post_Data = 8'h99; 8'h6E : Post_Data = 8'h9A; 8'h6F : Post_Data = 8'h9B; 8'h70 : Post_Data = 8'h9C; 8'h71 : Post_Data = 8'h9C; 8'h72 : Post_Data = 8'h9D; 8'h73 : Post_Data = 8'h9E; 8'h74 : Post_Data = 8'h9F; 8'h75 : Post_Data = 8'hA0; 8'h76 : Post_Data = 8'hA1; 8'h77 : Post_Data = 8'hA1; 8'h78 : Post_Data = 8'hA2; 8'h79 : Post_Data = 8'hA3; 8'h7A : Post_Data = 8'hA4; 8'h7B : Post_Data = 8'hA5; 8'h7C : Post_Data = 8'hA5; 8'h7D : Post_Data = 8'hA6; 8'h7E : Post_Data = 8'hA7; 8'h7F : Post_Data = 8'hA8; 8'h80 : Post_Data = 8'hA9; 8'h81 : Post_Data = 8'hA9; 8'h82 : Post_Data = 8'hAA; 8'h83 : Post_Data = 8'hAB; 8'h84 : Post_Data = 8'hAC; 8'h85 : Post_Data = 8'hAD; 8'h86 : Post_Data = 8'hAD; 8'h87 : Post_Data = 8'hAE; 8'h88 : Post_Data = 8'hAF; 8'h89 : Post_Data = 8'hB0; 8'h8A : Post_Data = 8'hB0; 8'h8B : Post_Data = 8'hB1; 8'h8C : Post_Data = 8'hB2; 8'h8D : Post_Data = 8'hB3; 8'h8E : Post_Data = 8'hB3; 8'h8F : Post_Data = 8'hB4; 8'h90 : Post_Data = 8'hB5; 8'h91 : Post_Data = 8'hB6; 8'h92 : Post_Data = 8'hB6; 8'h93 : Post_Data = 8'hB7; 8'h94 : Post_Data = 8'hB8; 8'h95 : Post_Data = 8'hB9; 8'h96 : Post_Data = 8'hB9; 8'h97 : Post_Data = 8'hBA; 8'h98 : Post_Data = 8'hBB; 8'h99 : Post_Data = 8'hBC; 8'h9A : Post_Data = 8'hBC; 8'h9B : Post_Data = 8'hBD; 8'h9C : Post_Data = 8'hBE; 8'h9D : Post_Data = 8'hBF; 8'h9E : Post_Data = 8'hBF; 8'h9F : Post_Data = 8'hC0; 8'hA0 : Post_Data = 8'hC1; 8'hA1 : Post_Data = 8'hC2; 8'hA2 : Post_Data = 8'hC2; 8'hA3 : Post_Data = 8'hC3; 8'hA4 : Post_Data = 8'hC4; 8'hA5 : Post_Data = 8'hC4; 8'hA6 : Post_Data = 8'hC5; 8'hA7 : Post_Data = 8'hC6; 8'hA8 : Post_Data = 8'hC7; 8'hA9 : Post_Data = 8'hC7; 8'hAA : Post_Data = 8'hC8; 8'hAB : Post_Data = 8'hC9; 8'hAC : Post_Data = 8'hC9; 8'hAD : Post_Data = 8'hCA; 8'hAE : Post_Data = 8'hCB; 8'hAF : Post_Data = 8'hCB; 8'hB0 : Post_Data = 8'hCC; 8'hB1 : Post_Data = 8'hCD; 8'hB2 : Post_Data = 8'hCE; 8'hB3 : Post_Data = 8'hCE; 8'hB4 : Post_Data = 8'hCF; 8'hB5 : Post_Data = 8'hD0; 8'hB6 : Post_Data = 8'hD0; 8'hB7 : Post_Data = 8'hD1; 8'hB8 : Post_Data = 8'hD2; 8'hB9 : Post_Data = 8'hD2; 8'hBA : Post_Data = 8'hD3; 8'hBB : Post_Data = 8'hD4; 8'hBC : Post_Data = 8'hD4; 8'hBD : Post_Data = 8'hD5; 8'hBE : Post_Data = 8'hD6; 8'hBF : Post_Data = 8'hD6; 8'hC0 : Post_Data = 8'hD7; 8'hC1 : Post_Data = 8'hD8; 8'hC2 : Post_Data = 8'hD8; 8'hC3 : Post_Data = 8'hD9; 8'hC4 : Post_Data = 8'hDA; 8'hC5 : Post_Data = 8'hDA; 8'hC6 : Post_Data = 8'hDB; 8'hC7 : Post_Data = 8'hDC; 8'hC8 : Post_Data = 8'hDC; 8'hC9 : Post_Data = 8'hDD; 8'hCA : Post_Data = 8'hDE; 8'hCB : Post_Data = 8'hDE; 8'hCC : Post_Data = 8'hDF; 8'hCD : Post_Data = 8'hE0; 8'hCE : Post_Data = 8'hE0; 8'hCF : Post_Data = 8'hE1; 8'hD0 : Post_Data = 8'hE2; 8'hD1 : Post_Data = 8'hE2; 8'hD2 : Post_Data = 8'hE3; 8'hD3 : Post_Data = 8'hE4; 8'hD4 : Post_Data = 8'hE4; 8'hD5 : Post_Data = 8'hE5; 8'hD6 : Post_Data = 8'hE6; 8'hD7 : Post_Data = 8'hE6; 8'hD8 : Post_Data = 8'hE7; 8'hD9 : Post_Data = 8'hE7; 8'hDA : Post_Data = 8'hE8; 8'hDB : Post_Data = 8'hE9; 8'hDC : Post_Data = 8'hE9; 8'hDD : Post_Data = 8'hEA; 8'hDE : Post_Data = 8'hEB; 8'hDF : Post_Data = 8'hEB; 8'hE0 : Post_Data = 8'hEC; 8'hE1 : Post_Data = 8'hED; 8'hE2 : Post_Data = 8'hED; 8'hE3 : Post_Data = 8'hEE; 8'hE4 : Post_Data = 8'hEE; 8'hE5 : Post_Data = 8'hEF; 8'hE6 : Post_Data = 8'hF0; 8'hE7 : Post_Data = 8'hF0; 8'hE8 : Post_Data = 8'hF1; 8'hE9 : Post_Data = 8'hF2; 8'hEA : Post_Data = 8'hF2; 8'hEB : Post_Data = 8'hF3; 8'hEC : Post_Data = 8'hF3; 8'hED : Post_Data = 8'hF4; 8'hEE : Post_Data = 8'hF5; 8'hEF : Post_Data = 8'hF5; 8'hF0 : Post_Data = 8'hF6; 8'hF1 : Post_Data = 8'hF7; 8'hF2 : Post_Data = 8'hF7; 8'hF3 : Post_Data = 8'hF8; 8'hF4 : Post_Data = 8'hF8; 8'hF5 : Post_Data = 8'hF9; 8'hF6 : Post_Data = 8'hFA; 8'hF7 : Post_Data = 8'hFA; 8'hF8 : Post_Data = 8'hFB; 8'hF9 : Post_Data = 8'hFB; 8'hFA : Post_Data = 8'hFC; 8'hFB : Post_Data = 8'hFD; 8'hFC : Post_Data = 8'hFD; 8'hFD : Post_Data = 8'hFE; 8'hFE : Post_Data = 8'hFE; 8'hFF : Post_Data = 8'hFF; endcase
endendmodule

这篇关于伽马校正:FPGA的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/527168

相关文章

Java五子棋之坐标校正

上篇针对了Java项目中的解构思维,在这篇内容中我们不妨从整体项目中拆解拿出一个非常重要的五子棋逻辑实现:坐标校正,我们如何使漫无目的鼠标点击变得有序化和可控化呢? 目录 一、从鼠标监听到获取坐标 1.MouseListener和MouseAdapter 2.mousePressed方法 二、坐标校正的具体实现方法 1.关于fillOval方法 2.坐标获取 3.坐标转换 4.坐

DDS信号的发生器(验证篇)——FPGA学习笔记8

前言:第一部分详细讲解DDS核心框图,还请读者深入阅读第一部分,以便理解DDS核心思想 三刷小梅哥视频总结! 小梅哥https://www.corecourse.com/lander 一、DDS简介         DDS(Direct Digital Synthesizer)即数字合成器,是一种新型的频率合成技术,具有低成本、低功耗、高分辨率、频率转换时间短、相位连续性好等优点,对数字信

[FPGA][基础模块]跨时钟域传播脉冲信号

clk_a 周期为10ns clk_b 周期为34ns 代码: module pulse(input clk_a,input clk_b,input signal_a,output reg signal_b);reg [4:0] signal_a_widen_maker = 0;reg signal_a_widen;always @(posedge clk_a)if(signal_a)

xilinx FPGA 串口设计笔记

xilinx FPGA  串口设计笔记 在设计中,需要用 FPGA 读取 GPS 内部的信息,GPS 的通信方式为串口,所以在 FPGA 中移植了串口程序。 本次移植的程序源代码是特权的串口程序,本以为移植应该很快就能完成, 但其中还是 出了一写小问题,耽误了不少的时间,下面将问题进行一个总结! 以下是串口的时序: 在设计中,耽误时间最长的问题就是数据老是出错,为了找出问题

如何给MySQL设置远程访问?(官方校正版)

在现代数据驱动的世界中,数据库的灵活性和可访问性变得尤为重要。设置MySQL的远程访问不仅仅是为了方便,还为企业和开发者提供了多种优势。无论是在分布式团队协作、跨地域数据管理,还是在系统集成和实时数据访问方面,远程访问都能显著提升效率和生产力。 目录 1. 修改MySQL配置文件 2. 重启MySQL服务 3. 创建远程访问用户 4. 配置防火墙 a. 使用UFW(适用于Ubun

FPGA学习网站推荐

FPGA学习网站推荐 本文首发于公众号:FPGA开源工坊 引言 FPGA的学习主要分为以下两部分 语法领域内知识 做FPGA开发肯定要首先去学习相应的编程语言,FPGA开发目前在国内采用最多的就是使用Verilog做开发,其次还有一些遗留下来的项目会采用VHDL做开发,现在有一部分公司也开始使用System Verilog做开发。当然还有极少一部分公司会采用HLS,SpinalHDL,C

FPGA结构相关简介

一、芯片分类     ​FPGA属于数字芯片的一种,下面是根据世界半导体贸易统计协会WSTS的一个半导体分类,可以看到FPGA所属的类别。 二、FPGA的发展史     ​下图为FPGA的发展历史 三、FPGA的结构分类 下面是从三个角度进行划分 四、参考资料 《FPGA原理与结构》——天野英晴

FPGA代码规则检查工具

FPGA代码规则检查工具有: 1.Synopsys公司的Spyglass 2.Novas公司的nlint 3.Synopsys公司的Leda

FPGA前仿工具

1.Menter 公司的Modelsim,Questasim 2.Synopsys公司的VCS 3.Cadence公司的IUS:NC_verilg; IES:irun;Xcelium:xrun

FPGA静态时序分析工具

1.Xilinx FPGA 使用Vivado 2.Altera FPGA 使用Quartus 3.Actel FPGA 使用Libero 4.Lattice FPGA使用Diamond 5.Synopsys 公司的Prime Time 6.Cadence 公司的Pearl