调整图像亮度brightness 对比度contrast 饱和度saturation方法整理
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
/** * Changes the brightness and the contrast of the image. * \param brightness: can be from -255 to 255, if brightness is negative, the image becomes dark. * \param contrast: can be from -100 to 100, the neutral value is 0. * \return true if everything is ok */bool CxImage ::Light (long brightness , long contrast ){ if (! pDib) return false; float c=(100 + contrast)/100.0f; brightness+=128; BYTE cTable[256]; //<nipper> for ( int i=0; i<256; i++) { cTable[ i] = ( BYTE) max(0, min(255,( int)(( i-128)* c + brightness + 0.5f))); } return Lut( cTable);}/** * Changes the saturation of the image. * \param saturation: can be from -100 to 100, positive values increase the saturation. * \param colorspace: can be 1 (HSL) or 2 (YUV). * \return true if everything is ok */bool CxImage ::Saturate (const long saturation , const long colorspace ){...for (int i =0;i <256;i ++) { cTable[ i] = (BYTE)max(0,min (255,(int )((i -128)*(100 + saturation)/100.0f + 128.5f)));}...}
// Y分量,在对图像亮度和对比度进行调节后,通过查表 m_YTable获得新的Y 值// pdst为转换后的图像,pbufy为原图像的Y分量for ( int height=0; height< m_frameHeight; height ++){ for ( int width=0; width< m_frameWidth; width ++) { *pdst++ = cTable[*pbufy++]; }}
方案1. 基于Dirextx利用像素着色器实现图像的亮度,饱和度操作
方案2. 使用DirectDraw色彩控制IDirectDrawColorControl
// initializes a direct draw struct#define DDRAW_INIT_STRUCT(ddstruct) { memset(&ddstruct,0,sizeof(ddstruct)); ddstruct.dwSize=sizeof(ddstruct); }// create IDirectDraw interface 7.0 object and test for errorif (FAILED(DirectDrawCreateEx(NULL, (void **)&lpdd, IID_IDirectDraw7, NULL))) return(0);DDCAPS hel_caps, hal_caps;// initialize the structuresDDRAW_INIT_STRUCT(hel_caps);DDRAW_INIT_STRUCT(hal_caps);if (FAILED(lpdd->GetCaps(&hal_caps, &hel_caps))) return(0);if (hal_caps.dwCaps2 & DDCAPS2_COLORCONTROLPRIMARY) OutputDebugString(_T("Supports primary surface contains color controls\n"));if (hal_caps.dwCaps2 & DDCAPS2_COLORCONTROLOVERLAY) OutputDebugString(_T("Supports overlay surface contains color controls\n"));if (hal_caps.dwCaps2 & DDCAPS2_PRIMARYGAMMA) OutputDebugString(_T("Supports loadable gamma ramps for the primary surface\n"));
同样的,你需要对DirectDraw有必要的了解,如果是使用GDI来负责图像的绘制,那么DirectX和DirectDraw的方案并不适合。
方案3 使用GDI+中的ColorMatrix
给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
![](/assets/blank.gif)
调整图像亮度brightness 对比度contrast 饱和度saturation方法整理相关推荐
- 调整图像亮度brightness,对比度contrast,饱和度saturation方法整理
简单的实现方案 数据格式:YUV 参考链接1:Processing in the 8-bit YUV Color Space 参考链接2:关于YUV图像的亮度和对比度的调整算法 参考链接2中采用CxI ...
- java 对比度_调整图像亮度、对比度、饱和度
完整代码如下: 1.主要方法编写类 package chapter4; import java.awt.image.BufferedImage; public class BSCAdjustFilte ...
- opencv中如何调整图像亮度和对比度,以及亮度和对比度调整的原理
文章目录 1. 调整图像亮度和对比度的原理 2. python实现的一个代码如下,可以直接运行 3. 在opencv种调节图像和对比度的方法 a. opencv中的实现方法: b. 根据咱们的公式,我 ...
- OpenCV(C++)---调整图像亮度和对比度
1.理论 图像变换可以看作如下: 像素变换 – 点操作 邻域操作 – 区域 调整图像亮度和对比度属于像素变换-点操作: 2.重要的API Mat new_image = Mat::zeros( ima ...
- halcon中怎么降低图像亮度_第6课-调整图像亮度和对比度
(非原创,看课程自己做的笔记,防丢失放到个人空间的) 第6课-调整图像亮度和对比度理论 代码演示 1-理论 图像变换可以看做如下: -像素变换-点操作: -邻域操作-区域: 调整图像亮度和对比度属于像 ...
- 调整图像亮度和对比度
图像变换可以看做两部分: 像素操作: 1.点操作,一般用于提升图像整体的对比度等. 2.邻域操作,一般用于空间域滤波,提取特征. 调整图像亮度和对比度属于像素变换 g(i,j)=αf(i,j)+βg\ ...
- 【opencv4】opencv视频教程 C++ 7、手动调整图像亮度与对比度 g(i, j) = αf(i, j) + β(点操作与邻域操作概念)
上一讲:[opencv4]opencv视频教程 C++ 6.图像混合.线性混合.混合权重相加addWeighted().混合加add().混合乘multiply() [opencv_C++] 入门强推 ...
- 调整图像亮度与对比度
文章目录 理论 代码演示 理论 图像变换可以看作如下: 像素变换 – 点操作,用在调整图像亮度和对比度等操作上. 邻域操作 – 区域,用在图像卷积.特征提取.梯度计算.模式匹配识别.角点检测.模糊.平 ...
- 0.4-OpenCvSharp4调整图像亮度和对比度
0.4-OpenCvSharp4调整图像亮度和对比度 图像变换: 1)像素变换 – 点操作,用在调整图像亮度和对比度等操作上. 2)邻域操作 – 区域,用在图像卷积.特征提取.梯度计算.模式匹配识别. ...
最新文章
- 来客推商城V3多用户uni-app商城源码如何搭建?盈利模式怎么样的?
- iOS----------苹果警告
- mysql之DDL操作--数据库
- Error:Cannot set the value of read-only property 'outputFile' for ApkVariantOutputImpl_Decorated{apk
- Sublime Text 3插件收集
- mysql中blog数据_zp blog
- mysql 定义XML字段_MyBatis之基于XML的属性与列名映射
- EMC测试中骚扰源头的寻找
- ElasticSearch + Logstash进行数据库同步
- CentOS7中rpm,yum软件安装命令
- Mysql优化(出自官方文档) - 第九篇(优化数据库结构篇)
- 用计算机弹出记事本,电脑新装的系统开机后总是自动弹出记事本如何解决
- Maven开发笔记(三)—— Maven中dependencies和dependencyManagement
- dss中文含义_DSS(中文译名:决策支持系统),这是什么系统?有多少个种类?...
- NB-IoT开发都涉及什么
- (笔记)一些有意思的电路
- C语言——打鱼晒网问题
- Promise学习-手写一个promise
- c#通用后台管理系统
- 资金流学习-成本分析