({{, (RefLink[ResamplingAlgorithmData, paclet:ref/ResamplingAlgorithmData])[rs,"prop"]
gives the specified property "prop" for the resampling rs.}})

OpenersNotesSection(Spacer1)Details

Various resampling methods can be used in a spatial transformation when applied to an image or an array of data. For a list of supported resampling methods, see the reference page for (RefLink[Resampling, paclet:ref/Resampling]).

Use (RefLink[ResamplingAlgorithmData, paclet:ref/ResamplingAlgorithmData]) to obtain properties of resampling methods such as kernel shape, kernel support, and regularity.

(RefLink[ResamplingAlgorithmData, paclet:ref/ResamplingAlgorithmData])[] returns supported resampling methods with default parameter settings.

(RefLink[ResamplingAlgorithmData, paclet:ref/ResamplingAlgorithmData])[rs,"Properties"] gives the list of all applicable properties for a given resampling rs. If a property does not apply, (RefLink[Missing, paclet:ref/Missing])["reason"] is returned.

The following properties can be obtained, if applicable:

Resampling properties "Kernel" and "Basis" are different if a method consists of a linear convolution in combination with a recursive filter, such as "Spline" and "OMOMS".

OpenersPrimaryExamplesSection(Spacer1)Examples  (12)

OpenersExampleSection0(Spacer1)Basic Examples  (3)

Extract some properties of a resampling method:

Plot[ResamplingAlgorithmData["Lanczos","Kernel"][x],{x,-4,4}]

ResamplingAlgorithmData["Lanczos","Regularity"]

ResamplingAlgorithmData["Lanczos","KernelSupport"]

List available properties for a given resampling method:

ResamplingAlgorithmData["Cubic","Properties"]

Some properties may not be applicable for all resampling methods:

ResamplingAlgorithmData["Nearest","Kernel"]

OpenersExampleSection1(Spacer1)Scope  (5)

All resampling methods up to order n==7 with default parameter settings:

ResamplingAlgorithmData[]

Properties of "Nearest" resampling:

ResamplingAlgorithmData["Nearest","Properties"]

Properties of "CatmullRom":

ResamplingAlgorithmData["CatmullRom","Properties"]

The convolution kernel:

ker=ResamplingAlgorithmData["CatmullRom","Kernel"]

Plot of the kernel:

Plot[ker[x],{x,-3,3}]

The Fourier kernel and the plot of it:

(OverHat[ϕ])=ResamplingAlgorithmData["CatmullRom","FourierKernel"]

LogPlot[
Abs[(OverHat[ϕ])[ω]],
{ω,0,6π}, 
Ticks -> {Range[0,12π,π],Automatic}, 
PlotRange-> {(10^(-8)),1.05}, 
MaxRecursion-> 15
]

The kernel regularity is (C^1) and the radius is 2:

ResamplingAlgorithmData["CatmullRom","Regularity"]

ResamplingAlgorithmData["CatmullRom","KernelSupport"]

The error kernel and its series expansion:

error=ResamplingAlgorithmData["CatmullRom","ErrorKernel"]

Series[Sqrt[error[Δ]],{Δ,0,6}]

Properties of the {"Schaum",2} resampling method:

ResamplingAlgorithmData[{"Schaum",2}, "Properties"]

Interpolation kernel:

ϕ=ResamplingAlgorithmData[{"Schaum",2},"Kernel"]

Plot[ϕ[x],{x,-2,2}]

Regularity of the interpolating kernel is (C^(-1))(discontinuous):

ResamplingAlgorithmData[{"Schaum",2}, "Regularity"]

Support interval of the kernel:

ResamplingAlgorithmData[{"Schaum", 2}, "KernelSupport"]

Fourier transform of the kernel:

(OverHat[ϕ])=ResamplingAlgorithmData[{"Schaum", 2}, "FourierKernel"]

Plot[
(OverHat[ϕ])[ω], {ω, -2π, 4π}, Epilog-> {Dashed,Line[{{-π,0},{-π,1},{π,1},{π,0},{4π,0}}]},
Ticks -> {Range[-2π,4π,π],Automatic}
]

