【OpenCV学习】图像亮度、对比度调节(伽马校正)

作者:gnuhpc 
出处:http://www.cnblogs.com/gnuhpc/

#include "cv.h"
#include "highgui.h"
#include <stdio.h>
int ImageAdjust(IplImage *src,IplImage *dst,double low,double high,        //x directiondouble bottom,double top,    //y directiondouble gamma);
int main(void)
{char *filename="lena.jpg";IplImage *dst,*src = /blog.armyourlife.info/cvLoadImage(filename,0);if(!src){printf("Couldn't seem to Open %s, sorry/n",filename);return -1;}cvNamedWindow( "src", 1 );cvNamedWindow( "result", 1 );// Image adjustdst = cvCloneImage(src);// 输入参数 [0,0.5] 和 [0.5,1], gamma=1if( ImageAdjust( src, dst, 0, 0.5, 0.5, 1, 1)!=0)return -1;cvShowImage( "src", src );cvShowImage( "result", dst );cvWaitKey(0);cvDestroyWindow("src");cvDestroyWindow("result");cvReleaseImage( &src );cvReleaseImage( &dst );return 0;
}
int ImageAdjust(IplImage* src, IplImage* dst,double low, double high,   // X方向:low and high are the intensities of srcdouble bottom, double top, // Y方向:mapped to bottom and top of dstdouble gamma )
{double low2 = low*255;double high2 = high*255;double bottom2 = bottom*255;double top2 = top*255;double err_in = high2 - low2;double err_out = top2 - bottom2;int x,y;double val;if(low<0 && low>1 && high <0 && high>1&&bottom<0 && bottom>1 && top<0 && top>1 && low>high)return -1;// intensity transformfor( y = 0; y < src->height; y++){for (x = 0; x < src->width; x++){val = ((uchar*)(src->imageData + src->widthStep*y))[x];val=pow((val - low2)/err_in, gamma)*err_out+bottom2;if(val>255)val=255;if(val<0)val=0; // Make sure src is in the range [low,high]((uchar*)(dst->imageData + dst->widthStep*y))[x] = (uchar) val;}}return 0;
}

作者:gnuhpc 
出处:http://www.cnblogs.com/gnuhpc/

图像亮度、对比度调节(伽马校正)相关推荐

  1. 有生之年转ta系列 2.6 伽马校正

    本文内容来自 [技术美术百人计划]图形 2.6 伽马校正 观后记录 美术岗位代码或者算法一类的问题可能不太懂 本文仅用来记录学习,如果有不对的请指出谢谢 图形部分 第二章 伽马校正 颜色空间 色度图 ...

  2. 色彩校正(CCM)和伽马校正(Gamma)

    目录 1.色彩矫正(CCM) 2.伽马校正(Gamma) 1.色彩矫正(CCM)         色彩校正(Color Correction)是指用相同的方法改变图像中的所有像素的颜色值,以得到不同得 ...

  3. OpenGL学习脚印:伽马校正(Gamma Correction)

    写在前面 由于CRT,LED等显示设备显示颜色时并非按照线性方式工作,因此我们在程序中输出的颜色,最终输出到显示器上时会产生亮度减弱的现象,这种现象在计算光照和实时渲染时对图形质量有一定影响,需要我们 ...

  4. 伽马校正笔记(Gamma Correction)

    在数字图像系统中,伽马(Gamma)是一个重要的但很少被正确理解的特性.它定义了一个像素的数值和对应的实际亮度之间的关系. 人眼感知的亮度和相机"看到"的亮度区别 对于数码相机来说 ...

  5. (二十)unity shader之——————基于物理的渲染技术(PBS):下篇(PBS技术拓展:全局光照、伽马校正、HDR)

    前面两篇文章我们介绍了PBS实现的数学和理论基础,和standard shader的原理和实现,还有一些其他的渲染相关的unity技术.其中有些概念和技术没有讲的很详细,现在对这些重要的概念进行更深入 ...

  6. OpenGL Gamma Correction伽马校正的实例

    OpenGL Gamma Correction伽马校正 先上图,再解答. 完整主要的源代码 源代码剖析 先上图,再解答. 完整主要的源代码 #include <glad/glad.h> # ...

  7. matlab批量读取图像图片并批量处理图像(以伽马校正为例)以及批量保存图像

    文章目录 处理1张图片,获取4幅不同伽马校正图像 批量读取图片模板 批量处理多张图片,分别获取4幅伽马校正图像 参考 处理1张图片,获取4幅不同伽马校正图像 实验结果 实验代码 get_4_pictu ...

  8. 利用OpenCV进行图像伽马校正

    伽马校正,最好的,最高效的方法是通过查找表Table来访问. 核心函数LUT(Look UP Table): 这是最被推荐的用于实现批量图像元素查找和更该操作图像方法.在图像处理中,对于一个给定的值, ...

  9. OpenCV论道:为什么我的伽马校正函数只有一行?

    最近在用 OpenCV 识别棋盘棋子,基本的思路是这样的:先转灰度,再做高斯模糊和二值化,此时棋盘格上有的有棋子,有的无棋子:通过迭代腐蚀,消去棋子,再迭代膨胀回来,就得到了一个纯净的棋盘:识别棋盘, ...

最新文章

  1. 经常使用的npm命令
  2. C++ 笔记(13)— 函数(函数声明、函数定义、函数调用[传值、指针、引用]、函数参数默认值、函数重载)
  3. 正则东西类,简化正则匹配
  4. Centos搭建PHP5.3.8+Nginx1.0.9+Mysql5.5.17
  5. sql 精读(三) 标准 SQL 中的编号函数示例
  6. mysql游标嵌入式_Oracle与MySQL内嵌游标的使用示例
  7. Vuex的store中的Module
  8. stringstream实例
  9. mysql中建立text_mysql中text
  10. 实现 SSH 无密码登录 、 ssh 常用命令
  11. python之用循环实现五子棋小程序
  12. 抽一个读者,送她一台MacBook!
  13. BZOJ1052:[HAOI2007]覆盖问题
  14. Mysql Sql语句令某字段值等于原值加上一个字符串
  15. ZEMAX | 照明设计中实用的光学模拟方法
  16. 专升本高等数学考试知识点汇总(二)
  17. 计算机显示用户不存在,电脑出现未知设备提示驱动安装类无效或不存在如何解决...
  18. 龙讯7号 国芯发布龙芯电脑引争议
  19. Target host is not specified解决方案
  20. 图解CNN:通过100张图一步步理解CNN

热门文章

  1. Window_Open详解
  2. HTTPS访问站点,出现证书问题解决
  3. 给普通用户赋予docker权限
  4. leetcode算法题--Unique Paths II
  5. shell中各种括号的用法
  6. OVS对VXLAN解封包(二)
  7. linux内核网络协议栈--2层报文处理(十七)
  8. 前牙正常覆盖是多少_个性化舌侧矫治器的前牙转矩控制技巧——赵志河教授
  9. 生成器、生成器函数、推导式、生成器表达式
  10. Go语言封装Http协议GET和POST请求