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算法实现--色彩平衡(偏色校正)(一)相关推荐

  1. PhotoShop算法实现进阶-浮雕滤镜-灰度浮雕(三十一)

    PhotoShop算法实现进阶-浮雕滤镜-灰度浮雕(三十一) kezunhai@gmail.com http://blog.csdn.net/kezunhai 浮雕效果可谓花样百出,但他们主要是基于图 ...

  2. 用OpenCV实现Photoshop算法(七): 调整色相饱和度

    系列文章: 用OpenCV实现Photoshop算法(一): 图像旋转 用OpenCV实现Photoshop算法(二): 图像剪切 用OpenCV实现Photoshop算法(三): 曲线调整 用Ope ...

  3. PhotoShop算法实现高级篇--色彩特效(三十五)

    PhotoShop算法实现高级篇--色彩特效(三十五) kezunhai@gmail.com http://blog.csdn.net/kezunhai Photoshop中有很多色彩特效,本文介绍几 ...

  4. 用OpenCV实现Photoshop算法(四): 色阶调整

    系列文章: 用OpenCV实现Photoshop算法(一): 图像旋转 用OpenCV实现Photoshop算法(二): 图像剪切 用OpenCV实现Photoshop算法(三): 曲线调整 用Ope ...

  5. 用OpenCV实现Photoshop算法(八): 可选颜色

    系列文章: 用OpenCV实现Photoshop算法(一): 图像旋转 用OpenCV实现Photoshop算法(二): 图像剪切 用OpenCV实现Photoshop算法(三): 曲线调整 用Ope ...

  6. 用OpenCV实现Photoshop算法(十): 美白磨皮(未完)

    系列文章: 用OpenCV实现Photoshop算法(一): 图像旋转 用OpenCV实现Photoshop算法(二): 图像剪切 用OpenCV实现Photoshop算法(三): 曲线调整 用Ope ...

  7. 用OpenCV实现Photoshop算法(九): 高反差保留

    系列文章: 用OpenCV实现Photoshop算法(一): 图像旋转 用OpenCV实现Photoshop算法(二): 图像剪切 用OpenCV实现Photoshop算法(三): 曲线调整 用Ope ...

  8. PhotoShop算法实现高级篇-剪纸艺术滤镜(三十二)

    PhotoShop算法实现高级篇-剪纸艺术滤镜(三十二) kezunhai@gmail.com http://blog.csdn.net/kezunhai 剪纸是中国古代乃至今日的传统艺术,它的团简单 ...

  9. PhotoShop算法实现进阶-浮雕滤镜-八方向浮雕(三十)

    PhotoShop算法实现进阶-浮雕滤镜-八方向浮雕(三十) kezunhai@gmail.com http://blog.csdn.net/kezunhai 八方向浮雕根据不同的雕刻方向,产生不同方 ...

最新文章

  1. 礼物——最牛午饭证!
  2. 运行python程序ModuleNotFoundError?pip下载速度太慢?
  3. 5. Leetcode 15. 三数之和 (数组-双向双指针)
  4. 前端--关于CSS盒模型
  5. 线程函数的设计以及MsgWaitForMultipleObjects函数的使用要点
  6. 你的项目刚刚启动?是时候考虑Globalization了!
  7. 【华为云技术分享】Linux内核编程环境 (2)
  8. 终于把Redis场景设计搞清楚了,需要掌握的都在这了
  9. Atitit usrqbg1821 Tls 线程本地存储(ThreadLocal Storage 规范标准化草案解决方案ThreadStatic
  10. 10款屏幕取色器/颜色拾取工具软件介绍及下载地址(附截图)
  11. 交换机cad图例_各种弱电系统的CAD图纸,包含图例、大样图、系统图及原理图等...
  12. 为什么建网站需要服务器,建网站需不需要服务器
  13. uclinux编译 心得一
  14. 会计核算的基本前提与确认计量的一般原则
  15. 到今天了你还不会集合的Stream操作吗?你要out了
  16. ZooKeeper示例 实时更新server列表
  17. 计算机组成原理超详解
  18. 分辨率自动调节html,网页根据分辨率自适应
  19. 人工神经网络的结构基本上分为两类
  20. 英雄联盟7月23日维修服务器,lol维护到几点今天 英雄联盟7月23日停机维护多长时间...

热门文章

  1. dell4528s linux_戴尔台式机和笔记本电脑上的 Linux
  2. numpy.shape的用法辨析shape[1:],shape[:-1]的区别
  3. 怎样在电脑上登录微信,福利到,如何登录电脑微信
  4. 五个寓言故事令你受益匪浅
  5. 记录我杭州 Android 面试的经历 | 掘金技术征文
  6. webgl室内3d场景
  7. 学习笔记17 差分方程
  8. busybox 安装方法
  9. echarts展示国内各省各市地图
  10. 上缘星天V1.0——第一款统计命理学软件