Attenuation plot:

LogPlot[
Abs[(OverHat[ϕ])[ω]],
{ω,0,6π}, 
Ticks -> {Range[-2π,6π,π],Automatic}, 
PlotRange-> {(10^(-8)),1.1}
]

Approximation kernel:

approx=ResamplingAlgorithmData[{"Schaum", 2}, "ErrorKernel"]

Approximation order and expansion coefficient:

Series[(Sqrt[approx[ω]]),{ω,0,3}]

Properties of the {"Spline",5} resampling method:

ResamplingAlgorithmData[{"Spline",5}, "Properties"]

Resampling basis function:

(OverTilde[ϕ])=ResamplingAlgorithmData[{"Spline",3},"Basis"]

Plot[(OverTilde[ϕ])[x],{x,-5,5}, PlotRange-> All]

Effective interpolation kernel:

ϕ=ResamplingAlgorithmData[{"Spline",3},"Kernel"]

Plot[ϕ[x],{x,-5,5}, PlotRange-> All]

Regularity (𝒞^2) of the interpolating kernel:

ResamplingAlgorithmData[{"Spline",3}, "Regularity"]

Support interval of the basis function:

ResamplingAlgorithmData[{"Spline",3}, "BasisSupport"]

Fourier transform of the kernel:

(OverHat[ϕ])=ResamplingAlgorithmData[{"Spline",3}, "FourierKernel"]

Plot[
(OverHat[ϕ])[ω], {ω, -2π, 4π}, Epilog-> {Dashed,Line[{{-π,0},{-π,1},{π,1},{π,0},{4π,0}}]},
Ticks -> {Range[-2π,4π,π],Automatic}
]

Attenuation plot:

LogPlot[
Abs[(OverHat[ϕ])[ω]],
{ω,0,6π}, 
Ticks -> {Range[0,12π,π],Automatic}, 
PlotRange-> {(10^(-8)),1.1}
]

Approximation kernel:

approx=ResamplingAlgorithmData[{"Spline",3}, "ErrorKernel"]

Approximation order and expansion coefficient:

Series[(Sqrt[approx[ω]]),{ω,0,5}]

OpenersExampleSection3(Spacer1)Properties & Relations  (4)

Some resampling methods are not symmetric:

ker=ResamplingAlgorithmData[{"Hermite",2},"Kernel"]

Plot[ker[x],{x,-3,3},PlotRange->All]

Some resampling methods are not continuous:

ϕ=ResamplingAlgorithmData[{"Schaum",2},"Kernel"]

Plot[ϕ[x],{x,-2,2}]

Some resampling methods are equivalent. For example"CatmullRom" and {"Meijering",3}:

ResamplingAlgorithmData[{"Meijering",3},"Kernel"]===ResamplingAlgorithmData["CatmullRom","Kernel"]

Signal to noise ratio for signals with a Markov power spectrum of -((2 log(0.9`))/((ω^2)+(log^2)(0.9`))):

Module[
{resamplingMethods,snr,order},
resamplingMethods=ResamplingAlgorithmData[];
snr = Map[{10Log[10,0.9786575/((1/π)NIntegrate[
Evaluate[((-2 Log[0.9])/((ω^2)+(((Log[0.9]))^2)))*
ResamplingAlgorithmData[#,"ErrorKernel"][ω]],{ω,0,π},
WorkingPrecision-> $MachinePrecision])]}&,
resamplingMethods
];
order= Ordering[snr];
TableForm[
snr[[order]],
TableHeadings-> {resamplingMethods[[order]],{"SNR [dB]"}}
]
]

({{DocumentationFooterIconsRelatedFunction.png, ({{See Also}, {(RefLink[Resampling, paclet:ref/Resampling])  ▪  (RefLink[ArrayResample, paclet:ref/ArrayResample])  ▪  (RefLink[ImageResize, paclet:ref/ImageResize])  ▪  (RefLink[ImageRotate, paclet:ref/ImageRotate])  ▪  (RefLink[ImageTransformation, paclet:ref/ImageTransformation])}})}})