公海赌船网址产生同篇最近登出之章。y)可以通过对图像数据I(x然后可以经过控件行为来操作这些多少。

  最近还看了一晃IPOL网站,有平等首最近刊的文章,名字即是Multiscale
Retinex,感觉自己对是既主导了解了,但还是上看了扣,也闹一对抱,于是抽空把他们有些整理了产,原始文章及其配套代码详见:http://www.ipol.im/pub/art/2014/107/。

   
Retinex这个词是由观网膜(Retina)和大脑皮层(Cortex)
两单词做成的。Retinex理论主要含有了少数只地方的情:物体的水彩是出于物体对长波、
中波和短波光线的照能力决定的,而无是出于反射光强度的绝对值控制的;物体的情调不受光照 非均匀性的熏陶,具有一致性
。 

  如果自己来做一个UI框架,我们见面首先关心哪些方面?我怀念UI框架主要处理的一定包括个别独第一层次的始末,一个凡是数额显现,另一个尽管是多少操作,所以UI框架必须能收到各种不同之数并经过UI界面展现出,然后可以经控件行为来操作这些多少,也就是UI框架的数据(Data)和行为(Behavior)。

     
之前以自之 拉动色彩恢复的多尺度视网膜增强算法(MSRCR)的规律、实现和使用 一轻柔被早就比较详细的叙述了Multiscale
Retinex的基本原理和下,这里虽不再做了多的辨证。为表达方便,还是贴发其基本的计算原理:

   
根据Retinex理论,人眼感知物体的亮度取决于环境之照明和体表面比射光的反射,其数学表达式为:

  本篇从总体上讲解一下WPF如何处理及操作Data,看罢以后大家应本着WPF框架如何将数据变化吗表现界面有开始的认,这为是WPF的主干设计有。

    公海赌船网址 1

           
I(x,y)=L(x,y)*R(x,y)                            (2-1)

数据(Data)

  以前的UI框架的控件对控件数据类型都来规定,按钮上展示的是文本或者加上一个图片,下拉框显示的还是字符串或者带及一个object类型属性的作为保存
对象引用用。而WPF则不同,它缺少省的数据类型为object,这就是同意控件能够操作任意档次的数量,这也是它活和强大的地方之一。

  上式中,I为原始输入图像,F是滤波函数,一般也高斯函数,N为尺度之多寡,W为每个尺度的权重,一般都也1/N,
R代表在针对数域的图像的输出。

  式中: I(x,y)代表于考察或照相机接收及的图像信号;L(x,y)代表环境光的炫耀分量
;R(x,y)表示带图像细节信息的目标物体的反光分量 。

数据类型

  • 本来数据:字符串、布尔、整形等
  • 列表数据:数组、列表等,集合中之始末可以是如出一辙类别或者不同品种的多少
  • 层级数据:树、列表的列表或者图等,具有层级关系之数
  • 结合数据:包含以上又多少的数码,如用户联系方式包括电话、地址1、地址2、手机号等

  但是要是是object类型,那WPF如何理解具体欠怎么展示这些数据也?这将通过Templates、Presenters、Binding
and Converters、Layout和Styles了。

  由于R是对数域的输出,要更换为数字图像,必须以她们量化为[0,255]的数字图像范畴,关于此量化的算法,有这极为重要的意义,他的上下直接控制了最后输出的图像的人头。

   
将(2-1)式两限取对数,则可丢开合射光的性质得到物体的当然面貌,即来关联式

模板(Templates)

  1. 控件模板(control
    template):控件模板定义一个控件的外观,这个控件主要跟UI相关,一般也未跟Data有关。每个控件都生只一个短省之控件模板。公海赌船网址 2
    公海赌船网址 3公海赌船网址 4Code
    <ControlTemplate x:Key=”buttonTemplate”>
      <Grid>
        <Ellipse Width=”100” Height=”100”>
          <Ellipse.Fill>
            <LinearGradientBrush StartPoint=”0,0” EndPoint=”0,1”>
            <GradientStop Offset=”0” Color=”Blue”/>
            <GradientStop Offset=”1” Color=”Red”/>
            </LinearGradientBrush>
          </Ellipse.Fill>
        </Ellipse>
        <Ellipse Width=”80” Height=”80”>
          <Ellipse.Fill>
            <LinearGradientBrush StartPoint=”0,0” EndPoint=”0,1”>
              <GradientStop Offset=”0” Color=”White”/>
              <GradientStop Offset=”1” Color=”Transparent”/>
              </LinearGradientBrush>
          </Ellipse.Fill>
        </Ellipse>
      </Grid>
    </ControlTemplate>

  2. 数码模板(data
    template):数据模板负责定制其他一个.Net目标的外观,这对非UIElement控件非常主要,非UIElement控件的默认模板就是一个TextBlock,其中蕴含了一个是因为ToString方法反会的字符串。公海赌船网址 5
    公海赌船网址 6公海赌船网址 7Code
    <ListBox x:Name=”pictureBox” ItemsSource=”{Binding Source={StaticResource photos}}” …>
      <ListBox.ItemTemplate>
        <DataTemplate>
          <Image Source=”placeholder.jpg” Height=”35”/>
        </DataTemplate>
      </ListBox.ItemTemplate>
      …
    </ListBox>

  大家可以通过工具ShowMeTheTemplate
来查看转现有控件的默认模板。

  时,结合上述文章被提出的有的进程,有4栽艺术展开拍卖:

       Log[R(x,y)] =
Log[I(x,y)]-Log[L(x,y)];                
     (2-2)

情控件(Presenters)

  通过Templates讲解,我们现明控件模板定义控件外观,数据模板定义特定的数据如何展示,那么现在怎样以定义之数展示在控件外观及亮为?那就得content
presenter了。每个控件都发一个默认的ContentPresenter用于展示Content内容,我们遂这种控件为情节控件,ContentPresenter承担用ContentControl的Content属性显示出来,如以下代码示例:公海赌船网址 8

公海赌船网址 9公海赌船网址 10Code
    <Grid>
        <Grid.Resources>
            <Style TargetType=”Label”>
                <Setter Property=”Template”>
                    <Setter.Value>
                        <ControlTemplate TargetType=”Label”>
                            <Grid>
                                <Ellipse Margin=”34,45,44,117″ Fill=”{TemplateBinding Background}”/>
                                <ContentPresenter Content = {TemplateBinding Content}” HorizontalAlignment=”Center”
                            VerticalAlignment=”Center”/>
                            </Grid>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </Grid.Resources>
        <Label Background=”Red” Content=”hello wpf control”></Label>
    </Grid>

  第一栽,也是极端易想到的即是,直接线性量化,即利用下式进行处理:

   
对地方的理论的开展一个简短的笺注吧。把这个技能下到图像处理上,就是针对性我们本既沾的同样合乎图像数据I(x,y),计算起相应之R(x,y),则R(x,y)认为是提高后的图像,现在的显要是安赢得L(X,Y)。Retinex理论的发起人指出此L(x,y)可以透过对图像数据I(x,y)进行高斯模糊而得到,很多舆论中都列出了很中心/围绕函数和需要归一化的K值,搞的重重新手都不掌握是啊了,其实就是一个歪曲而已。从实际使用的角度来说,也得以就此全值模糊来代表高斯歪曲。

绑定(Binding) 和 转换(Converters)

    
  公海赌船网址 11

   
 因此这算法的细路就好简短了,具体步骤如下:

 

  数据模板描述了数码显示的外观,我们什么使这些外观和数量涉嫌起来呢?这虽是数据绑定(data
binding)来举行的事体。WPF的数据绑定是一个强硬的作用,它同意单项和双向的绑定,当目标更改时UI会自动刷新,当UI操作后数为堪自行更改。

公海赌船网址 12

  有时候数据的格式并无只是简答的来得,比如bool类型需要展示成三态,可以经过一个转换器来兑现。 

Binding和Converters代码示例:网上广大以此材料,可以参考WPF
Data
Binding、Binding
Converters

  这种方法,由于Retinex数据处理后的强动态特性,数据分布很宽泛,会产出重的两极化现象,一般难以获得满意的结果。

     1、输入:
原始图像数据I(x,y),尺度(也不怕是所谓的歪曲的半径)

布局(Layout)

  经过前的步子,模板都定义了,数据为生了,转换器和绑定也点了,内容展示也充分成了,剩下最后一步就是是布局(layout)。布局体系将确定前面生产的所有UI控件的大小与位置。在WPF中panel以及其继承类负责提供layout功能。布局是同一种植递归的分点儿个步骤进行的进程,第一步叫做检测(measuer),第二步叫做排列(arrange)。

  1. 检测:面板询问其子元素到底得有些空间,这里而发生足的控件。面板会重载FrameworkElement的MeasureOverride方法来贯彻即无异步。
  2. 列:在检测步骤完成后,就该排列元素了。面板会报子元素它们将居哪里,它们有些许空间可以据此。面板会重载FramworkElement的ArrangeOverride方法来实现即同步骤。

  第二栽,就是于经典的MSRCR文章《A
Multiscale Retinex for Bridging the Gap Between Color Images and the
Human Observation of Scenes》中提出的Canonical Gain/Offset
算法。计算公式如下:

     2、处理:(1)
计算原始图像按指定尺度进行模糊后的图像 L(x,y);

样式(Style)

  样式是相同种简单的建制,通过她可将属性值和用户界面元素分类开来,有接触类似CSS与HTML的关联

上述内容可发挥也产图:Person数据通过控件模板、数据模板与体制与布局,再增长数量绑定就好呈现数据了

      
  公海赌船网址 13    

              (2)
按照2-2式的算计方式算出 Log[R(x,y)]的值。

公海赌船网址 14

  其中G和b为涉世参数。

              (3)
将 Log[R(x,y)]量化为0交255限之比如说素值,作为最后的输出。

行为(Behavior)

  把数据显示出只是做了大体上行事,还有一半就是提供用户方式及UI进行互。下图说明了输入操作示意图:

公海赌船网址 15

WPF控件支持鼠标、键盘和写字板等输入装备来跟UI进行互动,还好透过外部和内部时间开展操作,经过接触后可以通过事件处理或者command建制来进展Action。

 

参考 《WPF Control Development
Unleashed》

 

迎转载,转载请注明:转载自周金根 [
http://zhoujg.cnblogs.com/ ]

  第三种,实在上述文章中关系的Simplest
Color
Balance(我简写为SCR)方式,这种措施的处理类似于Photoshop中之机动色阶,他管数据据一定之百分于去最小与极其充分的片段,然后中间的一部分重新线性量化到0和255中间。

   
可以看得出,算法很粗略,其主导之事物或在高斯模糊的贯彻。关于高斯歪曲,网上有许多速优化的稿子参考,具体的参阅代码可能非常少发生好人提供的。

  第四栽,就是GIMP的Retinex算法,这个可详见 带动色彩恢复的多尺度视网膜增强算法(MSRCR)的规律、实现和动 一文之描述。

   
注意到某些,似乎以量化的早晚没有谁会将 Log[R(x,y)]进行Exp函数的演算而直白获得R(x,y),至于为何,我一筹莫展让有显著的答案。

  还有同种方法,就是豪门知晓HDR的进程吧,他吗是拿高动态的数据量化到图像的可视范围,因此可以直接以即刻仿佛算法应用与这个题目上。我吧开了试,效果似乎一般。

   
量化的章程实际生好多种,而者办法以大死之档次上针对拍卖的意义有所决定性的熏陶。至今自己未曾看到有哇一样首论文对当时等同块讲的死去活来知,也无掌握她们之那些结果是什么样取得的,一种植最简易的法子尽管是计量起Log[R(x,y)]的无比酷值Max和极其小值Min,然后针对各级一个值Value,进行线性量化,公式为:

  在为此第二种或第三种方式处理常,最好还得来只Color
Restoration的经过,因为要是一直对MSR处理的结果进行量化,得到的图像往往整体偏灰度,这是由于原之彩色值经过log处理后的数量范围就比较小了,这样各个通道中的距离为特别有些,而下的线性量化比log曲线要平滑很多,因此总体就丧失了花花绿绿。

            R(x,y) = (
Value – Min ) / (Max – Min) * (255-0)                          
(2-3)

  论文中提出了匡方式如下:

    效果测试:

          公海赌船网址 16

 
  公海赌船网址 17  公海赌船网址 18  公海赌船网址 19 

          公海赌船网址 20

                     
   原图                                  
经过Retinex(尺度也10)增强后底图像            
 经过Retinex(尺度吗300)增强后底图像

          公海赌船网址 21

 
  公海赌船网址 22  公海赌船网址 23  公海赌船网址 24

 

                     
 原图                                  
经过Retinex(尺度也10)增强后底图像                
经过Retinex(尺度为300)增强后底图像

  
其中β=46,α=125呢更参数,但是最后我之辨析以为β不可能得这样老,取1试标明效果还不错。

   
论文被说,尺度取值较小时, 能够较好地成功动态范围的减少,暗区域的底细会取得比较好地增长,但输出颜色易失真;取值较充分时,色感一致性较好。
我倒没看到尺度微闹什么利益。

  
对于有些初图像HUE较为合理之希冀,如果因此藏的MSRCR算法,会促成处理后的图容易偏色,上述论文提出了针对性图像的Intensity数据进行Retinex处理,然后又将多少依据原的RGB的百分比映射到每个通道,这样虽可知在保存原始颜色分布的底子及加强图像,文章中如该也MSRCP。

   
以上算法所实现之经过一般倍称作为SSR(Single Scale
Retinex,单尺度视网膜增强);

  这个算法的编码论文的附带代码里都产生了那个好的事例了,其实正是特别简短的做事,需要的朋友自己失去参考。

   
为了取更好的效益,人们还要出出所谓的多尺度视网膜增强算法(MSR,
Multi-Scale
Retinex),最为经典的就算是3原则之,大、中、小,既能落实图像动态范围之削减,又会保全色感的一致性较好。同单尺度相比,该算法有在盘算Log[R(x,y)]的值经常步骤有所不同:

  我要好举行了5种算法的于,分别是:

    (1)
需要针对原本图像进行每个尺度之高斯模糊,得到模糊后的图像Li(x,y),其中多少标i表示原则数。

      MSRCRGIMP    -    Gimp内嵌的Retinex增强算法

     (2)
 对每个尺度下进展添加计算  Log[R(x,y)] =  Log[R(x,y)] + Weight(i)*
( Log[Ii(x,y)]-Log[Li(x,y)]);
 其中Weight(i)表示每个尺度对应之权重,要求各级尺度权重的同必须为1,经典的取值为当权重。

      MSRCRStandard  -    按照《A
Multiscale Retinex ….  the Human Observation of
Scenes》一平和写的算法,其中G=30,B=-6,β=1,α=125

   
 其他的步子同单尺度的从未有过分别。

      MSRCRSCR      –        
 使用Color Restoration + Simplest Color Balance算法量化得到的结果

   
 公海赌船网址 25 
 公海赌船网址 26   公海赌船网址 27

        MSRCPSCR      –        
 使用Intensity数据 + Simplest Color Balance算法量化得到的结果

                     
  原图                                    
 经过SSR(尺度也300)增强后的图像              
经过MSR(最充分原则吗300,尺度数为3)增强后底图像

      MSRHSV      -    对HSV空间的V分量进行(用之SCR量化)Retinex处理并回RGB空间后的结果

   
 公海赌船网址 28 
 公海赌船网址 29 
 公海赌船网址 30

  他们之功力比如下:

                     
     原图                                    
 经过SSR(尺度也300)增强后的图像            
 经过MSR(最酷标准为300,尺度数为3)增强后底图像

公海赌船网址 31 公海赌船网址 32 公海赌船网址 33

  
 SSR和MSR于无比可怜规格相同的当儿谁好谁死我还确实讲不清。

        original                    
    MSRCRGIMP                              
    MSRCRStandard

   
 在上述之片帧测试图像中,特别是亚轴,我们看到明明的偏色效果,这便是SSR和MSR普遍还留存的问题。给一样段子于经典的论文被的原话供大家参考:

公海赌船网址 34 公海赌船网址 35 公海赌船网址 36

      The general
effect of retinex processing on images with regional or global
gray-world violations is a “graying out” of the image, either globally
or in specific regions. This desaturation of color can, in some cases, be
severe (see Fig. 4, middle). More rarely, the gray-world violations
can simply produce an unexpected color distortion (see Fig. 4,top
left).

        
  MSRCRSCR                        MSRCPSCR    
                   MSRHSV

*** ***  
 为夫,研究者又开发有同种名叫带色彩恢复的多尺度视网膜增强算法(MSRCR,Multi-Scale
Retinex with Color Restoration) ,具体讨论的长河详见 <A Multiscale
Retinex for Bridging the Gap Between Color Images and the Human
Observation of
Scenes>这首论文,这里而说之是,我当论文里的章程不自外作用,并且论文里为是以引入了最为多之可调参数,增加了算法的扑朔迷离,不便利自动化实现。

公海赌船网址 37 公海赌船网址 38 公海赌船网址 39

   
从自眼前底垂询来拘禁,GIMP的contrast-retinex.c文件里以的算法很好,效果啊蛮好。他一直打量化的办法及着手,引入了均值和全方差的定义,再长一个说了算图像动态的参数来实现无色偏的调试过程,简要描述如下。

        original                    
      MSRCRGIMP                            
   MSRCRStandard

   
(1)分别计算出 Log[R(x,y)]中R/G/B各通道数据的均值Mean和均方差Var(注意是清一色方差)。

公海赌船网址 40 公海赌船网址 41 公海赌船网址 42

 
  (2)利用类似下述公式计算各国通道的Min和Max值。

       MSRCRSCR                    
       MSRCPSCR    
                   MSRHSV

            Min = Mean

公海赌船网址 43 公海赌船网址 44 公海赌船网址 45

  • Dynamic * Var;  

        original                    
      MSRCRGIMP                            
   MSRCRStandard

            Max = Mean

公海赌船网址 46 公海赌船网址 47 公海赌船网址 48

  • Dynamic * Var;
        (3)  对Log[R(x,y)]的各国一个值Value,进行线性映射: 

         MSRCRSCR                  
         MSRCPSCR    
                   MSRHSV  

           R(x,y) = (
Value – Min ) / (Max – Min) * (255-0)
,同时如果注意增加一个涌起判断,即:

  孰好谁坏为各好去琢磨吧。

           if (R(x,y)
> 255)  R(x,y) =255; else if (R(x,y) < 0) R(x,y)=0;

  算法效果测试:http://files.cnblogs.com/Imageshop/Retinex%E7%BB%BC%E5%90%88.rar

   
 就是经过这样简单的处理,实践证明可以得到非常好的职能,下面贴发片拍卖后底效能。

  很长远没写博客了,其实为绝非江郎才尽之感觉,就是也没有感念写的扼腕。现在勾勒为无以前那么认真了,感觉就是是诸如计流水账一样。算了,记账就记账吧。

 
 公海赌船网址 49  公海赌船网址 50  公海赌船网址 51

 公海赌船网址 52

   
 MSR(最充分条件吗300,尺度数也3)增强图像        
  MSRCR(最要命原则也300,尺度数也3,Dynamic=2)增强图像
  MSRCR(最老口径吗300,尺度数也6,Dynamic=2)增强图像

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

 
  公海赌船网址 53  公海赌船网址 54  公海赌船网址 55

 

     
MSR(最老条件为300,尺度数为3)增强图像        
 MSRCR(最酷规格吗300,尺度数也3,Dynamic=2)增强图像
  MSRCR(最特别口径也300,尺度数也6,Dynamic=2)增强图像

 

       
 由上述三帧图的机能得出的下结论:

       
(1)MSRCR效果使比MSR好很多,基本消除了色偏。

       
(2)对于MSRCR,尺度数针对性结果的影像不是专程特别,但是趁标准化数之增加,算法耗时会线性增加,因此,一般法数得3虽较合适了。

       
 继续贴图做比:

 
  公海赌船网址 56  公海赌船网址 57  公海赌船网址 58

               
MSRCR(Dynamic=1)增强图像                          
 MSRCR(Dynamic=2)增强图像                            
 MSRCR(Dynamic=5)增强图像

 
 公海赌船网址 59 
 公海赌船网址 60  公海赌船网址 61 
   

               
 MSRCR(Dynamic=1)增强图像                          
 MSRCR(Dynamic=2)增强图像                        
 MSRCR(Dynamic=5)增强图像

   
  由以上三轴图的职能得出的下结论:

   
(3)Dynamic取值越聊,图像的对立统一度越来越强。

   
(4)一般的话Dynamic取值2-3中间能够得比较强烈的增高力量,即能获好当然过渡效果,又能维系图像的清晰度适度提高。

   
 关于最特别口径,个人建议取值以高于100呢良。

   
 retinex算法的作用对于一些正常化的图像处理后底功能并无精,我们得以看他尽管是啊那些以外面条件不帅的状态下摄影的图像增强而规划之,特别之,对于航拍的雾天图,医学及的成像图等成像法恶劣之觊觎有好明白的成效,再列有一些肖像处理功能。

 
  公海赌船网址 62 
 公海赌船网址 63 
 公海赌船网址 64

 
  公海赌船网址 65 
 公海赌船网址 66 
 公海赌船网址 67

 
  公海赌船网址 68 
 公海赌船网址 69 
 公海赌船网址 70

 
  公海赌船网址 71 
 公海赌船网址 72  公海赌船网址 73

 
  公海赌船网址 74   公海赌船网址 75 
 公海赌船网址 76

 
  公海赌船网址 77   公海赌船网址 78 
 公海赌船网址 79

                   
原始图像                                             MSRCR增强的机能    
                                   NASA的Retinex增强结果

   
上述照片均运用最要命原则也300,尺度数也3,Dynamic=2时之职能。

   
由上述几乎组照片,可以看到,Retinex在图像去雾、宇航图、医学图像、老照片等图像的拍卖及效果好是不言而喻。

   
NASA的拍卖效果使比较我此的MSRCR好有的,这当然无可厚非,人家是啊单位呀。

   
关于NASA对Retinex技术之应用,可以参见:http://dragon.larc.nasa.gov/retinex/

   
关于去雾效果,我们在来和美图秀秀、可牛影像、光影魔术手等现有的软件做只大概的比:

  公海赌船网址 80 
 公海赌船网址 81   公海赌船网址 82

                     
原图                                             MSRCR                  
                                 美图秀秀 

  公海赌船网址 83 
 公海赌船网址 84

               
 可牛影像                                                
 光影魔术手

  公海赌船网址 85 
 公海赌船网址 86  公海赌船网址 87

                     
 原图                                                 MSRCR            
                                    美图秀秀 

  公海赌船网址 88 
  公海赌船网址 89

                
可牛影像                                                
光影魔术手

   
关于谁是哪位不,为免不必要之口舌之争,这里要提交给位看管去辨别吧。

   
同样,提供个编译好的文本给起趣味研究该算法的意中人看效果:

 
  http://files.cnblogs.com/Imageshop/Retinex.zip

 

 
  公海赌船网址 90

   
关于Rentinex,在共享两首比较经典的英文论文:

    Multi-Scale
Retinex for Color Image
Enhancement

    A Multiscale
Retinex for Bridging the Gap Between Color Images and the Human
Observation of
Scenes

   
关于实现代码,提供GIMP的contrast-retinex.c的下载链接(要如全看明白其中的有着代码的意思非常不方便,但是一旦取其中的算法有就是非那么复杂了)。

   
http://files.cnblogs.com/Imageshop/contrast-retinex.rar

 

 公海赌船网址 91

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

相关文章