PhotoShop算法实现--色调/饱和度调整(四)
2014-11-30 15:22
405 查看
PhotoShop算法实现--色调/饱和度调整(四)
kezunhai@gmail.com
http://blog.csdn.net/kezunhai
图像色调/饱和度调节,就是让用户按照自己的感觉对图像的色调、饱和度二行亮度三个分量进行调整,以满足用户的需求。
实现原理:将输入的RGB空间的图像转换到HSI颜色空间,根据用户输入的H、S、I三个调整参数,分别加到对应的色彩分量上,从而改变原来图像的色彩。
实现代码:
作者:kezunhai 出处:http://blog.csdn.net/kezunhai 欢迎转载或分享,但请务必声明文章出处。
kezunhai@gmail.com
http://blog.csdn.net/kezunhai
图像色调/饱和度调节,就是让用户按照自己的感觉对图像的色调、饱和度二行亮度三个分量进行调整,以满足用户的需求。
实现原理:将输入的RGB空间的图像转换到HSI颜色空间,根据用户输入的H、S、I三个调整参数,分别加到对应的色彩分量上,从而改变原来图像的色彩。
实现代码:
// H:0~180, S:0~255, V:0~255 void 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 欢迎转载或分享,但请务必声明文章出处。
相关文章推荐
- 用OpenCV实现Photoshop算法(七): 调整色相饱和度
- Photoshop图像处理算法—饱和度调整
- PhotoShop算法实现--亮度调整(曝光不足或过量)(二)
- Photoshop图像处理算法实现—明度调整
- SSE图像算法优化系列八:自然饱和度(Vibrance)算法的模拟实现及其SSE优化(附源码,可作为SSE图像入门,Vibrance算法也可用于简单的肤色调整)。
- 用OpenCV实现Photoshop算法(三): 曲线调整
- 用OpenCV实现Photoshop算法(五): 亮度对比度调整
- 用OpenCV实现Photoshop算法(四): 色阶调整
- 用OpenCV实现Photoshop算法(三): 曲线调整
- PhotoShop算法实现进阶-模糊滤镜-中值滤波(二十二)
- photoshop:调整图层之色相/饱和度
- PhotoShop算法实现--色彩平衡(偏色校正)(一)
- PhotoShop算法实现--图像错切(二十)
- PhotoShop算法实现--色彩通道(九)
- PhotoShop算法实现--直方图(十)
- PhotoShop算法实现--图像的镜像变换(十六)
- PhotoShop算法实现--图像转置(十七)
- PhotoShop算法实现--图像缩放(十八)
- PhotoShop算法实现--算术乘法和除法(十三)
- PhotoShop算法实现--色彩均衡化(十一)