伽马变换:在图像处理中,将漂白(相机过曝)的图片或者过暗(曝光不足)的图片,进行修正!

伽马变换的基本形式如下:

曲线图如下:

通过以上曲线图:

gamma值小于1时,会拉伸图像中灰度级较低的区域,同时会压缩灰度级较高的部分

gamma值大于1时,会拉伸图像中灰度级较高的区域,同时会压缩灰度级较低的部分

以下是我测试的效果图:

gamma值设置为2.7,提高了对比度

gamma值设置为0.7,效果如下:

gamma值设置为0.6,效果如下:

gamma值设置为0.4,效果如下:

以下是我测试的代码:

voidCreatTable_Gamma(uchartable[],floatnPercent)

{

floatval;

for(inti=0;i<256;i++)

{

val=pow( (float)i/255.0f, nPercent)*255.0f;

if(val>255)

val=255;

if(val<0)

val=0;

table[i]=(uchar)val;

}

}

voidImageAdjust(IplImage*src,uchartable[])

{

intstep = src->widthStep; //相邻行的同列点之间的字节数

intchannels = src->nChannels; //颜色通道数目(1,2,3,4)

uchar*data = (uchar*)src->imageData;

//intensity transform

intx,y;

int val;

for(y = 0; y < src->height;y++)

{

for(x = 0; x < src->width;x++)

{

for(intk=0;k != channels; ++ k)

{

val= data[y*step+x*channels+k];

data[y*step+x*channels+k]= table[val];

}

}

}

}

intmain()

{

char*filename="D:\\gamma\\2.jpg";

IplImage*dst,*src = cvLoadImage(filename);

if(!src)

{

printf("Couldn'tseem to Open %s, sorry/n",filename);

return-1;

}

cvNamedWindow("src");

cvNamedWindow("result");

dst= cvCloneImage(src);

uchartable[256];

CreatTable_Gamma(table,2.7 );

ImageAdjust(src,table);

cvShowImage("src",dst);

cvShowImage("result",src);

cvWaitKey(0);

cvDestroyWindow("src");

cvDestroyWindow("result");

cvReleaseImage(&src );

cvReleaseImage(&dst );

return0;

}

图像增强——伽马变换相关推荐

  1. 图像增强算法汇总(直方图均衡化、拉普拉斯、Log变换、gamma伽马变换)附MATLAB代码

    一.图像增强算法介绍 图像增强算法常见于对图像的亮度.对比度.饱和度.色调等进行调节,增加其清晰度,减少噪点等.图像增强往往经过多个算法的组合,完成上述功能,比如图像去燥等同于低通滤波器,增加清晰度则 ...

  2. 图像增强算法(直方图均衡化、拉普拉斯、Log、伽马变换)

    一.图像增强算法原理 图像增强算法常见于对图像的亮度.对比度.饱和度.色调等进行调节,增加其清晰度,减少噪点等.图像增强往往经过多个算法的组合,完成上述功能,比如图像去燥等同于低通滤波器,增加清晰度则 ...

  3. 数字图像处理-空间域处理-灰度变换-基本灰度变换函数(反转变换、对数变换、伽马变换和分段线性变换)

    数字图像处理-空间域处理-灰度变换-基本灰度变换函数(反转变换.对数变换.伽马变换和分段线性变换) 空间域处理是直接对像素进行操作的方法,这是相对于频率域处理而言的.空间域处理主要分为两大类:灰度变换 ...

  4. Java实现图像增强之伽马变换

    图像增强之伽马变换 接着上篇,我们再来说说伽马变换进行图像增强,实际上伽马变换利用的正式幂函数的特征,对输入的过暗或过亮的图像进行想要的变换.因此只有先了解幂函数,我们才能理解伽马变换的本质.照例我们 ...

  5. OpenCV--Python 图像增强(线性变换,直方图正规化,伽马变换,全局直方图均衡化,限制对比度的自适应直方图均衡化)

    图像增强主要解决由于图像的灰度级范围较小造成的对比度较低的问题,目的就是将输出图像的灰度级放大到指定的程度,使得图像中的细节看起来增加清晰.对比度增强有几种常用的方法,如线性变换.分段线性变换.伽马变 ...

  6. [Python图像处理] 十六.图像的灰度非线性变换之对数变换、伽马变换

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

  7. 【OpenCV 例程200篇】44. 图像的灰度变换(伽马变换)

    [OpenCV 例程200篇]44. 图像的灰度变换(伽马变换) 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 线性 ...

  8. opencv 伽马变换

    1.算法原理 伽马变换一种灰度变换,属于简单图像增强,也称幂律变换 先介绍两个函数 1.normalize 归一化 normalize(imageGamma, imageGamma, 0, 255, ...

  9. 图像算法一:【图像点运算】灰度直方图、伽马变换、灰度阈值变换、分段线性变换、直方图均衡化

    灰度直方图:imhist() %描述了图像灰度统计信息,主要应用于图像分割和图像灰度变换.>>Img=imread( ' xxx.jpg' ); %读图>>I=imhist(I ...

最新文章

  1. 关于“System.Data.ProviderIncompatibleException”类型的异常
  2. 【Java基础】Java中的char是否可以存储一个中文字符之理解字符字节以及编码集
  3. webpack打包处理js文件中的高级语法
  4. 地理标志农产品数据发布 特色产业对话农民丰收节交易会
  5. fatal error RC1004: unexpected end of file found处理方法
  6. html有3d效果的网页,HTML5如何在网页中实现3D效果?
  7. 学了这么久Java都没搞懂位运算符
  8. python中注释的作用_Python函数添加注释的好处
  9. AS3.0中的显示编程(五)-- Loader(加载器)
  10. web前端三大主流框架分析对比
  11. 用户体验测试之专家评估
  12. html中使用img标签图片无法正常显示
  13. UnicodeDecodeError: ‘gb2312‘ codec can‘t decode byte 0xe9 in position 5632: illegal multibyte sequen
  14. 2015年360校招笔试题
  15. 最终结束漂泊的身份-我办理北京人才引进的经历
  16. JAVA分解与合并文件函数_Windows WIM文件的分割,合并,瘦身操作
  17. URL Schemes
  18. Java绝对好文,转载的!(转载)
  19. 计算机系统基础实验——数据的机器级表示
  20. 解析dump的几种方式

热门文章

  1. 使用CainAbel进行网络嗅探
  2. HTML5 (五) 表格的使用
  3. 数据库触发器(转自http://blog.csdn.net/chinayuan/article/details/6292335/#)
  4. 将多个仓库组成的GitHub站点部署到Vercel并绑定独立域名
  5. Hexagon SDK安装过程指导
  6. ios safari 开启无痕浏览(隐私模式)报QuotaExceededError: DOM Exception 22异常解决办法...
  7. [poj1741]tree 解题报告
  8. CSS Tailwind
  9. Java入门part6--继承和多态
  10. 我的不过范德萨就好过放电