PhotoShop算法实现--色彩平衡(偏色校正)(一)
PhotoShop算法实现--色彩平衡(偏色校正)(一)
kezunhai@gmail.com
http://blog.csdn.net/kezunhai
色彩平衡是图像处理软件中一个重要环节,通过对图像的色彩平衡处理,可以校正图像色偏,过饱和或饱和度不足的情况,也可以根据自己的喜好和制作需要,调制需要的色彩,更好的完成画面效果,应用于多种软件和图像、视频制作中。
实现原理:根据用户指定的R、G、B三个色彩的调整分量,分别附加到对应的色彩分量上,从而改变原始图像的色彩,以达到用户的需求。
实现代码:
// 色彩增强: cR,cG,cB分别是RGB的增量(-255~255)
// cbImg:彩色平衡后的返回图像
void PhotoShop:: ColorBalance(Mat& img, Mat& cbImg, int cR, int cG, int cB)
{if ( cbImg.empty()) cbImg.create(img.rows, img.cols, img.type()); cbImg = cv::Scalar::all(0);int i, j;Size size = img.size();int chns = img.channels();if (img.isContinuous() && cbImg.isContinuous()){size.width *= size.height; size.height = 1;}// 验证参数范围if ( cR<-255 )cR = -255;if ( cG<-255 )cG = -255;if ( cB<-255 )cB = -255;if ( cR>255)cR = 255;if ( cG>255)cG = 255;if ( cB>255)cB = 255;for ( i= 0; i<size.height; ++i){const unsigned char* src = (const unsigned char*)(img.data+ img.step*i);unsigned char* dst = (unsigned char*)cbImg.data+cbImg.step*i;for ( j=0; j<size.width; ++j){dst[j*chns] = saturate_cast<uchar>(src[j*chns] +cR);dst[j*chns+1] = saturate_cast<uchar>(src[j*chns+1] +cG);dst[j*chns+2] = saturate_cast<uchar>(src[j*chns+2] +cB); }}
}
效果测试:
另外,关于色彩偏差的检测可以参考:图像偏色检测算法
作者:kezunhai 出处:http://blog.csdn.net/kezunhai 欢迎转载或分享,但请务必声明文章出处。
PhotoShop算法实现--色彩平衡(偏色校正)(一)相关推荐
- PhotoShop算法实现进阶-浮雕滤镜-灰度浮雕(三十一)
PhotoShop算法实现进阶-浮雕滤镜-灰度浮雕(三十一) kezunhai@gmail.com http://blog.csdn.net/kezunhai 浮雕效果可谓花样百出,但他们主要是基于图 ...
- 用OpenCV实现Photoshop算法(七): 调整色相饱和度
系列文章: 用OpenCV实现Photoshop算法(一): 图像旋转 用OpenCV实现Photoshop算法(二): 图像剪切 用OpenCV实现Photoshop算法(三): 曲线调整 用Ope ...
- PhotoShop算法实现高级篇--色彩特效(三十五)
PhotoShop算法实现高级篇--色彩特效(三十五) kezunhai@gmail.com http://blog.csdn.net/kezunhai Photoshop中有很多色彩特效,本文介绍几 ...
- 用OpenCV实现Photoshop算法(四): 色阶调整
系列文章: 用OpenCV实现Photoshop算法(一): 图像旋转 用OpenCV实现Photoshop算法(二): 图像剪切 用OpenCV实现Photoshop算法(三): 曲线调整 用Ope ...
- 用OpenCV实现Photoshop算法(八): 可选颜色
系列文章: 用OpenCV实现Photoshop算法(一): 图像旋转 用OpenCV实现Photoshop算法(二): 图像剪切 用OpenCV实现Photoshop算法(三): 曲线调整 用Ope ...
- 用OpenCV实现Photoshop算法(十): 美白磨皮(未完)
系列文章: 用OpenCV实现Photoshop算法(一): 图像旋转 用OpenCV实现Photoshop算法(二): 图像剪切 用OpenCV实现Photoshop算法(三): 曲线调整 用Ope ...
- 用OpenCV实现Photoshop算法(九): 高反差保留
系列文章: 用OpenCV实现Photoshop算法(一): 图像旋转 用OpenCV实现Photoshop算法(二): 图像剪切 用OpenCV实现Photoshop算法(三): 曲线调整 用Ope ...
- PhotoShop算法实现高级篇-剪纸艺术滤镜(三十二)
PhotoShop算法实现高级篇-剪纸艺术滤镜(三十二) kezunhai@gmail.com http://blog.csdn.net/kezunhai 剪纸是中国古代乃至今日的传统艺术,它的团简单 ...
- PhotoShop算法实现进阶-浮雕滤镜-八方向浮雕(三十)
PhotoShop算法实现进阶-浮雕滤镜-八方向浮雕(三十) kezunhai@gmail.com http://blog.csdn.net/kezunhai 八方向浮雕根据不同的雕刻方向,产生不同方 ...
最新文章
- 礼物——最牛午饭证!
- 运行python程序ModuleNotFoundError?pip下载速度太慢?
- 5. Leetcode 15. 三数之和 (数组-双向双指针)
- 前端--关于CSS盒模型
- 线程函数的设计以及MsgWaitForMultipleObjects函数的使用要点
- 你的项目刚刚启动?是时候考虑Globalization了!
- 【华为云技术分享】Linux内核编程环境 (2)
- 终于把Redis场景设计搞清楚了,需要掌握的都在这了
- Atitit usrqbg1821 Tls 线程本地存储(ThreadLocal Storage 规范标准化草案解决方案ThreadStatic
- 10款屏幕取色器/颜色拾取工具软件介绍及下载地址(附截图)
- 交换机cad图例_各种弱电系统的CAD图纸,包含图例、大样图、系统图及原理图等...
- 为什么建网站需要服务器,建网站需不需要服务器
- uclinux编译 心得一
- 会计核算的基本前提与确认计量的一般原则
- 到今天了你还不会集合的Stream操作吗?你要out了
- ZooKeeper示例 实时更新server列表
- 计算机组成原理超详解
- 分辨率自动调节html,网页根据分辨率自适应
- 人工神经网络的结构基本上分为两类
- 英雄联盟7月23日维修服务器,lol维护到几点今天 英雄联盟7月23日停机维护多长时间...