public class ParallelVolumeOperator extends VolumeOperator
VolumeOperator.FILTER_TYPE
Constructor and Description |
---|
ParallelVolumeOperator() |
Modifier and Type | Method and Description |
---|---|
int |
abs(Volume3D vol)
Determines the absolute volume of the input volume.
If the input volume is real Math.abs() is called for each element. If the input volume is complex the power spectrum is computed. |
int |
addScalar(Volume3D vol,
float re_sc,
float im_sc)
Adds a scalar to the Volume3D.
|
int |
addVolume(Volume3D vol1,
Volume3D vol2)
Adds the second volume to the first volume.
|
int |
addVolume(Volume3D vol1,
Volume3D vol2,
double weight)
Adds the second volume
![]() ![]() ![]() The first volume is overwritten. |
Volume3D |
createDirectionalWeights(int dimensions,
int[] size,
float[] dim,
float[] dir,
int A,
VolumeOperator.FILTER_TYPE t_filt)
Creates an anisotropic, i.e.
|
Volume3D |
createExponentialDirectionalHighPassFilter(int dimensions,
int[] size,
float[] dim,
float[] dir,
int A,
float B,
float ri,
VolumeOperator.FILTER_TYPE t_filt)
Creates an radially symetric anisotropic quadrature filter according to this definition:
%preamble{\\usepackage{amsmath}} \\begin{align*}
F(\\mathbf{u}) & = \\left \\{ \\begin{array}{ll} \\left(\\frac{\\displaystyle (\\mathbf{u} \\cdot \\hat{\\mathbf{n}}_k)}{\\displaystyle |\\rho|}\\right)^{2A} \\cdot R(\\rho)& \\text{if}\\qquad\\mathbf{u} \\cdot \\hat{\\mathbf{n}}_k >0 \\\\ 0 & \\text{else} \\end{array} \\right .
|
Volume3D |
createGaussLowPassFilter(int dimensions,
int[] size,
float[] dim,
float alpha)
Creates an isotropic, i.e.
|
Volume3D |
createHighPassFilter(int dimensions,
int[] size,
float[] dim,
int filt_loop,
float lp_upper)
Creates a directional high pass filter
![]() |
Volume3D |
createLowPassFilter(int dimensions,
int[] size,
float[] dim,
float lp_upper)
Creates an isotropic low-pass filter, i.e.
|
int |
divideByVolume(Volume3D vol1,
Volume3D vol2)
Divides the first volume by the second volume element by element
|
int |
fftShift(Volume3D vol)
Performs the shift required for the FFT, i.e.
|
int |
imag(Volume3D vol)
Maps a complex volume onto its imaginary part.
|
void |
makeComplex(Volume3D vol)
Makes the volume complex, i.e.
|
float |
max(Volume3D vol)
Determines the maximum intensity of a pixel in the given volume.
|
float |
mean(Volume3D vol)
Determines the arithmetic average
![]() ![]() ![]() |
float |
min(Volume3D vol)
Determines the minimum intensity of the volume.
|
int |
minOfTwoVolumes(Volume3D vol1,
Volume3D vol2)
Determines the minimal volume element by element.
The output is stored in the first volume. |
int |
multiply(Volume3D vol1,
Volume3D vol2)
Multiplies two volumes element by element.
|
int |
multiplyScalar(Volume3D vol,
float re_sc,
float im_sc)
Multiplies the volume by a scalar.
|
int |
real(Volume3D vol)
Maps volume onto its real part.
|
Volume3D |
solveMaximumEigenvalue(Volume3D[][] structureTensor)
Method to compute the maximal eigenvalue
![]() |
int |
sqrt(Volume3D vol)
Replaces every element in the volume with the output of Math.sqrt(), i.e.
|
int |
upperLimit(Volume3D vol,
float max)
Iterates the volume and replaces all entries greater than max with max.
|
createVolume, createVolume, divideScalar, getFrequencyBoundings, sigmoid, subtractVolume
public Volume3D solveMaximumEigenvalue(Volume3D[][] structureTensor)
VolumeOperator
solveMaximumEigenvalue
in class VolumeOperator
structureTensor
- the structure tensor as 2D array of volumes.public Volume3D createDirectionalWeights(int dimensions, int[] size, float[] dim, float[] dir, int A, VolumeOperator.FILTER_TYPE t_filt)
VolumeOperator
createDirectionalWeights
in class VolumeOperator
dimensions
- dimension should be 3size
- number of pixels per dimensiondim
- resolutiondir
- direction vector A
- parameter At_filt
- filter typepublic Volume3D createExponentialDirectionalHighPassFilter(int dimensions, int[] size, float[] dim, float[] dir, int A, float B, float ri, VolumeOperator.FILTER_TYPE t_filt)
VolumeOperator
createExponentialDirectionalHighPassFilter
in class VolumeOperator
dimensions
- dimension should be 3size
- number of pixels per dimensiondim
- resolutiondir
- the filter direction A
- factor AB
- the relative bandwith of the filter Bri
- t_filt
- parameter toVolumeOperator.fftShift(Volume3D)
public Volume3D createHighPassFilter(int dimensions, int[] size, float[] dim, int filt_loop, float lp_upper)
VolumeOperator
createHighPassFilter
in class VolumeOperator
dimensions
- dimension should be 3size
- number of pixels per dimensiondim
- resolutionfilt_loop
- lp_upper
- VolumeOperator.fftShift(Volume3D)
,
VolumeOperator.createDirectionalWeights(int, int[], float[], float[], int, FILTER_TYPE)
public Volume3D createLowPassFilter(int dimensions, int[] size, float[] dim, float lp_upper)
VolumeOperator
createLowPassFilter
in class VolumeOperator
dimensions
- dimension should be 3size
- number of pixels per dimensiondim
- resolutionlp_upper
- VolumeOperator.fftShift(Volume3D)
public Volume3D createGaussLowPassFilter(int dimensions, int[] size, float[] dim, float alpha)
VolumeOperator
createGaussLowPassFilter
in class VolumeOperator
VolumeOperator.fftShift(Volume3D)
public float mean(Volume3D vol)
VolumeOperator
mean
in class VolumeOperator
vol
- the volumepublic float max(Volume3D vol)
VolumeOperator
max
in class VolumeOperator
vol
- the volumepublic float min(Volume3D vol)
VolumeOperator
min
in class VolumeOperator
vol
- the volumepublic int multiplyScalar(Volume3D vol, float re_sc, float im_sc)
VolumeOperator
multiplyScalar
in class VolumeOperator
vol
- the volumere_sc
- the real part of the scalarim_sc
- the imaginary part of the scalarVolumeOperator.makeComplex(Volume3D)
public void makeComplex(Volume3D vol)
VolumeOperator
makeComplex
in class VolumeOperator
vol
- the volumepublic int addScalar(Volume3D vol, float re_sc, float im_sc)
VolumeOperator
addScalar
in class VolumeOperator
vol
- the volumere_sc
- the real partim_sc
- the imaginary partVolumeOperator.makeComplex(Volume3D)
public int multiply(Volume3D vol1, Volume3D vol2)
VolumeOperator
multiply
in class VolumeOperator
vol1
- the first volumevol2
- the second volumepublic int divideByVolume(Volume3D vol1, Volume3D vol2)
VolumeOperator
divideByVolume
in class VolumeOperator
vol1
- the first volumevol2
- the second volumepublic int addVolume(Volume3D vol1, Volume3D vol2)
VolumeOperator
addVolume
in class VolumeOperator
vol1
- the first volumevol2
- the second volumepublic int addVolume(Volume3D vol1, Volume3D vol2, double weight)
VolumeOperator
addVolume
in class VolumeOperator
vol1
- the first volume vol2
- the second volume weight
- the weighting factor public int minOfTwoVolumes(Volume3D vol1, Volume3D vol2)
VolumeOperator
minOfTwoVolumes
in class VolumeOperator
vol1
- the first volumevol2
- the second volumepublic int abs(Volume3D vol)
VolumeOperator
abs
in class VolumeOperator
vol
- the input volume.public int real(Volume3D vol)
VolumeOperator
real
in class VolumeOperator
vol
- the volume to be mapped.public int imag(Volume3D vol)
VolumeOperator
imag
in class VolumeOperator
vol
- the volumepublic int upperLimit(Volume3D vol, float max)
VolumeOperator
upperLimit
in class VolumeOperator
vol
- the volumemax
- the maximumpublic int sqrt(Volume3D vol)
VolumeOperator
sqrt
in class VolumeOperator
vol
- the volume to be processed.public int fftShift(Volume3D vol)
VolumeOperator
fftShift
in class VolumeOperator
vol
- the volume