由Photoshop高反差保留算法原理联想到的一些图像增强算法。

关于高反差保留的用处说明呢,从百度里复制了一段文字,我觉得写得蛮好的:

  高反差保留就是保留图像的高反差部分,再说得真白些,就是保留图像上像素与周围反差比较大的部分,其它的部分都变为灰色。拿一个人物照片来举例,反差比较大的部分有人的眼睛,嘴,以及身体轮廓。如果执行了就反差保留,这些信息将留下来(与灰色形成鲜明对比)。它的主要作用就是加强图像中高反差部分。还以人物照片为例子,一般为了使人物皮肤美观,通常需要执行模糊,执行模糊后人物的线条也被模糊了。在执行模糊之前复制图像两个副本,其中一个执行模糊,另一个执行高反差保留,把高反差保留后的图层放置在模糊图层的上方,然后执行柔光混合模式,这样人物的线条就更清楚些。 

 那么高反差保留算法本身的执行过程是如何的呢,简单的表达就是: 

         高反差保留 = 原始图像 - 高斯模糊图像 + 127

     加上127的目的是为了不让太多的像素由于不在有效范围内而导致图像太黑,从而丢失信息。

     简单的代码如下:

unsigned char *Pointer , *CloneP;
unsigned char * Clone = (unsigned char *) malloc (Height * Stride );
memcpy(Clone, Scan0, Height * Stride);                //    复制一个图层
GuassBlur(Clone, Width ,Height, Stride, Radius);      //    对该图层经进行高斯模糊
for (Y = 0; Y < Height; Y++)
{
    Pointer = Scan0 + Y * Stride;
    CloneP = Clone + Y * Stride;
    for (X = 0; X < Width; X++)
    {
        ValueB = *Pointer - *CloneP + 127 ;           //    混合
        *Pointer = Clamp(ValueB);
        Pointer++;
        CloneP++;
    }
}
free(Clone);

  高斯模糊是一种低通滤波器,执行后,图像中较为平坦的地方变化不大,而边缘部分被模糊了,如果用原图 - 高斯模糊则得到的则是强化的边缘值,高反差保留在PS的英文版中对应的单词是HighPass,即高通,也就是这个意思。

      我这里并不是想强调高反差保留的功能,虽然该算法也有着广泛的应用。 我这里就是想通过类似于原图 - 高斯模糊这样的过程来增强图像。

      很多图像都需要增强,特别是一些医学图像,由于拍摄的硬件或拍摄的场合不理想,得到的图像往往细节都被隐藏起来,因此,细节的增强显得尤为重要,而原图 - 高斯模糊正好是图像的细节部位的信息的一种表达,因此,如果在模糊图的基础上再加上这个细节, 则即减少了噪音,又保持了边缘等细节(边缘和噪音都属于高频部分的),能有效的增强图像的信息。  

      因此,如果用这样的方式来得到一副图像:

      增强图像 = 模糊图像 + Amount *(原始图像 - 高斯模糊图像)

      其中Amount控制增强的程度,则能起到一定的增强作用。 

         原图

                       Amount = 3

                      Amount = 6 

更好的一种方式则是采用双边滤波器来处理,即用双边滤波来代替上述高斯模糊的过程。

  比如用双边模糊,上述效果则更好,如下图所示。

            原图

                        Amount = 3

                       Amount = 6 

            原图

                        Amount = 3

                       Amount = 6 

            原图

                        Amount = 3

                       Amount = 6 

     不过广泛的测试表明:这个算法使用的范围似乎不广,对于很多图像效果过于明显。

     测试程序下载:链接

************作者: laviewpbt   时间: 2014.3.5   联系QQ:  33184777  转载请保留本行信息***************

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI科技评论

清华朱军团队包揽三项冠军,NIPS 2017对抗样本攻防竞赛总结

AI 科技评论按:自 Ian Goodfellow 等研究者发现了可以让图像分类器给出异常结果的「对抗性样本」(adversarial sample)以来,关于...

1424
来自专栏大数据挖掘DT机器学习

R语言 使用BP神经网络进行银行客户信用评估

一、学习R语言AMORE包中的newff函数 这是个前馈神经网络工具包,类似的还有nnet,RSNNS等。AMORE比nnet参数要丰富一些。AMORE...

3808
来自专栏数据派THU

清华朱军团队包揽三项冠军 | NIPS 2017对抗样本攻防竞赛总结(附学习资料)

3425
来自专栏量化投资与机器学习

【量化核武】美丽的回测——教你定量计算过拟合概率

作者:石川| 公众号专栏作者 | 量信投资 创始合伙人,清华大学学士、硕士,麻省理工学院博士;精通各种概率模型和统计方法,擅长不确定性随机系统的建模及优化。知乎...

1694
来自专栏磐创AI技术团队的专栏

清华朱军团队包揽三项冠军,NIPS 2017对抗样本攻防竞赛总结

1112
来自专栏人工智能

集成学习之随机森林通俗理解

scikit-learn官方general example第5个例子中涉及到了随机森林(RandomForest),随机森林是集成学习的一种,因此本文先通俗理解...

27210
来自专栏琦小虾的Binary

背景提取算法——帧间差分法、背景差分法、ViBe算法、ViBe+算法

背景提取算法——帧间差分法、背景差分法、ViBe算法、ViBe+算法 背景提取是在视频图像序列中提取出背景,背景就是场景中静止不动的景物。因为摄像机不动,因此图...

78410
来自专栏PPV课数据科学社区

【V课堂】数据挖掘知识脉络与资源整理(五)–缺失值处理

简介: 缺失值是指粗糙数据中由于缺少信息而造成的数据的聚类,分组,删失或截断。它指的是现有数据集中某个或某些属性的值是不完全的。数据挖掘所面对的数据不是特地为某...

2978
来自专栏用户2442861的专栏

Deep Learning(深度学习)学习笔记整理系列之(二)

1)该Deep Learning的学习系列是整理自网上很大牛和机器学习专家所无私奉献的资料的。具体引用的资料请看参考文献。具体的版本声明也参考原文献。

721
来自专栏YoungGy

扩展卡尔曼滤波EKF与多传感器融合

Extended Kalman Filter(扩展卡尔曼滤波)是卡尔曼滤波的非线性版本。在状态转移方程确定的情况下,EKF已经成为了非线性系统状态估计的事实标准...

5287

扫码关注云+社区