论文阅读:Guided Image Filtering, ECCV2010
来源:互联网 发布:金十数据开发者 编辑:程序博客网 时间:2024/05/23 21:05
Paper: Guided Image Filtering, ECCV2010
http://research.microsoft.com/en-us/um/people/kahe/eccv10/index.html
Guided Image filter是一种边缘保持的平滑滤波算法。与双边滤波相比,它不仅具有边缘保持、非迭代的特点,还能保持梯度、并且计算复杂度与滤波半径无关等优点。
经典的双边滤波算法如下图:
滤波权重系数由两部分组成:反应空间位置关系的高斯函数,反应邻域颜色差异的高斯函数。它具有edge preservation的优点,但算法计算复杂度O(r*r).
Guided filter原理如下,其中两张输入图像(p和I)可以相同,也可以不同:
将guided filter表达成类似于双边滤波的形式,如下图:
可以看出,滤波权重系数Wij完全由guided image 决定,找到所有同时包含像素i和j的局部窗口,计算每个窗口像素的平均值和方差,然后利用上述公式计算系数。邻域像素权重系数的直观可视化如下图:
具体实现可参照作者的Matlab代码:
function q = guidedfilter(I, p, r, eps)% GUIDEDFILTER O(1) time implementation of guided filter.%% - guidance image: I (should be a gray-scale/single channel image)% - filtering input image: p (should be a gray-scale/single channel image)% - local window radius: r% - regularization parameter: eps[hei, wid] = size(I);N = boxfilter(ones(hei, wid), r); % the size of each local patch; N=(2r+1)^2 except for boundary pixels.mean_I = boxfilter(I, r) ./ N;mean_p = boxfilter(p, r) ./ N;mean_Ip = boxfilter(I.*p, r) ./ N;cov_Ip = mean_Ip - mean_I .* mean_p; % this is the covariance of (I, p) in each local patch.mean_II = boxfilter(I.*I, r) ./ N;var_I = mean_II - mean_I .* mean_I;a = cov_Ip ./ (var_I + eps); % Eqn. (5) in the paper;b = mean_p - a .* mean_I; % Eqn. (6) in the paper;mean_a = boxfilter(a, r) ./ N;mean_b = boxfilter(b, r) ./ N;q = mean_a .* I + mean_b; % Eqn. (8) in the paper;end
boxfilter可采用类似于快速积分图的方法,算法复杂度为O(1):
function imDst = boxfilter(imSrc, r)% BOXFILTER O(1) time box filtering using cumulative sum%% - Definition imDst(x, y)=sum(sum(imSrc(x-r:x+r,y-r:y+r)));% - Running time independent of r; % - Equivalent to the function: colfilt(imSrc, [2*r+1, 2*r+1], 'sliding', @sum);% - But much faster.[hei, wid] = size(imSrc);imDst = zeros(size(imSrc));%cumulative sum over Y axisimCum = cumsum(imSrc, 1);%difference over Y axisimDst(1:r+1, :) = imCum(1+r:2*r+1, :);imDst(r+2:hei-r, :) = imCum(2*r+2:hei, :) - imCum(1:hei-2*r-1, :);imDst(hei-r+1:hei, :) = repmat(imCum(hei, :), [r, 1]) - imCum(hei-2*r:hei-r-1, :);%cumulative sum over X axisimCum = cumsum(imDst, 2);%difference over Y axisimDst(:, 1:r+1) = imCum(:, 1+r:2*r+1);imDst(:, r+2:wid-r) = imCum(:, 2*r+2:wid) - imCum(:, 1:wid-2*r-1);imDst(:, wid-r+1:wid) = repmat(imCum(:, wid), [1, r]) - imCum(:, wid-2*r:wid-r-1);end
0 0
- 论文阅读:Guided Image Filtering, ECCV2010
- Guided Image Filtering
- Guided Image Filtering
- Guided Image Filtering
- Guided Image Filtering
- 论文"Gradient Domain Guided Image Filtering" matlab实现代码
- Guided Image Filtering学习笔记
- 引导滤波 Guided Image Filtering
- "Gradient Domain Guided Image Filtering"论文中边缘权重函数matlab实现代码
- "Gradient Domain Guided Image Filtering"论文中边缘权重函数matlab实现代码
- 基于guided image filtering的图像去雾 opencv实现
- Real-time local stereo matching using guided image filtering(2011)
- 引导滤波(guided image filtering)原理及C++实现
- 保持边缘的滤波函数————Guided Image Filtering
- [论文阅读&翻译]Item-to-Item Collaborative Filtering
- guided image filter
- Image-Guided Streamline Placement
- [论文阅读笔记]DyTa: dynamic symbolic execution guided with static verification results
- Mybatis学习笔记(二)
- office2007是否可以连到office365的邮箱
- Java核心技术之Java 数据类型
- 算法复杂度
- BGSLibrary背景减法库
- 论文阅读:Guided Image Filtering, ECCV2010
- rac重启遭遇ORA-01078、ORA-01565、ORA-17503、ORA-12547
- <linux学习> 2 ubuntu 下flash 配置
- Tomcat启动报错 严重: End event threw exception
- 实用SQL语句大全
- Find Peak Element [Medium]
- 4399笔试题
- 第16周项目2去除字符的操作2-2
- 第一个内核模块程序编译