资源简介
双边滤波(bilateral filter)matlab源代码,可以直接运行

代码片段和文件信息
% BFILTER2 Two dimensional bilateral filtering.
% This function implements 2-D bilateral filtering using
% the method outlined in:
%
% C. Tomasi and R. Manduchi. Bilateral Filtering for
% Gray and Color Images. In Proceedings of the IEEE
% International Conference on Computer Vision 1998.
%
% B = bfilter2(AWSIGMA) performs 2-D bilateral filtering
% for the grayscale or color image A. A should be a double
% precision matrix of size NxMx1 or NxMx3 (i.e. grayscale
% or color images respectively) with normalized values in
% the closed interval [01]. The half-size of the Gaussian
% bilateral filter window is defined by W. The standard
% deviations of the bilateral filter are given by SIGMA
% where the spatial-domain standard deviation is given by
% SIGMA(1) and the intensity-domain standard deviation is
% given by SIGMA(2).
%
% Douglas R. Lanman Brown University September 2006.
% dlanman@brown.edu http://mesh.brown.edu/dlanman
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Pre-process input and select appropriate filter.
function B = bfilter2(Awsigma)
% Verify that the input image exists and is valid.
if ~exist(‘A‘‘var‘) || isempty(A)
error(‘Input image A is undefined or invalid.‘);
end
if ~isfloat(A) || ~sum([13] == size(A3)) || ...
min(A(:)) < 0 || max(A(:)) > 1
error([‘Input image A must be a double precision ‘...
‘matrix of size NxMx1 or NxMx3 on the closed ‘...
‘interval [01].‘]);
end
% Verify bilateral filter window size.
if ~exist(‘w‘‘var‘) || isempty(w) || ...
numel(w) ~= 1 || w < 1
w = 5;
end
w = ceil(w);
% Verify bilateral filter standard deviations.
if ~exist(‘sigma‘‘var‘) || isempty(sigma) || ...
numel(sigma) ~= 2 || sigma(1) <= 0 || sigma(2) <= 0
sigma = [3 0.1];
end
% Apply either grayscale or color bilateral filtering.
if size(A3) == 1
B = bfltGray(Awsigma(1)sigma(2));
else
B = bfltColor(Awsigma(1)sigma(2));
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Implements bilateral filtering for grayscale images.
function B = bfltGray(Awsigma_dsigma_r)
% Pre-compute Gaussian distance weights.
[XY] = meshgrid(-w:w-w:w);
G = exp(-(X.^2+Y.^2)/(2*sigma_d^2));
% Create waitbar.
h = waitbar(0‘Applying bilateral filter...‘);
set(h‘Name‘‘Bilateral Filter Progress‘);
% Apply bilateral filter.
dim = size(A);
B = zeros(dim);
for i = 1:dim(1)
for j = 1:dim(2)
% Extract local region.
iMin = max(i-w1);
iMax = min(i+wdim(1));
jMin = max(j-w1);
jMax = min(j+wdim(2));
I = A(iMin:iMaxjMin:jMax);
% Compute Gaussian intensity weights.
H = exp(-(I-A(ij)).^2/(2*sigma_r^2));
% Calculate bilateral filter response.
F = H.*G((iMin:iMax)-i+w+1(jMin:jMax)-j+w+1);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2016-04-18 19:13 Bilateral Filter Matlab Code\
文件 4840 2016-04-10 11:06 Bilateral Filter Matlab Code\bfilter2.m
文件 320 2016-04-18 19:13 Bilateral Filter Matlab Code\demo.m
文件 800840 2016-04-08 20:39 Bilateral Filter Matlab Code\lena.png
相关资源
- hsv空间双边滤波去雾MATLAB代码
- 联合双边滤波代码matlab
- retinex by bilateral filter
- 双边滤波 图像增强
- 基于双边滤波的图像抽象化matlab代码
- 基于双边滤波器的retinex算法等代码
- 快速双边滤波matlab代码
- 双边滤波器论文代码复现及其改进
- 双边滤波器 简洁matlab代码
- 双边滤波图像处理方法MATLAB程序
- 用于图像处理的三类边缘保护滤波器
- 灰度图和彩色图都能用的双边滤波(
- 双边滤波算法
- MATLAB联合双边滤波代码.zip
- 双边滤波器(bilateral filter)(MATLAB版
- BilateralFiltering
- guided-filter 指导滤波
- Bilateral_Filtering 双边滤波
- bFilter 经过改进的快速的双边滤波器算
评论
共有 条评论