伽马校正: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@(*)
begin
	case(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
end

endmodule

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/262387.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CSS(五) -- 动效实现(立体盒子旋转-四方体+正六边)

一. 四面立体旋转 正方形旋转 小程序中 wxss中 <!-- 背景 --><view class"dragon"><!--旋转物体位置--><view class"dragon-position"><!--旋转 加透视 有立体的感觉--><view class"d-parent"><view …

【JVM】一、认识JVM

文章目录 1、虚拟机2、Java虚拟机3、JVM的整体结构4、Java代码的执行流程5、JVM的分类6、JVM的生命周期 1、虚拟机 虚拟机&#xff0c;Virtual Machine&#xff0c;一台虚拟的计算机&#xff0c;用来执行虚拟计算机指令。分为&#xff1a; 系统虚拟机&#xff1a;如VMware&am…

Bash 脚本学习

文章目录 1、脚本编程基础2. 变量2.1 参数变量的引用2.2 环境变量 3 条件判断语句3.1 if 语句3.1.1 语法3.1.2 案例 3.2 case 语句3.2.1 语法3.2.2 案例 3.3 判断参数说明 4 循环语句4.1 for 循环4.1.1 语法4.1.2 案例 4.2 while循环4.2.1 语法4.2.2 案例4. 3 循环总结 5. 函数…

7.串口通信uart编写思路及自定义协议

前言&#xff1a; 串口是很重要的&#xff0c;有许多模块通信接口就是串口&#xff0c;例如gps模块&#xff0c;蓝牙模块&#xff0c;wifi模块还有一些精度比较高的陀螺仪模块等等&#xff0c;所以学会了串口之后&#xff0c;这些听起来很牛批的模块都能够用起来了。此外&#…

RTP/RTCP/RTSP/SIP/SDP/RTMP对比

RTP&#xff08;Real-time Transport Protocol&#xff09;是一种用于实时传输音频和视频数据的协议。它位于传输层和应用层之间&#xff0c;主要负责对媒体数据进行分包、传输和定时。 RTCP&#xff08;Real-Time Control Protocol&#xff09;是 RTP 的控制协议&#xff0c;…

持续集成交付CICD:基于ArgoCD 的GitOps 自动化完成前端项目应用发布与回滚

目录 一、实验 1. 环境 2. K8S master节点部署Argo CD 3.基于ArgoCD 实现GitOps &#xff08;同步部署文件&#xff09; 4.基于ArgoCD 实现GitOps &#xff08;同步HELM文件&#xff09; 二、问题 1. ArgoCD 连接K8S集群状态为 Unknown 2.ArgoCD 创建application失败 …

03-JVM对象创建与内存分配机制深度剖析

文章目录 对象的创建对象创建的主要流程一、类加载检查二、分配内存划分内存的方法解决并发问题的方法 三、初始化零值四、设置对象头五、执行<init>方法 对象半初始化对象大小与指针压缩什么是java对象的指针压缩&#xff1f;为什么要进行指针压缩&#xff1f; 对象内存…

快速学习 webpack

目录 1. webpack基本概念 webpack能做什么&#xff1f; 2. webpack的使用步骤 2.1_webpack 更新打包 3. webpack的配置 3.1_打包流程图 3.2_案例-webpack隔行变色 3.3_插件-自动生成html文件 3.4_加载器 - 处理css文件问题 3.5_加载器 - 处理css文件 3.6_加载器 - 处…

【深入解析spring cloud gateway】12 gateway参数调优与分析

本节主要对网关主要的一些参数做一些解释说明&#xff0c;并用压测工具测试一下网关的接口&#xff0c;通过压测来验证参数配置是否合理 一、连接池参数 参数示例 spring:application:name: gatewaycloud:gateway:# http连接设置httpclient:# 全局的响应超时时间&#xff0c…

驱动开发的完善 --- 芯片手册导读 + I/O口操控代码的编写

在我上上节的博文中&#xff08;linux驱动的学习 & 驱动开发初识-CSDN博客&#xff09;&#xff1a; 我通过一个基本的字符设备驱动框架来测试了驱动的运行&#xff0c;但是在“pin4_open”和“pin4_write”这两个驱动函数的函数体里只写了一句内核打印的代码&#xff0c;作…

微软官方出品:GPT大模型编排工具,支持C#、Python等多个语言版本

随着ChatGPT的火热&#xff0c;基于大模型开发应用已经成为新的风口。虽然目前的大型模型已经具备相当高的智能水平&#xff0c;但它们仍然无法完全实现业务流程的自动化&#xff0c;从而达到用户的目标。 微软官方开源的Semantic Kernel的AI编排工具&#xff0c;就可以很好的…

【深度学习】注意力机制(七)Agent Attention

本文介绍Agent Attention注意力机制&#xff0c;Transformer中的Attention模块可以提取全局语义信息&#xff0c;但是计算量太大&#xff0c;Agent Attention是一种计算非常有效的Attention模块。 论文&#xff1a;Agent Attention: On the Integration of Softmax and Linear…

融资项目——vue之双向数据绑定

上一篇文章中使用的v-bind是单向绑定方法&#xff0c;即数据改变&#xff0c;网页相应的视图发生改变&#xff0c;但是网页视图发生改变其相关联的数据不会发生改变。但是双向数据绑定不同之处在于网页视图发生改变其相关联的数据也会发生改变。Vue可以使用v-model进行双向数据…

docker-compose安装Rocketmq总结,以及如何更换mq端口

默认你已经装好了docker哈 安装docker-compose sudo curl -L https://github.com/docker/compose/releases/download/1.25.1-rc1/docker-compose-uname -s-uname -m -o /usr/local/bin/docker-composechmod x /usr/local/bin/docker-composedocker-compose --version成功打印…

4.2 克隆

一&#xff0c;什么是克隆&#xff1f; 克隆是指通过共享缓冲区来复制内容&#xff08;例如&#xff0c;两个窗口共享相同的内容&#xff09;。 克隆可用于提高性能&#xff1a; 可以减少所需的更新次数。 你可以在多个显示器上显示内容&#xff0c;但只需要更新一个缓冲区…

C# 使用MSTest进行单元测试

目录 写在前面 代码实现 执行结果 写在前面 MSTest是微软官方提供的.NET平台下的单元测试框架&#xff1b;可使用DataRow属性来指定数据&#xff0c;驱动测试用例所用到的值&#xff0c;连续对每个数据化进行运行测试&#xff0c;也可以使用DynamicData 属性来指定数据&…

服务器数据恢复-服务器断电导致linux操作系统数据丢失的数据恢复案例

linux操作系统服务器数据恢复环境&#xff1a; 某品牌R730服务器MD3200系列存储&#xff0c;linux操作系统。 服务器故障&#xff1a; 机房意外断电导致服务器linux操作系统部分文件丢失。 服务器数据恢复过程&#xff1a; 1、将故障服务器连接到北亚企安数据恢复中心备份服务器…

vue3 组合式pinia的使用 案例

需求&#xff1a;用户登录时&#xff0c;结合session实现永久化存贮个人信息 import { computed, ref } from vue import { defineStore } from pinia import { logOn } from /service// sessionStorage的封装 import { SET_USER_TOKEN, STORAGE_GET, STORAGE_SET } from /util…

【PyTorch】代码学习

文章目录 直接定义nn.Sequential(), 然后append(),最后直接net(),少写很多forward&#xff0c;适合直连式网络 直接定义nn.Sequential(), 然后append(),最后直接net(),少写很多forward&#xff0c;适合直连式网络 代码来源&#xff1a;https://github.com/zshhans/MSD-Mixer/b…

ros2启动gazebo方式

我安装的是官方建议的gz-harxxx版本。就用这个启动 ros2 launch ros_ign_gazebo ign_gazebo.launch.py 哎我鼓捣了2个小时的东西&#xff0c;就这么公布出来好像有点不甘心啊&#xff0c;此文章全国第一个发布&#xff0c;没有之一