精华内容
下载资源
问答
  • 导向滤波算法实现图像去雾,可以直接运行。。。。。。
  • 基于暗通道和导向滤波的图像去雾算法C++实现
  • 何凯明的引导滤波去雾算法,内有图像,main文件直接运行
  • 导向滤波+图像去雾

    千次阅读 2018-10-22 11:07:12
    Guided Image Filtering --引导图像滤波 解析+图像去雾应用 图像增强处理之:同态滤波与Retinex算法(一)同态滤波
    展开全文
  • 暗通道去雾+导向滤波

    2016-06-21 21:42:20
    我用的是VS2010+opencv2.49 当然可以根据自己的环境配置一下就可以了。代码里面用的是三通道去雾,效果不错。 效果比单通道好一点。 比softmating 稍微差一点点(看不怎么出来),但是速度比softmating快很多倍。
  • 简介:导向滤波(Guided Fliter)显式地利用 guidance image 计算输出图像,其中 guidance image 可以是输入图像本身或者其他图像。导向滤波比起双边滤波来说在边界附近效果较好;另外,它还具有 O(N) 的线性时间的...
    1. 简介:导向滤波(Guided Fliter)显式地利用 guidance image 计算输出图像,其中 guidance image 可以是输入图像本身或者其他图像。导向滤波比起双边滤波来说在边界附近效果较好;另外,它还具有 O(N) 的线性时间的速度优势。
    2. 相关工作:
      (1)Explicit Weighted-Average Filters(显示加权平均滤波器):
               双边滤波可以在平滑的过程中保持边缘,但是会出现不希望的gradient reversal的artifact。原因在于如果一个pixel周围有较少的相似的pixel,那么Gaussian weighted average就会不稳定。另外就是双边滤波的效率问题,brute-force实现双边滤波需要O(N^2)的时间,后来又有文章提出了O(Nlogr)和O(N)的实现方法。但是这些加速方法需要coarse sampling,从而在Nyquist condition被严重破坏的情况下,牺牲了质量。其他此类滤波器还有Edge-Avoiding Wavelets,Domain Transform Filter.
      (2)Implicit Weighted-Average Filters(隐式加权滤波):
              优化损失函数,求解线性系统的方法等价与隐式图像滤波。尽管 optimization-based 方法一般可以得到高质量的结果,但是求解线性系统较为费时间。已经有人证明这些隐式的滤波器和显式的是相关联的,显式的滤波器也可以写成求解矩阵问题的形式。
      (3)Nonaverage Filters (非均值滤波器):
              保边滤波可以不用平均的方法,如中值滤波,可以看成是一个局部的直方图滤波器。 其余还有 Total-Variation filters。非均值滤波器通常都是计算量较大的。
    3.  导向滤波(Guided Filter):除了速度优势以外,导向滤波的一个很好的性能就是可以保持梯度,这是bilateral(双边滤波)做不到的,因为会有梯度翻转现象。(Preserves edges, but not gradients)
    展开全文
  • 基于导向滤波的暗通道先验去雾算法(Python语言,可直接运行)1 编译环境2 原理介绍2.1 暗通道先验2.1.1 暗通道先验理论与去雾模型2.1.2 处理步骤2.2 导向滤波求t(x)3 代码4 处理结果4.1 第一组结果及其比较,暗通道...

    1 编译环境

    编程语言:Python
    IDE:PyCharm 2017

    2 原理介绍

    2.1 暗通道先验

    2.1.1 暗通道先验理论与去雾模型

    暗通道先验的去雾算法是由何凯明在2009年的CVPR会议上的最佳论文,译文见译文_Single Image Haze Removal Using Dark Channel Prior,何恺明的暗通道先验(dark channel prior)去雾算法是CV界去雾领域很有名的算法,关于该算法的论文"Single Image Haze Removal Using Dark Channel Prior"一举获得2009年CVPR最佳论文。作者统计了大量的无雾图像,发现一条规律:每一幅图像的RGB三个颜色通道中,总有一个通道的灰度值很低,几乎趋向于0。基于这个几乎可以视作是定理的先验知识,作者提出暗通道先验的去雾算法。
    作者首先介绍去雾模型如下:
    在这里插入图片描述
    式中I(x)为原图,待去雾图像;J(x)为要恢复的无雾图像;A是大气光成分,t(x)为图像的透光率

    2.1.2 处理步骤

    	对成像模型归一化,两边同时除以每个通道的大气光值,得到如下:
    

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    准,因此图像恢复的最终公式为:
    在这里插入图片描述

    2.2 导向滤波求t(x)

    在原文中,作者提出的为Soft Matting方法求解透射率图t(x),但该方法的致命失误在于计算效率低,速度慢。因此,在2011年,作者又发表论文提出利用导向滤波的方式来求透射率图t(x)。导向滤波步骤如下图:
    在这里插入图片描述

    3 代码

    代码如下:

    import cv2 as cv
    import numpy as np
    
    def zmMinFilterGray(src, r=5):
      '''最小值滤波,r是滤波器半径'''
      return cv.erode(src, np.ones((2 * r + 1, 2 * r + 1)))
    
    def darkchannel(Image):             #计算每个通道中的最小值,输入Image图像,输出最小值img_min
    rows,cols,channels=Image.shape
    img=np.array(Image)
    for i in range(0,rows-1):
      for j in range(0,cols-1):
        min_rgb = Image[i][j][0]
        if min_rgb  > Image[i][j][1]:
          min_rgb = Image[i][j][1]
        elif min_rgb  > Image[i][j][2]:
          min_rgb = Image[i][j][2]
        for c in range(channels):
          img[i][j][c] = min_rgb
    return img
    
    def min_filter(Image,r):                # 最小值滤波,输入最小值图像,在2*r+1的矩形窗口内寻找最小值
    rows, cols, channels = Image.shape    # 输出为暗通道图像
    img = np.array(Image)
    for i in range(0, rows):
      for j in range(0, cols):
        for c in range(0, channels):
          if i == 0 or j == 0 or i == rows - 1 or j == cols - 1:
            img[i][j][c] = Image[i][j][c]
          elif j == 0:
            img[i][j][c] = Image[i][j][c]
          else:
            min = 255
            for m in range(i - r, i + r):         # 寻找像素点(i,j)为中心的5*5窗口内的每个通道的最小值
              for n in range(j - r, j + r):
                if min > Image[m][n][c]:
                  min = Image[m][n][c]
            img[i][j][c] = min
    return img
    
    def guided_filter(Image,p,r,eps):     # 基于导向滤波进行暗通道图像的变换
    #Image归一化之后的原图,p最小值图像,r导向滤波搜索范围,eps为惩罚项,输出导向滤波后的图像
    # q = a * I + b
    mean_I = cv.blur(Image, (r, r))  # I的均值平滑
    mean_p = cv.blur(p, (r, r))  # p的均值平滑
    mean_II = cv.blur(Image*Image, (r, r))  # I*I的均值平滑
    mean_Ip = cv.blur(Image*p, (r, r))  # I*p的均值平滑
    var_I = mean_II - mean_I * mean_I  # 方差
    cov_Ip = mean_Ip - mean_I * mean_p  # 协方差
    a = cov_Ip / (var_I +eps)
    b = mean_p - a *mean_I
    mean_a = cv.blur(a, (r, r))  # 对a、b进行均值平滑
    mean_b = cv.blur(b, (r, r))
    q = mean_a*Image + mean_b
    return q
    
    def select_bright(Image,img_origin,w,t0,V):          #计算大气光A和折射图t
    #输入:Image最小值图像,img_origion原图,w是t之前的修正参数,t0阈值,V导向滤波结果
    rows,cols,channels=Image.shape
    size=rows*cols
    order = [0 for i in range(size)]
    m = 0
    for t in range(0,rows):
      for j in range(0,cols):
        order[m] = Image[t][j][0]
        m = m+1
    order.sort(reverse=True)
    index =int(size * 0.001) #从暗通道中选取亮度最大的前0.1%
    mid = order[index]
    A = 0
    img_hsv = cv.cvtColor(img_origin,cv.COLOR_RGB2HLS)
    for i in range(0,rows):
      for j in range(0,cols):
        if Image[i][j][0]>mid and img_hsv[i][j][1]>A:
          A = img_hsv[i][j][1]
    V = V * w
    t = 1 - V/A
    t = np.maximum(t,t0)
    return t,A
    
    def repair(Image,t,A):
    rows, cols, channels = Image.shape
    J = np.zeros(Image.shape)
    for i in range(0,rows):
      for j in range(0,cols):
        for c in range(0,channels):
          t[i][j][c] = t[i][j][c]-0.25 # 不知道为什么这里减掉0.25效果才比较好
          J[i][j][c] = (Image[i][j][c]-A/255.0)/t[i][j][c]+A/255.0
    return J
    img = cv.imread('deHaze\\haze.bmp')
    img_arr=np.array(img/255.0)                     #归一化
    img_min=darkchannel(img_arr)         #计算每个通道的最小值
    img_dark=min_filter(img_min,2)       #计算暗通道图像
    img_guided=guided_filter(img_arr,img_min,r=75,eps=0.001)
    t,A=select_bright(img_min,img,w=0.95,t0=0.1,V=img_guided)
    dehaze=repair(img_arr,t,A)
    cv.imshow('Origin',img)
    cv.imshow('darkchannel',img_dark)
    cv.imshow('dehaze',dehaze)
    cv.waitKey()
    cv.destroyAllWindows()

    4 处理结果

    4.1 第一组结果及其比较,暗通道图在这里插入图片描述

    暗通道图像
    在这里插入图片描述

    4.2 第二组结果及其比较,暗通道图

    在这里插入图片描述
    暗通道图
    在这里插入图片描述

    4.3 原图(自取)

    在这里插入图片描述
    在这里插入图片描述

    5 需要注意的是

    从结果来看,去雾效果不是特别好,需要调整代码中的参数不断调试,以达到最优的去雾效果。

    展开全文
  • 何恺明的暗原色先验图像去雾代码 用导向滤波代替软图像抠图来计算透射率分布
  • 双边滤波与导向滤波 http://blog.csdn.net/pi9nc/article/details/26592377 何恺明去雾算法 http://blog.csdn.net/baimafujinji/article/details/27206237 ...(原来导向滤波是为了改进去雾算法)

    双边滤波与导向滤波
    http://blog.csdn.net/pi9nc/article/details/26592377

    何恺明去雾算法
    http://blog.csdn.net/baimafujinji/article/details/27206237

    (原来导向滤波是为了改进去雾算法)

    展开全文
  • 何凯明暗通道去雾的复现。边缘保存用的是导向滤波
  • 该文件对比了导向滤波与其他滤波的性能
  • 导向滤波(guide_filter)的python实现,可以结合暗通道;理论实现比较好的图像去噪效果。
  • 论文下载地址:... 本文主要介绍导向滤波,这算法还能去雾,这块主要是重写了导向滤波应用于彩色图像的部分代码,希望与大家共同交流。   论文主要如下: Kaiming He, Jian Sun, Xiaoou Ta
  • matlab导向滤波函数

    2016-09-02 15:47:54
    matlab导向滤波,M文件
  • 雾天条件下采集的图像存在低对比度和低场景可见度问题,传统的去雾算法时间复杂度高、速度慢,无法应用于实时图像...与经典的去雾算法相比,该算法在保证去雾效果的同时,克服了导向滤波算法时间复杂度高、速度慢的缺陷。
  • kaiming he 暗通道去雾导向滤波

    千次阅读 2017-03-20 10:48:21
    何凯明博士目前已经加入Facebook AI Reserach ,他的blog地址:http://kaiminghe.com/ ...导向滤波论文下载地址:http://kaiminghe.com/publications/eccv10guidedfilter.pdf 目前导向滤波已经加入
  • 何恺明等人研究出的基于暗通道的经典图像去雾算法,不仅可以还原图像的颜色和能见度,同时也能利用雾的浓度来估计物体的距离。 (The classic fog removal algorithm based on dark channel, which was developed by ...
  • 去雾中关于导向滤波的笔记

    千次阅读 2016-03-29 15:50:53
    与双边滤波最大的相似之处,就是导向滤波同样具有保持边缘特性 关于局部线性:可以参看下图,该模型认为,某函数上一点与其邻近部分的点成线性关系,一个复杂的函数就可以用很多局部的线性函数来表示,当需要求该函数...
  • 导向滤波-何凯明

    热门讨论 2013-10-04 17:26:57
    导向滤波,何凯明的最新成果,主要用于去雾
  • 针对透射率优化过程中存在的计算量大、透射率平滑与细节保持之间难以平衡等问题,提出了多重导向滤波透射率优化方法。同时,针对目前大气光估计易受图像中白色物体的影响,提出自适应大气光估计方法。实验结果表明,...
  • 在图像滤波算法中,导向滤波、双边滤波、最小二乘滤波并称三大保边滤波器,他们是各向异性滤波器。相对于常见的均值滤波、高斯滤波等各向同性滤波器,他们最大的特点是在去除噪声的同时,能最大限度保持边缘不被平滑...
  • 回归主题,今天的猪脚是导向滤波,我准备从三篇文章来对它进行简要介绍,导向滤波的应用范围很广泛,比如图像去雾、图像抠图和美颜等。2.导向滤波至于导向滤波的原理推导,我就不介绍了,直接把算法...
  • 导向滤波原理浅析

    2021-01-19 21:00:08
    在图像处理上,导向滤波器(Guided Image Filter)是一种能使图像平滑化的非线性滤波器。与双边滤波器(Bilateral Filter)相同,这个滤波器同样能够在清楚保持图像边界的情况下,达到让图像平滑的效果。 但不同于...
  • 具体涉及一种基于双通道先验和侧窗导向滤波的单幅图像去雾方法。背景技术:图像采集过程中,由于雾天的影响,使得景物的能见度大幅降低,再加上大气光线的影响,造成获得的图像受到严重的质量退化,对比度大大降低。...
  • 导向滤波matlab代码相关合集,包含增强算法,羽化算法,滤波平滑算法等。导向滤波(Guided Filtering)和双边滤波(BF)、最小二乘滤波(WLS)是三大边缘保持(Edge-perserving)滤波器。当然,引导滤波的功能不仅仅...
  • 1. 导向滤波简介 导向滤波是何凯明在学生时代提出的一个保边滤波(edge-preserving smoothing)算法。何凯明在cv圈应该算是名人了,学生时代关于图像去雾的研究就以第一作者的身份获得Best Paper Award(CVPR 2009)...
  • 导向图滤波是一种图像滤波...导向滤波是由何凯明等人在2010年发表在ECCV的文章“Guided Image Filtering”文中提到的,后来陆续发表了改进算法快速导向滤波的实现。导向滤波不仅能够实现双边滤波的边缘平滑,而且在...
  • 导向滤波详解

    千次阅读 2018-05-23 16:34:47
    现在从一个最简单的情形来开始...滤波之后的图像为qq,如下图所示,图像qq中第ii个像素是由图像pp中以第ii个像素为中心的一个窗口ww中的像素确定的。具体而言,在简单平滑中,图像qq中第ii个像素是由图像pp中以第...
  • 导向滤波(Guided Filter)公式详解 https://blog.csdn.net/weixin_43194305 基于导向滤波的图像融合(GFF) https://blog.csdn.net/weixin_43194305/article/details/90678312 图像去雾之何凯明暗通道先验去雾...

空空如也

空空如也

1 2 3 4 5 ... 19
收藏数 371
精华内容 148
关键字:

导向滤波去雾

友情链接: 3.rar