让你的照片更鲜艳------hsv拉伸
如果你的照片看上去灰蒙蒙的,缺少生机,那么hsv拉伸也许可以帮你的忙。hsv拉伸是一种可以提高图像鲜艳程度的图像增强方法,它能够让图像的颜色更加鲜活、艳丽,而且它的处理结果看上去很自然,比如源图中较暗的红色会变的鲜红,而不会像拉伸对比度那样把图像弄的难看失真,暗红色变的发紫发黑。
来个例子:

其基本原理如下:
1、 将源图像的(rgb)颜色空间映射到(hsv ),什么是HSV?
2、 对图像的s和v通道进行一次min-max normalize,h通道不变
所谓min-max normalize是指: dst(x,y) = [src(x,y) – min(src(x,y)) ] / [ (max(src(x,y)) – min(src(x,y)) ]
hsv拉伸处理后,图像不失真的关键因素就是h通道不变,即图像的色相与源图一致
3、 将新的(h s' v')映射回(rgb)
下面是gimp给出的源码(只贴出关键部分):
typedef struct { //用来存放最大最小值的结构体
double shi;
double slo;
double vhi;
double vlo;
} AutostretchData;
static void //找到最大最小值
find_max (guchar *src, gint bpp, AutostretchData *data)
{
double h, s, v;
gimp_rgb_to_hsv4(src, &h, &s, &v);
if (s > data->shi) data->shi = s;
if (s < data->slo) data->slo = s;
if (v > data->vhi) data->vhi = v;
if (v < data->vlo) data->vlo = v;
}
static void //关键函数!
autostretch_hsv_func (guchar *src, guchar *dest, gint bpp,
AutostretchData *data)
{
double h, s, v;
gimp_rgb_to_hsv4(src, &h, &s, &v);
if (data->shi != data->slo)
s = (s - data->slo) / (data->shi - data->slo); //关键语句
if (data->vhi != data->vlo)
v = (v - data->vlo) / (data->vhi - data->vlo); //关键语句
gimp_hsv_to_rgb4(dest, h, s, v);
if (bpp == )
dest[] = src[];
}
static void
indexed_autostretch_hsv (gint32 image_ID)
{
guchar *cmap;
AutostretchData data = {0.0, 1.0, 0.0, 1.0};
gint ncols, i;
cmap = gimp_image_get_colormap (image_ID, &ncols);
if (!cmap)
{
g_message (_("autostretch_hsv: cmap was NULL! Quitting...\n"));
gimp_quit ();
}
for (i = ; i < ncols; i++)
{
find_max (&cmap[i * ], , &data);
}
for (i = ; i < ncols; i++)
{
autostretch_hsv_func (&cmap[i * ], &cmap[i * ], , &data);
}
gimp_image_set_colormap (image_ID, cmap, ncols);
}
让你的照片更鲜艳------hsv拉伸的更多相关文章
- 使用纯 CSS 实现 Google Photos 照片列表布局
文章太长,因为介绍了如何一步一步进化到最后接近完美的效果的,不想读的同学可以直接跳到最后一个大标题之后看代码.demo及原理就好,或者也可以直接看下面这个链接的源代码. 不过还是建议顺序读下去,因为后 ...
- 计算照片的面积(WPF篇)
昨天,老周突发其想地给大伙伴们说了一下UWP应用中计算照片面积的玩法,而且老周也表示会提供WPF版本的示例.所以,今天就给大伙们补上吧. WPF是集成在.net框架中,属于.net的一部分,千万不要跟 ...
- 精通Web Analytics 2.0 (9) 第七章:失败更快:爆发测试与实验的能量
精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第七章:失败更快:爆发测试与实验的能量 欢迎来到实验和测试这个棒极了的世界! 如果Web拥有一个超越所有其他渠道的巨大优势,它就 ...
- 十一招让Ubuntu 16.04用起来更得心应手(转)
ubuntu 16.04是一种长期支持版本(LTS),是Canonical承诺发布五年的更新版.也就是说,你可以让这个版本在电脑上运行五年! 这样一来,一开始就设置好显得特别重要.你应该确保你的软件是 ...
- 十招让Ubuntu 16.04用起来更得心应手(转)
ubuntu 16.04是一种长期支持版本(LTS),是Canonical承诺发布五年的更新版.也就是说,你可以让这个版本在电脑上运行五年! 这样一来,一开始就设置好显得特别重要.你应该确保你的软件是 ...
- PS调出通透唯美阳光外景女生照片
1.稍微增加了一点曝光度,让照片更明亮. 2.对比度的话我现在比习惯加一点,而且 一般导入PS之后我还会按照片情况去加对比度. 3.高光的部分一般会拉回来一点,根据照片调. 4.阴影部分加一点的话会让 ...
- 全自动照片美化软件Photolemur mac特别版
今天小编为大家带来的是世界上首个支持全自动照片美化的软件Photolemur mac特别版.Photolemur中文特别版采用了全新的人工智能AI系统,它能够全自动智能的对您的照片进行曝光.亮度.降噪 ...
- 十招让Ubuntu 16.04用起来更得心应手
Ubuntu 16.04是一种长期支持版本(LTS),是Canonical承诺发布五年的更新版.也就是说,你可以让这个版本在电脑上运行五年!这样一来,一开始就设置好显得特别重要.你应该确保你的软件是最 ...
- CNN结构:HSV中的饱和度解析
参考:颜色的前世今生-饱和度 详解,划重点- 关键这个"纯"是指什么? 是指颜色明亮么?明度高的颜色看起来也明亮啊,不一定纯度高啊- 是说颜色鲜艳么?颜色 "不鲜艳&qu ...
随机推荐
- 需求文件requirements.txt的创建及使用
pip freeze >requirements.txt pip install -r requirements.txt
- swift NSdata 转换 nsstring
result = NSString(data: data, encoding: NSUTF8StringEncoding) 做HTTP 请求时 遇到 打印结果看 所以~~~
- Java在dos界面运行java源文件编译成功,但运行虚拟机时出现错误:“找不到或无法加载主类”的问题
(一)首先检查环境变量配置有没有问题, 1PATH为%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; 2CLASSSPATH为.;%JAVA_HOME%\lib\dt.jar; ...
- [C#.Net]对WinForm应用程序的App.config的使用及加密
我们在写C#应用程序时,在工程文件中放置一个app.config,程序打包时,系统会将该配置文件自动编译为与程序集同名的.exe.config 文件.作用就是应用程序安装后,只需在安装目录中找到该文件 ...
- syslog、日志服务器安装、卸载详解、如何安装和卸载EventLog Analyzer
- delphi 中如何访问另一个类中到私有方法?(转载)
原始连接 http://rvelthuis.blogspot.tw/2018/01/accessing-private-methods-of-another.html Accessing privat ...
- 2018.12.17 bzoj3667: Rabin-Miller算法(Pollard-rho)
传送门 Pollard−rhoPollard-rhoPollard−rho板题. 题意简述:给出几个数,让你判断是不是质数,如果不是质数就求出其最大质因子,数的大小为1e181e181e18以内. 先 ...
- DevExpress 只允许修改指定列
gridView1.OptionsBehavior.Editable = true; gridView1.OptionsBehavior.ReadOnly = false; foreach (Grid ...
- java Concurrent包学习笔记(五):Semaphore
一.Semaphore 是什么 信号量Semaphore是一个并发工具类,用来控制可同时并发的线程数,其内部维护了一组虚拟许可,构造函数初始化的时候可以指定许可的总数量 每次线程执行操作时先通过ac ...
- Linux centos 连接网络
1.在安装过程中不要选择网络适配器,其他正常执行 2.编辑 [root@zb ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 一般安装完软件,打开et ...