资源简介
matlab版本的,仅供参考
代码片段和文件信息
function diff_sig = anisodiff1D(sig num_iter delta_t kappa option)
%ANISODIFF1D Conventional anisotropic diffusion
% DIFF_SIG = ANISODIFF1D(SIG NUM_ITER DELTA_T KAPPA OPTION) perfoms
% conventional anisotropic diffusion (Perona & Malik) upon 1D signals.
% A 1D network structure of 2 neighboring nodes is considered for diffusion
% conduction.
%
% ARGUMENT DEscriptION:
% SIG - input column vector (Nx1).
% NUM_ITER - number of iterations.
% DELTA_T - integration constant (0 <= delta_t <= 1/3).
% Usually due to numerical stability this
% parameter is set to its maximum value.
% KAPPA - gradient modulus threshold that controls the conduction.
% OPTION - conduction coefficient functions proposed by Perona & Malik:
% 1 - c(xt) = exp(-(nablaI/kappa).^2)
% privileges high-contrast edges over low-contrast ones.
% 2 - c(xt) = 1./(1 + (nablaI/kappa).^2)
% privileges wide regions over smaller ones.
%
% OUTPUT DEscriptION:
% DIFF_SIG - (diffused) signal with the largest scale-space parameter.
%
% Example
% -------------
% s = exp(-(-10:0.1:10).^2/2.5)‘ + rand(length(-10:0.1:10)1);
% num_iter = 15;
% delta_t = 1/3;
% kappa = 30;
% option = 2;
% ad = anisodiff1D(snum_iterdelta_tkappaoption);
% figure subplot 121 plot(s) axis([0 200 0 2]) subplot 122 plot(ad) axis([0 200 0 2])
%
% See also anisodiff2D anisodiff3D.
% References:
% P. Perona and J. Malik.
% Scale-Space and Edge Detection Using Anisotropic Diffusion.
% IEEE Transactions on Pattern Analysis and Machine Intelligence
% 12(7):629-639 July 1990.
%
% G. Grieg O. Kubler R. Kikinis and F. A. Jolesz.
% Nonlinear Anisotropic Filtering of MRI Data.
% IEEE Transactions on Medical Imaging
% 11(2):221-232 June 1992.
%
% MATLAB implementation based on Peter Kovesi‘s anisodiff(.):
% P. D. Kovesi. MATLAB and Octave Functions for Computer Vision and Image Processing.
% School of Computer Science & Software Engineering
% The University of Western Australia. Available from:
% .
%
% Credits:
% Daniel Simoes Lopes
% ICIST
% Instituto Superior Tecnico - Universidade Tecnica de Lisboa
% danlopes (at) civil ist utl pt
% http://www.civil.ist.utl.pt/~danlopes
%
% May 2007 original version.
% Convert input signal to double.
sig = double(sig);
% PDE (partial differential equation) initial condition.
diff_sig = sig;
% Center point distance.
dx = 1;
% 1D convolution masks - finite differences.
hW = [1 -1 0]‘;
hE = [0 -1 1]‘;
% Anisotropic diffusion.
for t = 1:num_iter
% Finite differences. [imfilter(..‘conv‘) can be replaced by
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3650 2007-05-15 00:32 anisodiff_Perona-Malik\anisodiff1D.m
文件 4901 2007-05-15 00:32 anisodiff_Perona-Malik\anisodiff2D.m
文件 11335 2007-05-15 00:32 anisodiff_Perona-Malik\anisodiff3D.m
目录 0 2012-02-02 12:54 anisodiff_Perona-Malik
----------- --------- ---------- ----- ----
19886 4
- 上一篇:KCF原程序的详细解读
- 下一篇:倒立摆simuli
nk仿真+文献
评论
共有 条评论