博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一种增加图像自然饱和度的方法
阅读量:7072 次
发布时间:2019-06-28

本文共 1092 字,大约阅读时间需要 3 分钟。

基本思路是

1. 求取图像三通道均值
2. 求取三个通道最大值
3. 单独处理每个通道,如果通道值和最大值相等不处理,如果不相等则调节

clearclcclose all% 如果为正数,正向调整饱和度(色彩更加鲜艳), 如果为负数,反向调整(色彩更加暗淡)Adjustment = 100;I = double(imread('leaf.jpg'));VibranceAdjustment = -0.01 * Adjustment;% 这里可以采用三通道均值,也可以采用灰度值,如果是要处理Bayer格式,可以简单统计一个bin的值。grayVal = mean(I,3);% grayVal = double(rgb2gray(uint8(I)));% rgb 的最大值maxVal = max(I,[],3);% 调整量AmtVal = (abs(maxVal - grayVal)./127) * VibranceAdjustment;% 寻找要调整的像素maskBlue = (I(:,:,3) ~= maxVal);maskGreen = (I(:,:,2) ~= maxVal);maskRed = (I(:,:,1) ~= maxVal);% 调整b =I(:,:,3).*(1-maskBlue) + (I(:,:,3) + (maxVal - I(:,:,3)).*AmtVal).*maskBlue;g =I(:,:,2).*(1-maskBlue) + (I(:,:,2) + (maxVal - I(:,:,2)).*AmtVal).*maskBlue;r = I(:,:,1).*(1-maskBlue) + (I(:,:,1) + (maxVal - I(:,:,1)).*AmtVal).*maskBlue;% 组合成输出图像OI = cat(3,r,g,b);figure('Name', 'original Image')imshow(uint8(I))title('original Image')figure('Name', 'Natural saturation Image')imshow(uint8(OI))title('Natural saturation Image')

结果如下:

左边是原图,右边是调整后的图像

 

 

更多详细可以参考

https://www.cnblogs.com/Imageshop/p/7234463.html

 

转载于:https://www.cnblogs.com/Keven-Lee/p/9546257.html

你可能感兴趣的文章
【Android studio】CMakeLists
查看>>
salt 常用模块介绍
查看>>
多cpu 多核cpu 多芯 超线程
查看>>
源码包安装vmtools
查看>>
The server encountered an internal error () that prevented it from fulfilling this request.
查看>>
是时候抛弃Eclipse转向IntelliJ了
查看>>
我的友情链接
查看>>
Android开发学习笔记:浅谈WebView
查看>>
设计模式之------命令链模式
查看>>
DNS解析服务器
查看>>
unable kill namenode hadoop3.0.3 解决到放弃解决的过程
查看>>
解决软件提示unable to find a version of runtime to
查看>>
加载一个GIF图片在视图里
查看>>
Workman websocket 握手连接
查看>>
es6中新增对象的特性和方法
查看>>
收集2012集群共享卷空间使用情况,并用邮件通知管理员
查看>>
varnish之ban.url无效的一种情况
查看>>
电话诈骗之思考|安全是什么?
查看>>
linux数据恢复
查看>>
Makefile.am讲解
查看>>