matlab里伽马校正的特点,查表法实现gamma校正的matlab仿真模型源码
% function
LUT(GammaValue)
GammaValue=2
%生成查找表
for i=0:255
x=double(i);
correction=256*((x+0.5)/256)^(1/GammaValue)-0.5;
table(i+1)=uint8(correction);
end
%输出到mif
fid=fopen('gamma_correction.mif','w+');
fprintf(fid,'--GammaValue=M
\r\n',double(GammaValue));
fprintf(fid,'--%s.\r\n',datestr(now));
fprintf(fid,'%x\n',(table(1:256)))
fclose(fid)
%插值LUT 生成interp
for i=0:63
interp(1+i)=table(1+4*i)
end
fid=fopen('interpolation.mif','w+');
fprintf(fid,'--interpolation GammaValue=M
\r\n',double(GammaValue));
fprintf(fid,'--%s.\r\n',datestr(now));
fprintf(fid,'%x\n',(interp(1:64)));
%% load image
data=imread('1.jpg');
[sx,sy,sz]=size(data);
r=data(:,:,1);
g=data(:,:,2);
b=data(:,:,3);
%write R value to
r.mif
fid=fopen('r.mif','w+');
for i=1:sx
for
j=1:sy
fprintf(fid,'%d\n',r(i,j));
end
end
fclose(fid);
%write G value to
g.mif
fid=fopen('g.mif','w+');
for i=1:sx
for
j=1:sy
fprintf(fid,'%d\n',g(i,j));
end
end
fclose(fid);
%write B value to
b.mif
fid=fopen('b.mif','w+');
for i=1:sx
for
j=1:sy
fprintf(fid,'%d\n',b(i,j));
end
end
fclose(fid);
%% correcting
data_in=double(data);
[x,y,z]=size(data_in)
for i=1:x
for j=1:y
for k=1:z
temp=data_in(i,j,k);
m=rem(temp,4);
n=fix(temp/4);
if (n+2)>64
gamm(i,j,k)=interp(64);
else
switch m
case 0
gamm(i,j,k)=interp(n+1);
case 1
gamm(i,j,k)=0.75*interp(n+1)+0.25*interp(n+2);
case 2
gamm(i,j,k)=0.5*interp(n+1)+0.5*interp(n+2);
case
3
gamm(i,j,k)=0.25*interp(n+1)+0.75*interp(n+2);
end
end
%
t1=double((temp+0.5)/256);
%
t2=double(t1^(1/6.6));
%
t3=double(256*t2-0.5);
%
gamm(i,j,k)=uint8(t3);
end
end
end
pic=cat(2,data,gamm);
figure,imshow
(pic)
matlab里伽马校正的特点,查表法实现gamma校正的matlab仿真模型源码相关推荐
- 基于查表法的永磁同步电机MTPA-MTPV控制仿真模型,查表法,最大电流弱磁控制
基于查表法的永磁同步电机MTPA-MTPV控制仿真模型,查表法,最大电流弱磁控制 永磁电机 基于查表法的永磁同步电机MTPA-MTPV控制仿真模型 电动汽车用永磁同步电机查表法控制Matlab 波形很 ...
- 基于查表法的电动汽车用永磁同步电机电驱驱动控制MATLAB仿真模型
基于查表法的电动汽车用永磁同步电机电驱驱动控制MATLAB仿真模型 ID:9650668259905619tbNick_7oa1d
- LUT查表法乘法器所犯下错误。。。。
程序参见黑金时序篇一章实验五LUT查表法实验,不同的是LUT我用了一个ROM来实现,word depth 256,word size 16,数据用matlab生成,发现matlab确实好强大,不用操作 ...
- STM32CUBEMX—查表法实现SPWM
SPWM称为正弦波脉宽调制,其原理是采用三角波作为载波,正弦波作为调制波合成后生成的等高不等宽的PWM波.在simulink仿真中直接用三角波模块与sine wave合成即可,但对于编程来说比较麻烦, ...
- JAVA-初步认识-第五章-数组-常见操作-进制转换(查表法)
一. 数组的常见应用 数组在开发中什么时候用? 举例说明: 需求:获取一个整数的十六进制表现形式(要明白十六进制的表现形式是什么样子,有数字有字母) 本来应该返回一个字符串,但是还没有学到返回字符串, ...
- FPGA如何利用查表法得到某角度所对应的正弦值、余弦值
FPGA如何利用查表法得到某角度所对应的正弦值.余弦值 1 实现思路 2 具体实现步骤 2.1 MATLAB生成sin.coe文件和cos.coe文件 2.2 将sin.coe和cos.coe文件分别 ...
- 步进电机S(SigMoid)曲线加减速【查表法】
首先感谢以下博客的博主提供的参考公式:https://blog.csdn.net/pengzhihui2012/article/details/52228822?locationNum=6 首先在本设 ...
- CRC冗余校验码及查表法
CRC冗余校验码及查表法 什么是CRC编码 它将一个长度为k的位串看作是系数是0或者1的k-1次多项式 使用一个长度为r+1的生成多项式进行模2计算,生成一个长度为r的字符序列,能检测长度小于等于r的 ...
- 【Matlab破损识别】机器视觉+SVM玉米种子破损识别(带面板)【含GUI源码 1651期】
一.代码运行视频(哔哩哔哩) [Matlab破损识别]机器视觉+SVM玉米种子破损识别(带面板)[含GUI源码 1651期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考 ...
最新文章
- 安卓中如何判断一个字符串是否为空
- block(六)循环引用-b
- mysql large pages_Linux HugePages及MySQL 大页配置
- datagrid出现相同两组数据_stata 数据操作基础知识:以一篇论文数据操作为例
- ESP8266编译脚本
- TensorFlow高阶 API: keras教程-使用tf.keras搭建mnist手写数字识别网络
- Linux开机启动过程详细分析
- PHP语言 -- 文件上传
- 2017年9月计算机二级c语言,2017年9月计算机二级C语言程序设计练习题
- 【华为云技术分享】初识MySQL隔离级别
- 夺命雷公狗TP3.2.3商城16-----无限极分类删除(玩法1:有子级分类的不能删除)...
- medit 和 .mesh 文件
- 轻松解决SAP系统采购信息计量中物料价格不能保存含税价问题
- python代码去马赛克,Python黑科技神奇去除马赛克
- 在vue项目中使用骨架屏
- 周日报名截止,翼支付杯大数据建模大赛16万大奖邀你来!!
- Python提取图片中的文字信息
- 一款吊到不行接私活儿软件!
- 混合波束成形|重叠子阵结构下的HBF探讨
- 如何使用 开源硬件Banana PI BPI-R2‘s GPIO-s