function [v,unv]=statmoments(p,n)
% STATMOMENTS Computes statistical central moments of image histogram.
% [v,unv]=statmoments(p,n) computes up to the Nth statistical
% central moment of a histogram whose components are in vector
% P. The length of must equal 256 or 65536.
% ****from ggbondg****
% The program outputs a V with V(1)=mean, V(2) = variance.
% V(3) = 3rd moment,...V(N)=Nth central moment. The random
% variable values are normalized to the range [0,1], so all
% moments also are in this range.
% ****from ggbondg****
% The program also outputs a Vector UNV containing the same moments
% as V,but using un-normalized random variable values (e.g., 0 to
% 255 if length(P)=2^8). For example, if length(P)=256 and V(1)
% = 0.5, then UNV(1) would have the value UNV(1)=127.5 (half of
% the [0 255] range).
%****from ggbondg****
function R = imnoise2(type, varargin)
%IMNOISE2 Generates an array of random numbers with specified PDF.
% R = IMNOISE2(TYPE, M, N, A, B) generates an array, R, of size
% M-by-N, whose elements are random numbers of the specified TYPE
% with parameters A and B. If only TYPE is included in the
% input argument list, a single random number of the specified
% TYPE and default parameters shown below is generated. If only
% TYPE, M, and N are provided, the default parameters shown below
% are used. If M = N = 1, IMNOISE2 generates a single random
% number of the specified TYPE and parameters A and B.
%
% Valid values for TYPE and parameters A and B are:
%
% 'uniform' Uniform random numbers in the interval (A, B).
% The default values are (0, 1).
% 'gaussian' Gaussian random numbers with mean A and standard
% deviation B. The default values are A = 0, B = 1.
% 'salt & pepper' Salt and pepper numbers of amplitude 0 with
% probability Pa = A, and amplitude 1 with
% probability Pb = B. The default values are Pa =
% Pb = A = B = 0.05. Note that the noise has
% values 0 (with probability Pa = A) and 1 (with
% probability Pb = B), so scaling is necessary if
% values other than 0 and 1 are required. The noise
% matrix R is assigned three values. If R(x, y) =
% 0, the noise at (x, y) is pepper (black). If
% R(x, y) = 1, the noise at (x, y) is salt
% (white). If R(x, y) = 0.5, there is no noise
% assigned to coordinates (x, y).
% 'lognormal' Lognormal numbers with offset A and shape
% parameter B. The defaults are A = 1 and B =
% 0.25.
% 'rayleigh' Rayleigh noise with parameters A and B. The
% default values are A = 0 and B = 1.
% 'exponential' Exponential random numbers with parameter A. The
% default is A = 1.
% 'erlang' Erlang (gamma) random numbers with parameters A
% and B. B must be a positive integer. The
% defaults are A = 2 and B = 5. Erlang random
% numbers are approximated as the sum of B
% exponential random numbers.
% Copyright 2002-2004 R. C. Gonzalez, R. E. Woods, & S. L. Eddins
% Digital Image Processing Using MATLAB, Prentice-Hall, 2004
% $Revision: 1.5 $ $Date: 2003/10/12 23:37:29 $
% Set default values.
function f = adpmedian(g, Smax)
if(Smax <=1) || (Smax/2 ==round(Smax/2)) || (Smax ~= round(Smax))
error('SMAX must be an odd integer >1.')
end
% Initial setup
f = g;
f(:) = 0;
alreadyProcessed = false(size(g));
% Begin filtering.