PhotoShop算法实现--色调/饱和度调整(四)
来源:互联网 发布:斯普特尼克恋人 知乎 编辑:程序博客网 时间:2024/06/09 21:04
PhotoShop算法实现--色调/饱和度调整(四)
kezunhai@gmail.com
http://blog.csdn.net/kezunhai
图像色调/饱和度调节,就是让用户按照自己的感觉对图像的色调、饱和度二行亮度三个分量进行调整,以满足用户的需求。
实现原理:将输入的RGB空间的图像转换到HSI颜色空间,根据用户输入的H、S、I三个调整参数,分别加到对应的色彩分量上,从而改变原来图像的色彩。
实现代码:
// H:0~180, S:0~255, V:0~255void PhotoShop:: AdjustHSI(Mat& img, Mat& aImg, int hue, int saturation, int ilumination){if ( aImg.empty())aImg.create(img.rows, img.cols, img.type());Mat temp;temp.create(img.rows, img.cols, img.type());cvtColor(img, temp, CV_RGB2HSV);int i, j;Size size = img.size();int chns = img.channels();if (temp.isContinuous()){size.width *= size.height; size.height = 1;}// 验证参数范围if ( hue<-180 )hue = -180;if ( saturation<-255)saturation = -255;if ( ilumination<-255 )ilumination = -255;if ( hue>180)hue = 180;if ( saturation>255)saturation = 255;if ( ilumination>255)ilumination = 255;for ( i= 0; i<size.height; ++i){unsigned char* src = (unsigned char*)temp.data+temp.step*i;for ( j=0; j<size.width; ++j){float val = src[j*chns]+hue;if ( val < 0) val = 0.0;if ( val > 180 ) val = 180;src[j*chns] = val;val = src[j*chns+1]+saturation;if ( val < 0) val = 0;if ( val > 255 ) val = 255;src[j*chns+1] = val;val = src[j*chns+2]+saturation;if ( val < 0) val = 0;if ( val > 255 ) val = 255;src[j*chns+2] = val;}}cvtColor(temp, aImg, CV_HSV2RGB);if ( temp.empty())temp.release();}实现效果:
作者:kezunhai 出处:http://blog.csdn.net/kezunhai 欢迎转载或分享,但请务必声明文章出处。
0 0
- PhotoShop算法实现--色调/饱和度调整(四)
- 用OpenCV实现Photoshop算法(七): 调整色相饱和度
- Photoshop图像处理算法—饱和度调整
- HSL(色调,饱和度,亮度)
- 用OpenCV实现Photoshop算法(四): 色阶调整
- 颜色HSL(色调,饱和度,亮度)
- 颜色HSL(色调,饱和度,亮度)
- 色调饱和度分析
- 色调、亮度和饱和度
- C++实现Photoshop色相/饱和度/明度功能
- 色温 色调 饱和度 白平衡--摄影基础理论(4)
- 初学颜色矩阵(修改图像的色调,饱和度,亮度)
- Android图像处理(一)色调、饱和度、亮度
- 饱和度调整
- Photoshop图像处理算法—自动对比度和自动色调(自动色阶)
- HSL 色调饱和度亮度关系
- 色调,饱和度,亮度如何计算
- 色调、饱和度和亮度 HSL
- 第十四周项目六:阅读程序
- Nim游戏博弈(收集完全版)
- 单例模式(饿汉式和懒汉式)
- jQuery三种事件绑定方式:bind(),.live(),.delegate()
- 牛人网站和博客---站得高看得更远(CV类)
- PhotoShop算法实现--色调/饱和度调整(四)
- python 回调函数和回调方法的实现
- 意图——学习笔记总结
- 移动端 video 的autoplay不起作用的解决方案
- LeetCode - Minimum Window Substring 题解
- setinel分布式部署+redis主从集群+java客户端连接资料整理分享
- Java代码优化札记
- LeetCode Search in Rotated Sorted Array
- 面向对象的六大原则