32#ifndef eman_processor_h__
33#define eman_processor_h__ 1
116 for (
size_t i = 0; i <
images.size(); i++) {
161 return "EMAN processors are in-place image processors. You may apply a processor to process a single image or process multiple images. Processor class is the base class for all processor. <br> \
162The basic design of EMAN Processors: <br>\
163 1) Each Processor class defines an image-processinging algorithm. <br>\
164 2) All the Processor classes in EMAN are managed by a Factory pattern. So each Processor class must define: <br> a) a unique name to idenfity itself in the factory. <br>b) a static method to register itself in the factory.<br>\
165 3) Each Processor class defines its own parameter set.<br>\
166 4) Each Processor class defines functions to return its documentation including parameter information, and processor description. These functions enable EMAN to generate processor manuals dynamically.";
234 bool doInPlace =
true;
265 bool doInPlace =
false;
319 return "An Image Processor defines a way to create a processor image. The processor image is used to multiply the input-image in the fourier space. ImageFilter class is the base class. Each specific ImageFilter class must define function create_processor_image(). ";
339 return "Fourier Filter processors are a group of processor in the frequency domain. Before using such processors on an image, the image must be transformed from real space to the fourier space. FourierProcessor class is the base class of fourier space processors. Each specific processor is either a lowpass filter processor, or a highpass filter processor, or neighter. The unit of lowpass and highpass parameters are in terms of Nyquist, valid range is [0,0.5]. ";
347 d.
put(
"cutoff_freq",
EMObject::FLOAT,
"1/Resolution in 1/A (0 - 1 / 2*apix). eg - a 20 A filter is cutoff_freq=0.05");
348 d.
put(
"apix",
EMObject::FLOAT,
" Override A/pix in the image header (changes x,y and z)");
349 d.
put(
"return_radial",
EMObject::BOOL,
"Return the radial filter function as an attribute (filter_curve)");
356 image->set_attr(
"apix_x", (
float)
params[
"apix"]);
357 image->set_attr(
"apix_y", (
float)
params[
"apix"]);
358 image->set_attr(
"apix_z", (
float)
params[
"apix"]);
361 const Dict dict = image->get_attr_dict();
369 float val = (float)
params[
"cutoff_freq"] * (
float)dict[
"apix_x"];
370 params[
"cutoff_abs"] = val;
374 float val = ((float)
params[
"cutoff_pixels"] / (
float)dict[
"nx"]);
375 params[
"cutoff_abs"] = val;
397 return "Fourier Filter processors are a group of processor in the frequency domain. Before using such processors on an image, the image must be transformed from real space to the fourier space. FourierProcessor class is the base class of fourier space processors. Each specific processor is either a lowpass filter processor, or a highpass filter processor, or neighter. The unit of lowpass and highpass parameters are in terms of Nyquist, valid range is [0,0.5]. ";
405 d.
put(
"cutoff_freq",
EMObject::FLOAT,
"1/Resolution in 1/A (0 - 1 / 2*apix). eg - a 20 A filter is cutoff_freq=0.05");
406 d.
put(
"apix",
EMObject::FLOAT,
" Override A/pix in the image header (changes x,y and z)");
407 d.
put(
"return_radial",
EMObject::BOOL,
"Return the radial filter function as an attribute (filter_curve)");
408 d.
put(
"interpolate",
EMObject::BOOL,
"Whether or not to interpolate the radial scaling function. Default=false. Prb should be true.");
438 return "Typical linear filters are radial, but certain operations can lead to inhomogeneities so the balance between radial and azimuthal power is off. This processor permits enhancing or suppressing azimuthal contrast in Fourier space.";
444 d.
put(
"az_scale",
EMObject::FLOAT,
"Scale factor, >1 enhances contrast <1 decreases");
488 return "Evaluates the SNR of the particle using a masking method similar to that used in the CTF analysis process. The image is not changed. The resulting value is placed in the particle dictionary as eval_maskedsnr";
520 d.
put(
"neighbor",
EMObject::INT,
"If set, interpolates neighbor values rather than zeroing");
521 d.
put(
"neighbornorm",
EMObject::INT,
"In neighbor mode it sums the neighboring 2 (complex) pixels, then divides by this factor. default = sqrt(2), which is good for very noisy images");
532 return "Sets values along X/Y Fourier axes to 0, except origin";
562 d.
put(
"cutoff_freq",
EMObject::FLOAT,
"1/Resolution in 1/A (0 - 1 / 2*apix). eg - a 20 A filter is cutoff_freq=0.05");
563 d.
put(
"hppix",
EMObject::FLOAT,
"If specified will also apply a high pass filter with the specified radius in pixels");
564 d.
put(
"apix",
EMObject::FLOAT,
" Override A/pix in the image header (changes x,y and z)");
566 d.
put(
"xynoz",
EMObject::INT,
"If set, filters the X-Y plane instead of Z");
577 return "Applies a Gaussian lowpass filter (or its inverse), but only along the Z axis (or X-Y). May be useful in anisotropic filtering of tomograms.";
624 return "Multiplies each Fourier pixel by its amplitude";
658 return "Performs Fourier space convolution. Maintains the space that the image is in - i.e. if image is real, the result is real and vice versa.";
702 return "Computes invariants including relative phase in harmonic series";
708 d.
put(
"hn",
EMObject::INT,
"Computes a single translational invariant for the nth harmonic, 1 is a normal power spectrum");
709 d.
put(
"rn",
EMObject::INT,
"Computes a single rot/trans invariant for the nth rotational harmonic, requires hn to be non zero");
710 d.
put(
"rfp",
EMObject::INT,
"Returns a non square 2-D image with translational invariants, y=radial, x=aziumth. Used for rotational alignment.");
711 d.
put(
"fp",
EMObject::INT,
"Returns a non-square 2-D image containing n harmonics for each R&T component. R&T invariant. Min 2, default 4");
713 d.
put(
"size",
EMObject::INT,
"If specified, will determine the number of rotational samples in the bispectrum. If not set, a size is selected automatically");
755 return "Computes a 2-D slice of the 4-D bispectrum of a 2-D image. Returns zero outside of source image. Input may be real or complex, but output is always complex. kx,ky OR jkx,jky OR k OR fp OR ffp";
763 d.
put(
"jkx",
EMObject::INT,
"Jx+Kx location of the slice in Fourier pixels");
764 d.
put(
"jky",
EMObject::INT,
"Jy+Ky location of the slice in Fourier pixels");
765 d.
put(
"k",
EMObject::FLOAT,
"Radius of slice in Fourier pixels, integrates over angle.");
766 d.
put(
"prbk",
EMObject::FLOAT,
"Radius of slice in Fourier pixels, integrates over angle.");
767 d.
put(
"prbkv2",
EMObject::FLOAT,
"Radius of slice in Fourier pixels, integrates over angle. k>|q+k|>q");
768 d.
put(
"prb3D",
EMObject::FLOAT,
"Radius of maximum slic. Returns volume, integrates over angle. k>|q+k|>q");
769 d.
put(
"rfp",
EMObject::INT,
"Returns a non square 2-D image containing translatinal invariants organized such that X=azimuth. Used for rotational alignment.");
770 d.
put(
"fp",
EMObject::INT,
"Returns a non-square 2-D image containing n rotationally integrated planes. R&T invariant.");
771 d.
put(
"ffp",
EMObject::INT,
"Returns a 3-D volume containing n rotationally integrated planes. R&T invariant. This is normally further processed with CTF info to produce fp equivalent.");
772 d.
put(
"size",
EMObject::INT,
"If specified, will determine the size (x/y) of the real-space bispectrum image. If not set, a size is selected automatically");
806 return "Visual enhancement filter useful for localizing particles. Results not designed for reconstruction.";
856 return "Given a mask, will return a 1-D image containing values from the original image inside the mask. If unpack is set, then the inverse operation is performed.";
862 d.
put(
"unpack",
EMObject::INT,
"If set, image should be 1-D and return will match the dimensions of the mask");
896 return "Determines the image gradient in the x direction";
927 return "Determines the image gradient in the y direction";
959 return "Determines the image gradient in the z direction";
995 return "Determines the divergence of a 2D image.";
1031 return "Determines the magnitude of the gradient of a 2D image.";
1067 return "Determines the direction of the gradient of a 2D image.";
1103 return "Determines the magnitude of the laplacian of a 2D image.";
1139 return "Determines the direction of the laplacian of a 2D image.";
1175 return "Determines the second derivative of a 2D image in the gradient direction.";
1214 return "Sets pixel values in a binary image equal to their element wise manhattan distance.";
1254 return "Performs a morphological dilation of a (binary) image.";
1260 d.
put(
"radius",
EMObject::INT,
"The number of pixels (radius) to dilate the input image.");
1261 d.
put(
"iters",
EMObject::INT,
"The number of times to apply this process to the input image.");
1295 return "Performs a morphological k-pixel erosion of a (binary) image.";
1301 d.
put(
"radius",
EMObject::INT,
"The number of pixels (radius) to dilate the input image.");
1302 d.
put(
"iters",
EMObject::INT,
"The number of times to apply this process to the input image.");
1337 return "Performs a morphological k-pixel closing of a (binary) image/volume. Note the box must be large enough to accommodate the dilation to work properly. iter(dilate) -> iter(erode)";
1343 d.
put(
"radius",
EMObject::INT,
"The number of pixels (radius) to dilate the input image.");
1344 d.
put(
"iters",
EMObject::INT,
"The number of times to apply this process to the input image.");
1379 return "Performs a morphological k-pixel opening of a (binary) image/volume. iter(erode) -> iter(dilate)";
1385 d.
put(
"radius",
EMObject::INT,
"The number of pixels (radius) to dilate the input image.");
1386 d.
put(
"iters",
EMObject::INT,
"The number of times to apply this process to the input image.");
1421 return "Computes an internal morphological graduent using k-pixel-width operations on a (binary) image.";
1427 d.
put(
"radius",
EMObject::INT,
"The number of pixels (radius) to dilate the input image.");
1428 d.
put(
"iters",
EMObject::INT,
"The number of times to apply this process to the input image.");
1463 return "Computes an external morphological graduent using k-pixel-width operations on a (binary) image.";
1469 d.
put(
"radius",
EMObject::INT,
"The number of pixels (radius) to dilate the input image.");
1470 d.
put(
"iters",
EMObject::INT,
"The number of times to apply this process to the input image.");
1505 return "Computes the morphological graduent using k-pixel-width operations on a (binary) image.";
1511 d.
put(
"radius",
EMObject::INT,
"The number of pixels (radius) to dilate the input image.");
1512 d.
put(
"iters",
EMObject::INT,
"The number of times to apply this process to the input image.");
1547 return "Performs a morphological top hat operation on a (binary) image.";
1553 d.
put(
"radius",
EMObject::INT,
"The number of pixels (radius) to dilate the input image.");
1554 d.
put(
"iters",
EMObject::INT,
"The number of times to apply this process to the input image.");
1589 return "Performs a morphological black hat operation on a (binary) image.";
1595 d.
put(
"radius",
EMObject::INT,
"The number of pixels (radius) to dilate the input image.");
1596 d.
put(
"iters",
EMObject::INT,
"The number of times to apply this process to the input image.");
1634 d.
put(
"size",
EMObject::INT,
"Size in pixels of the boxes to chop the image into");
1645 return "Automatically detrmines the background for the image then uses this to perform Wiener filters on overlapping subregions of the image, which are then combined using linear interpolation";
1674 d.
put(
"minratio",
EMObject::FLOAT,
"The ratio of the smallest amplitude segment to locate relative to the strongest peak (default=0.5)");
1675 d.
put(
"maxnseg",
EMObject::INT,
"Maximum number of segments to return (default = unlimited)");
1676 d.
put(
"width",
EMObject::FLOAT,
"Required: full width of Gaussians in A at 1/e (FWHM). Also used to determine map prefiltration.");
1677 d.
put(
"mask",
EMObject::EMDATA,
"Optional: mask to apply to map after filtration to limit where centers are placed");
1678 d.
put(
"skipseg",
EMObject::INT,
"Normally the returned map is a segmentation map, but this is unnecessary if only the center coordinates are needed. If 1, the returned map will be a residual volume, not a segmentation map. If 2, it will be the filtered map before segmentation");
1690 return "Segments a volume by sequentially finding and subtracting Gaussians at a specified resolvability.";
1717 d.
put(
"thr",
EMObject::FLOAT,
"Optional : Isosurface threshold value. Pixels below this will not be segment centers (default = 0.9)");
1718 d.
put(
"minsegsep",
EMObject::FLOAT,
"Required: Minimum segment separation in pixels. Segments too close will trigger a reseed");
1719 d.
put(
"maxsegsep",
EMObject::FLOAT,
"Required: Maximum segment separation in pixels. Segments too close will trigger a reseed");
1731 return "Segments a volume into pieces separated by distances in the specified range.";
1758 d.
put(
"nseg",
EMObject::INT,
"Number of segments to divide the image into. default=12" );
1759 d.
put(
"thr",
EMObject::FLOAT,
"Isosurface threshold value. Pixels below this will not be segmented");
1760 d.
put(
"ampweight",
EMObject::INT,
"If set, will weight centers by voxel amplitude. default = 1");
1761 d.
put(
"maxsegsize",
EMObject::FLOAT,
"Maximum radial distance from segment center to member voxel. Default=10000");
1762 d.
put(
"minsegsep",
EMObject::FLOAT,
"Minimum segment separation. Segments too close will trigger a reseed");
1763 d.
put(
"maxiter",
EMObject::FLOAT,
"Maximum number of iterations to run before stopping. Default=100");
1764 d.
put(
"maxvoxmove",
EMObject::FLOAT,
"Maximum number of voxels that can move before quitting. Default=25");
1772 d.
put(
"sep",
EMObject::FLOAT,
"Separation distance, used only in pseudoatom generation. Default=3.78");
1783 return "Performs K-means segmentation on a volume. Note that this method uses random seeds, and thus will return different results each time it is run. Returned map contains number of segment for each voxel (or 0 for unsegmented voxels). Segmentation centers are stored in 'segmentcenters' attribute, consisting of a list of 3n floats in x,y,z triples.";
1819 d.
put(
"purectf",
EMObject::BOOL,
"If set, replaces image with simulated CTF instead of multiplying image by CTF");
1822 d.
put(
"bfactor",
EMObject::FLOAT,
"B-factor in A^2, uses MRC convention rather than EMAN1 convention");
1828 d.
put(
"phaseflip",
EMObject::INT,
"If not true, applies fabs(CTF). default true");
1829 d.
put(
"bispectrumfp",
EMObject::INT,
"If set, the input must be the result of math.bispectrum.slice ffp= mode. Returns something comparable to fp=mode.");
1840 return "Applies a simulated CTF with noise to an image. Astigmatism is always zero. The added noise is either white or based on an empirical curve generated from cryoEM data. ";
1888 return "Applies a 2-D Wiener filter to an image based on its Ctf parameters";
1932 return "Above the cutoff frequency, phases will be completely randomized, but amplitudes will be unchanged. Used for testing for noise bias. If you can reconstruct information that isn't there, then you have noise bias problems.";
1958 return "This processor sharpens a map based on the concept that the power spectrum should be roughly flat over the ~15 A-Nyquist resolution range, then combines this inverse B-factor with the specified low-pass Gaussian filter parameters to produce a single aggregate Gaussian filter.";
1967 d.
put(
"noisecutoff",
EMObject::FLOAT,
"Spatial frequency past which inverse-B will not be applied, default=1/6A");
1969 d.
put(
"return_radial",
EMObject::BOOL,
"Return the radial filter function as an attribute (filter_curve)");
1970 d.
put(
"verbose",
EMObject::INT,
"Print information about the determined B-factor");
1977 image->set_attr(
"apix_x", (
float)
params[
"apix"]);
1978 image->set_attr(
"apix_y", (
float)
params[
"apix"]);
1979 image->set_attr(
"apix_z", (
float)
params[
"apix"]);
1981 float apix=(float)image->get_attr(
"apix_x");
1982 params[
"bfactor"] = pow(apix/(
float)
params[
"cutoff_abs"],0.0f);
1984 const Dict dict = image->get_attr_dict();
1986 params[
"bfactor"] = pow(apix/(
float)
params[
"cutoff_abs"],2.0f);
1989 float val = (float)
params[
"cutoff_freq"] * apix;
1990 params[
"cutoff_abs"] = val;
1991 params[
"bfactor"] = pow(apix/(
float)
params[
"cutoff_abs"],2.0f);
1994 float val = (float)
params[
"cutoff_pixels"] / (
float)dict[
"nx"];
1995 params[
"cutoff_abs"] = val;
1996 params[
"bfactor"] = pow(apix/(
float)
params[
"cutoff_abs"],2.0f);
2019 return "Attempts to automatically remove the low resolution peak present in virtually all cryoEM data.";
2052 return "processor radial function: f(x) = slope * x + intercept;";
2101 return "processor radial function: f(x) = ((x^2 - s^2)/s^4)e^-(x^2/2s^2)";
2148 return "processor radial function: f(x) = 1/sqrt(2*pi)*[1/sigma1*exp-(x^2/2*sigma1^2) - 1/sigma2*exp-(x^2/2*sigma2^2)]";
2191 value = dict_values[0];
2197 return "The base class for real space processor working on individual pixels. The processor won't consider the pixel's coordinates and neighbors.";
2233 d.
put(
"wiener",
EMObject::INT,
"If set, returns Wiener image, default returns SNR");
2234 d.
put(
"scalesnr",
EMObject::FLOAT,
"Scales SSNR by provided value prior to return or use in Wiener calculation. Default 2 (compensates for FSC on 1/2 volumes)");
2240 return "Converts an image containing normalized CCC values to SNR or Wiener filter values. scalesnr defaults to 2, which\
2241 uses the SNR of the average of the two half-image volumes. ie - if scalesnr is 2: SNR = 2*FSC/(1-FSC)";
2275 return "f(x) = |x|";
2303 return "f(x) = floor(x)";
2347 if (*
x>127) *
x-=256;
2355 return "Fixes errors with reading signed/unsigned data. Need to specify the correct mode.";
2378 return "f(x) = 0 if x = 0; f(x) = 1 if x != 0;";
2417 d.
put(
"zero_to",
EMObject::FLOAT,
"Inverted zero values are set to this value, default is 0.");
2423 return "if f(x) != 0: f(x) = 1/f(x) else: f(x) = zero_to";
2432 else *
x = 1.0f/(*x);
2468 return "f(x) = x ^ pow;";
2477 else (*
x) = pow(*
x,
pwr);
2500 return "f(x) = x * x;";
2528 return "f(x) = sqrt(x)";
2566 d.
put(
"center",
EMObject::FLOAT,
"Center value from which number of standard deviations is computed (default = 0)");
2567 d.
put(
"step",
EMObject::FLOAT,
"Stepsize in terms of sigma. ie - 1.5 will discritize to 1.5*sigma steps (default = 1.0)");
2573 return "Converts each pixel value to the integral number of standard deviations from the specified center. Rounds to the nearest integer, -0.5*sigma<x<0.5*sigma -> 0.0 ";
2610 return "f(x) = x if x >= minval; f(x) = 0 if x < minval.";
2647 return "f(x) = x if x <= maxval; f(x) = 0 if x > maxval.";
2690 d.
put(
"gauss_width",
EMObject::FLOAT,
"Range will be narrowed around zero based on a radial Gaussian falloff modeled on math.gausskernelfix. Disabled if set to 0.");
2703 return "Sets values in a range to zero. Opposite of threshold.clampminmax. \nf(x) = x if x > maxval or x < minval; f(x) = 0 for min <= x <= max. If gauss_width set nozero, applies a radial correction factor to both min and max.";
2739 d.
put(
"size2",
EMObject::FLOAT,
"2nd axis size of the object. Meaning varies by shape.");
2740 d.
put(
"size3",
EMObject::FLOAT,
"3rd axis size of the object. Meaning varies by shape.");
2749 return "Adds a specified shape to a volume.";
2773 d.
put(
"nsigma",
EMObject::FLOAT,
"Number of standard deviations to include in the n bit mapping. eg - max=min(mean+nsigma*sigma,max)");
2774 d.
put(
"floatbits",
EMObject::INT,
"If set to a >0 number, alters the algorithm, so the specified number of significant floating point bits is retained. The floating point exponent is not modified. This will produce less compressible data, but the values will be less perturbed.");
2780 return "Converts each pixel value to an integer using the specified number of total bits. This will make the data more compressible, and allows you to handle conversion to integer data modes.\
2781The data itself will remain stored in single precision floating point format, so using >23 bits would be a bad idea.";
2813 return "The 2D image is rotated by 180 degree by carefully swapping image pixel values. No explicit matrix multiplication is performed. If image dimensions are even will change pixels along x=0 and y=0. Works for all combinations of even and oddness.";
2860 d.
put(
"zerocorners",
EMObject::INT,
"If set, corners (anything beyond radius/2-1) may be zeroed out in real or Fourier space. This will produce a considerable speedup in Fourier rotations. ");
2866 return "The image is transformed using transform parameter, or alternatively specific numbers alpha,tx,ty or az,alt,phi,tx,ty,tz (shortcut for convenience)";
2921 return "The image is translated an integer amount";
2965 d.
put(
"sym",
EMObject::STRING,
"The symmetry under which to do the alignment, Default=c1" );
2972 return "Symmetry is imposed on a 2-D image (Cn only) or 3-D volume";
3012 d.
put(
"clip",
EMObject::INT,
"The length of each output dimension. Non sophisticated, output dimensions can't be different" );
3020 return "The image is scaled with the clip variable in mind, being sure to preserve as much pixel information as possible.";
3051 d.
put(
"minval",
EMObject::FLOAT,
"The pixel values that bounds the smallest pixel value in the output image" );
3052 d.
put(
"maxval",
EMObject::FLOAT,
"The pixel values that bounds the largest pixel value in the output image" );
3053 d.
put(
"tomean",
EMObject::BOOL,
"Replace outlying pixels values with the mean pixel value instead" );
3060 return "This function clamps the min and max vals in the image at minval and maxval, respectively. In a sense this a bi-truncation of the data.";
3092 d.
put(
"nsigma",
EMObject::FLOAT,
"The number (n) of sigmas to clamp min and max vals at, so that the clamped boundaries are mean-n*sigma and mean+n*sigma" );
3093 d.
put(
"tomean",
EMObject::BOOL,
"Replace outlying pixels values with the mean pixel value instead" );
3102 return "This function clamps the min and max vals in the image at minval and maxval at mean-n*sigma and mean+n*sigma, respectively. The parameter specified by the user is n, the default value of n is 2.";
3131 d.
put(
"minval",
EMObject::FLOAT,
"Everything below this value is set to this value");
3132 d.
put(
"newval",
EMObject::FLOAT,
"If set, values below minval will be set to newval instead of minval ");
3138 return "f(x) = x if x >= minval; f(x) = minval|newval if x < minval.";
3166 d.
put(
"minval",
EMObject::FLOAT,
"the value that will be set to zero - all values below will also be set to zero. Values above get minval subtracted from them" );
3172 return "f(x) = x-minval if x >= minval; f(x) = 0 if x < minval.";
3204 d.
put(
"value",
EMObject::FLOAT,
"The thresholding value. If a pixel value is equal to or above the threshold it is set to 1. If it is below it is set to 0" );
3210 return "f(x) = 0 if x < value; f(x) = 1 if x >= value.";
3263 return "f(k) = 0 + 0i if ||f(k)|| < value; f(k) = a + bi if ||f(k)|| >= value.";
3295 d.
put(
"range",
EMObject::FLOAT,
"The range about 'value' which will be collapsed to 'value'");
3296 d.
put(
"value",
EMObject::FLOAT,
"The pixel value where the focus of the collapse operation is");
3297 d.
put(
"clamponly",
EMObject::BOOL,
"Leaves values outside the collapse range at their original value, setting pixels in the range to 'value'");
3303 return "f(x): if v-r<x<v+r -> v; if x>v+r -> x-r; if x<v-r -> x+r";
3348 d.
put(
"shift",
EMObject::FLOAT,
"The amount to shift pixel values by after scaling");
3355 return "linear transform processor: f(x) = x * scale + shift. This is equivalent to a regular contrast stretching operation";
3402 d.
put(
"low",
EMObject::FLOAT,
"Pixels are divided by low then high is subtracted prior to the exponential operation, default 1.0");
3403 d.
put(
"high",
EMObject::FLOAT,
"Pixels are divided by low then high is subtracted prior to the exponential operation, default 0.0");
3409 return "f(x) = exp( x / low - high)";
3454 if (new_params.
has_key(
"to") )
3461 d.
put(
"to",
EMObject::FLOAT,
"Pixels which are not finite will be set to this value");
3467 return "f(x) = f(x) if f(x) is finite | to if f(x) is not finite";
3512 d.
put(
"high",
EMObject::FLOAT,
"The upper limit of the range that will be set to 1");
3518 return "Range thresholding. A range of values is set to 1, all else is set to 0. f(x) = 1 if (low <= x <= high); else f(x) = 0";
3565 d.
put(
"value1",
EMObject::FLOAT,
"A number reflecting total standard deviations in the right direction");
3566 d.
put(
"value2",
EMObject::FLOAT,
"A number reflecting total standard deviations in the left direction");
3572 return "f(x) = mean if x<(mean-v2*sigma) or x>(mean+v1*sigma); else f(x) = x;";
3607 return "f(x) = log10(x) if x > 0; else f(x) = 0;";
3638 return "CoordinateProcessor applies processing based on a pixel's value and it coordinates. This is the base class. Specific coordinate processor should implement process_pixel().";
3687 return "Masks out an angular arc in circular/cylindrical coordinates with a sharp edge.";
3694 d.
put(
"phicen",
EMObject::FLOAT,
"Angle in degrees ccw from the x-axis. Center of the region to NOT set to zero.");
3695 d.
put(
"phirange",
EMObject::FLOAT,
"Angle in degrees. Region phicen+-phirange will not be zeroed");
3696 d.
put(
"phitrirange",
EMObject::FLOAT,
"Angle in degrees. With phitriangle, width outside phirange to fall from 1 to 0.");
3697 d.
put(
"phitriangle",
EMObject::BOOL,
"If set mask will fall from 1 at phicen+-phirange to 0 at +-phitrirange");
3702 d.
put(
"ztriangle",
EMObject::FLOAT,
"1/2 width in pixels of linear falloff in Z margin. Centered on specified zmin/zmax.");
3703 d.
put(
"inner_radius",
EMObject::INT,
"inner mask radius. optional. Default 0");
3704 d.
put(
"outer_radius",
EMObject::INT,
"outer mask radius. optional. Default nx+ny. Negative value -> box radius + outer_radius +1");
3757 return "CircularMaskProcessor applies a circular mask to the data.This is the base class for specific circular mask processors.Its subclass must implement process_dist_pixel().";
3765 d.
put(
"outer_radius",
EMObject::FLOAT,
"outer mask radius. Negative value -> box radius + outer_radius +1");
3768 "Modify mask center by dx relative to the default center nx/2");
3770 "Modify mask center by dy relative to the default center ny/2");
3772 "Modify mask center by dz relative to the default center nz/2");
3786 float dist = (xi -
xc) * (xi -
xc) + (yi -
yc) * (yi -
yc) + (zi -
zc) * (zi -
zc);
3834 return "step cutoff to a user-given value in both inner and outer circles.";
3881 d.
put(
"width",
EMObject::FLOAT,
"1/e width of Gaussian falloff (both inner and outer) in pixels. default=4");
3887 return "Outer (optionally also inner) mask to a user-provided value with a soft Gaussian edge.";
3937 return "A step cutoff to the the mean value in a ring centered on the outer radius";
3974 return "fills masked region";
4015 d.
put(
"exponent",
EMObject::FLOAT,
"The exponent, f in e^-Bs^f. default 2.0, producing a Gaussian");
4021 return "a gaussian falloff to zero, radius is the 1/e of the width. If inner_radius>0, then \
4022outer radius specifies width of Gaussian starting at inner_radius rather than total radius.";
4086 d.
put(
"gauss_width",
EMObject::FLOAT,
"Gaussian falloff width, relative to each radius, default 0.05");
4089 "Modify mask center by dx relative to the default center nx/2");
4091 "Modify mask center by dy relative to the default center ny/2");
4093 "Modify mask center by dz relative to the default center nz/2");
4110 return "A Gaussian falloff to zero. Anisotropic, specify inner radius for x,y,z and Gaussian falloff width. Falloff \
4111width is also anisotropic and relative to the radii, with 1 being equal to the radius on that axis.";
4120 if (dist>1.0) (*pixel)*=exp(-pow((
sqrt(dist)-1.0f)/
gauss_width,2.0f));
4137 d.
put(
"gauss_width",
EMObject::FLOAT,
"Used to calculate the constant factor - gauss_width / (ny*ny)" );
4154 return "f(x) = f(x) / exp(-radius*radius * gauss_width / (ny*ny))";
4166 float gauss_width =
params[
"gauss_width"];
4206 return "This corrects the real-space effects of using one of the gridding insertion functions on the Fourier reconstructor. Valid options for mode are 'gridding_5' and 'gridding7'.";
4246 return "Multiplies image by a 'linear pyramid' in 1-3 dimensions. The origin and total base width of the pyramid can be specified. Default is centered with the total image size.";
4269 return "overwrites input, f(x) = radius * radius";
4297 return "overwrites input, f(x) = radius;";
4305 *pixel =
sqrt(dist);
4318 return "The base class for fourier space processor working on individual pixels. ri2ap() is called before processing, so individual pixels will be A/P rather than R/I. The processor won't consider the pixel's coordinates and neighbors.";
4341 return "Each Fourier pixel will be normalized. ie - amp=1, phase=unmodified. Useful for performing phase-residual-like computations with dot products.";
4374 d.
put(
"areasize",
EMObject::INT,
"The width of the area to process (not radius)");
4380 return "AreaProcessor use pixel values and coordinates of a real-space square area. This is the base class. Specific AreaProcessor needs to implement function create_kernel().";
4384 virtual void process_pixel(
float *pixel,
float,
float,
float,
float *area_matrix)
const
4388 *pixel += area_matrix[i] *
kernel[i];
4421 return "Discrete approximation to Laplacian. Edge enchancement, but works poorly in the presence of noise. Laplacian processor (x -> d^2/dx^2 + d^2/dy^2 + d^2/dz^2).";
4448 return "Contraction of data, if any nearest neighbor is 0, value -> 0, generally used iteratively";
4458 if (*pixel == matrix[1] || *pixel == matrix[3] || *pixel == matrix[5] ||
4459 *pixel == matrix[7] || matrix[1] == 0 || matrix[3] == 0 ||
4460 matrix[5] == 0 || matrix[7] == 0) {
4487 return "BoxStatProcessor files are real-space neighborhood processors. These processors compute every output pixel using information from a reduced region on the neighborhood of the input pixel. The classical form are the 3x3 processors. BoxStatProcessors could perform diverse tasks ranging from noise reduction, to differential , to mathematical morphology. BoxStatProcessor class is the base class. Specific BoxStatProcessor needs to define process_pixel(float *pixel, const float *array, int n).";
4493 d.
put(
"radius",
EMObject::INT,
"The 'radius' of the (square/cube) search box, eg - 1 -> 3x3 box");
4494 d.
put(
"xsize",
EMObject::INT,
"+- range on X axis, 0 uses the value only, 1 -> -1,0,+1, ...");
4521 return "A processor for noise reduction. pixel = median of values surrounding pixel.";
4529 float *data =
new float[n];
4530 memcpy(data, array,
sizeof(
float) * n);
4532 for (
int i = 0; i <= n / 2; i++)
4534 for (
int j = i + 1; j < n; j++)
4536 if (data[i] < data[j]) {
4546 *pixel = data[n / 2];
4549 *pixel = (data[n / 2] + data[n / 2 - 1]) / 2;
4575 return "pixel = standard deviation of values surrounding pixel.";
4584 float square_sum = 0;
4585 for (
int i = 0; i < n; i++)
4588 square_sum += data[i] * data[i];
4591 float mean = sum / n;
4592 *pixel =
sqrt(square_sum / n - mean * mean);
4612 return "peak processor: pixel = max of values surrounding pixel in a square/cube with specified 1/2 size.";
4620 float maxval = -FLT_MAX;
4621 for (
int i = 0; i < n; i++)
4623 if (data[i] > maxval) {
4645 return "Takes the actual value of the pixel in the local region with the smallest absolute value. This can be used for an effect somewhat like binary erosion with continuous data.";
4653 float minval = FLT_MAX;
4654 for (
int i = 0; i < n; i++)
4656 if (fabs(data[i]) < fabs(minval)) minval=data[i];
4679 return "peak processor: pixel = pixel - max of values surrounding pixel. This is a sort of positive peak-finding algorithm.";
4687 float maxval = -FLT_MAX;
4688 for (
int i = 0; i < n; i++)
4690 if (data[i] > maxval) {
4724 d.
put(
"npeaks",
EMObject::INT,
"The number of pixels adjacent to the pixel under consideration which may be higher and still be a valid peak. If 0, finds pure peaks");
4725 d.
put(
"usemean",
EMObject::BOOL,
"Count all pixels with value higher than the mean of adjacent pixels as peaks. Overwrite npeaks.");
4731 return "Zeros all pixels with adjacent pixels >= the value being considered. That is, it leaves behind only local maxima.";
4741 for (
int i = 0; i < n; i++)
4746 if (*pixel < mean/
float(n))
4754 for (
int i = 0; i < n; i++)
4756 if (data[i] >= *pixel) {
4791 return "averages over cal_half_width, then sets the value in a local block";
4797 d.
put(
"cal_half_width",
EMObject::FLOAT,
"cal_half_width is dx/dy for calculating an average");
4833 return "Block processor, val1 is dx/dy, val2 is lp freq cutoff in pixels. Mystery processor.";
4854 template<
class LogicOp>
4863 template<
class LogicOp>
4887 return BooleanShrinkProcessor::process<GreaterThan>(image,
params);
4893 BooleanShrinkProcessor::process_inplace<GreaterThan>(image,
params);
4898 return "Shrink an image by a given amount (default 2), using the maximum value found in the pixel neighborhood.";
4914 d.
put(
"search",
EMObject::INT,
"The search area (cubic volume width, usually the same as shrink)");
4923 inline bool operator()(
float left,
float right)
const {
return left > right; }
4947 return BooleanShrinkProcessor::process<LessThan>(image,
params);
4953 BooleanShrinkProcessor::process_inplace<LessThan>(image,
params);
4957 return "Shrink an image by a given amount (default 2), using the minimum value found in the pixel neighborhood.";
4973 d.
put(
"search",
EMObject::INT,
"The search area (cubic volume width, usually the same as shrink)");
4982 inline bool operator()(
float left,
float right)
const {
return left < right; }
5018 return "Shrink an image by a given amount , using the mean value found in the pixel neighborhood.";
5090 return "Shrink an image by a given amount , using the median value found in the pixel neighborhood.";
5139 return "Robust resampling of an image by clipping its Fourier transform.";
5154 d.
put(
"n",
EMObject::FLOAT,
"The sample rate. Less than one enlarges the image, greater than one shrinks it.");
5189 return "Gradient remover, does a rough plane fit to find linear gradients.";
5219 return "Remove gradient by least square plane fit";
5225 d.
put(
"mask",
EMObject::EMDATA,
"mask object: nonzero pixel positions will be used to fit plane. default = 0");
5226 d.
put(
"changeZero",
EMObject::INT,
"if zero pixels are modified when removing gradient. default = 0");
5255 return "Makes a curve or plane monotonically decreasing and non-convex. Useful in generating background curves from power spectra. Anchored at edges and (in 2d) at the center. If local value > mean(surrounding values) => mean(surrounding values).";
5293 return "Flattens the background by subtracting the local mean";
5299 d.
put(
"mask",
EMObject::EMDATA,
"A mask the defines the local neighborhood that will be used to find the local mean. Exclusive of the radius argument");
5300 d.
put(
"radius",
EMObject::INT,
"The radius of circle/sphere that defines the local neighborhood. Exclusive of the mask argument");
5326 return "Ramp processor -- Fits a least-squares plane "
5327 "to the picture, and subtracts the plane from "
5328 "the picture. A wedge-shaped overall density "
5329 "profile can thus be removed from the picture.";
5354 return "Tries to fix images scanned on the zeiss for poor ccd normalization.";
5379 return "This will replace the image with a full-circle 2D fft amplitude rendering. Note that this renders amplitude, when intensity is more common.";
5403 return "Identifies pixels corresponding to peaks in Fourier space based on the mean & standard deviation of the corresponding Fourier amplitude in each ring/shell. These pixels are masked out or in depending on options.";
5409 d.
put(
"thresh_sigma",
EMObject::FLOAT,
"Values above mean + thresh_sigma * sigma are identified. Default 1.0");
5410 d.
put(
"removepeaks",
EMObject::BOOL,
"Instead of keeping peaks and removing everything else, this will remove peaks and keep everything else.");
5411 d.
put(
"to_mean",
EMObject::BOOL,
"Instead of setting identified pixels to zero, set the amplitude to the mean amplitude.");
5436 return "Sets a cone to zero in Fourier space around the +-Z axis to (somewhat) emulate the missing cone in an RCT experiment. Angles are measured using X/Y/Z expressed as a fraction of Nyquist, for sensible results on non-cubic images";
5442 d.
put(
"angle",
EMObject::FLOAT,
"Angular range in degrees from the Z axis to zero. (default 15)");
5443 d.
put(
"rmin",
EMObject::FLOAT,
"Radius in Fourier pixels at which to start zeroing. This permits some very low resolution to be preserved. (default 1)");
5468 return "Sets a wedge to zero in Fourier space around the +-Z axis along X as a tilt axis to (somewhat) emulate the missing wedge in a tomography experiment. For example, anglemin=-30, anglemax=30 to roughly emulate at -60 to +60 tilt series";
5474 d.
put(
"anglemin",
EMObject::FLOAT,
"Minimum angle (degrees) in Y-Z plane to zero (default -30)");
5475 d.
put(
"anglemax",
EMObject::FLOAT,
"Maximum angle (degrees) in Y-Z plane to zero (default 30)");
5476 d.
put(
"rmin",
EMObject::FLOAT,
"Radius in Fourier pixels at which to start zeroing. This permits some very low resolution to be preserved. (default 1)");
5502 return "Identifies missing wedge voxels and fills them with data extracted from another image";
5508 d.
put(
"fillsource",
EMObject::EMDATA,
"The image from which to draw the missing values. If omitted, will fill wedge with zero.");
5509 d.
put(
"thresh_sigma",
EMObject::FLOAT,
"Multiplied by the standard deviation in each Fourier shell as a threshold for identifying 'missing' data.");
5510 d.
put(
"maxtilt",
EMObject::FLOAT,
"Assumes Y is exact tilt axis, with 0 tilt in X-Y. Symmetrically fills region beyond +-maxtilt in degrees. Default=disabled");
5536 return "Fill zeroes at edges with nearest horizontal/vertical value.";
5542 d.
put(
"nonzero",
EMObject::BOOL,
"If set, will look for constant non-zero values to fill");
5571 d.
put(
"fix_zero",
EMObject::BOOL,
"If set, any pixels that are exactly zero are considered to be outliers, default=false");
5572 d.
put(
"sigma",
EMObject::FLOAT,
"outliers are defined as mean+-x*sigma where x is the specified value, default=3.0");
5578 return "Identifies any pixels that are outliers and adjusts them to be the average of any nearby non-outlier pixels. Operates iteratively when required, so large 'outlier' areas can be corrected.";
5606 return "Try to eliminate beamstop in electron diffraction patterns. value1=sig multiplier; value2,value3 are x,y of center, if value1<0 also does radial subtract.";
5640 return "Fill zeroes at edges with nearest horizontal/vertical value damped towards Mean2.";
5666 return "Average along Y and replace with average";
5691 return "Decay edges of image to zero";
5697 d.
put(
"width",
EMObject::INT,
"Width of the decay region around the edge of the image in pixels");
5726 return "zero edges of image on top and bottom, and on left and right.";
5736 d.
put(
"apodize",
EMObject::INT,
"Number of layers linearly apodized to zero, but only on edges where >0 layers are zeroed. Default 0");
5767 return "zero edges of volume on all sides";
5777 d.
put(
"z0",
EMObject::INT,
"The number of slices to zero from the bottom");
5803 return "Bilateral processing on 2D or 3D volume data. Bilateral processing does non-linear weighted averaging processing within a certain window. ";
5814 d.
put(
"distance_sigma",
EMObject::FLOAT,
"means how large the voxel has impact on its neighbors in spatial domain. The larger it is, the more blurry the resulting image.");
5815 d.
put(
"value_sigma",
EMObject::FLOAT,
"means how large the voxel has impact on its in range domain. The larger it is, the more blurry the resulting image.");
5816 d.
put(
"niter",
EMObject::INT,
"how many times to apply this processing on your data.");
5817 d.
put(
"half_width",
EMObject::INT,
"processing window size = (2 * half_widthh + 1) ^ 3.");
5833 return "Base class for normalization processors. Each specific normalization processor needs to define how to calculate mean and how to calculate sigma.";
5858 return "Normalize an image so its vector length is 1.0.";
5887 return "Normalize an image so its elements sum to 1.0 (fails if mean=0)";
5917 return "do a standard normalization on an image (mean=0, sigma=1).";
5943 return "Normalize an image so the estimated histogram peak is zero and sigma=1. Only works if the histogram peak is within +-2*sigma of the mean";
5970 return "Uses a 1/0 mask defining a region to use for the zero-normalization.if no_sigma is 1, standard deviation not modified.";
5981 d.
put(
"mask",
EMObject::EMDATA,
"The 0-1 mask defining the region for the normalization. Any non-zero values will be considered");
5982 d.
put(
"no_sigma",
EMObject::INT,
"If set, the mean will be set to zero, but sigma will not be modified");
5983 d.
put(
"apply_mask",
EMObject::INT,
"If set, the mask will also be applied (multiplied) to the volume");
6011 return "First call filter.ramp on the image, then make the mean 0 and norm 1";
6042 return "Normalize the mass of the image assuming a density of 1.35 g/ml (0.81 Da/A^3) (3D only)";
6048 d.
put(
"apix",
EMObject::FLOAT,
"Angstrom per pixel of the image. If not set will use the apix_x attribute of the image");
6049 d.
put(
"mass",
EMObject::FLOAT,
"The approximate mass of protein/structure in kilodaltons");
6050 d.
put(
"thr",
EMObject::FLOAT,
"The isosurface threshold which encapsulates the structure");
6051 d.
put(
"verbose",
EMObject::INT,
"If set will give details about the normalization");
6078 return "normalizes an image, mean value equals to edge mean.";
6104 return "normalizes an image, mean value equals to mean of 2 pixel circular radius or of the circular border if no radius is set.";
6138 return "normalizes an image, uses 2 pixels on left and right edge";
6164 return "normalizes an image. mean -> (maxval-minval)/2; std dev = (maxval+minval)/2;";
6192 d.
put(
"unitlen",
EMObject::BOOL,
"Adjusts the length of the 'row vector' to be 1.0 without adjusting the mean");
6198 return "Modifies each row in the image individually. Default behavior is to divide each value by the mean value of the row, as long as the mean>0.";
6237 d.
put(
"actual",
EMObject::EMDATA,
"If specified, ref is used for normalization, but actual is subtracted.");
6238 d.
put(
"low_cutoff_frequency",
EMObject::FLOAT,
"Absolute [0,0.5] low cut-off frequency.");
6239 d.
put(
"high_cutoff_frequency",
EMObject::FLOAT,
"Absolute [0,0.5] high cut-off frequency.");
6240 d.
put(
"ctfweight",
EMObject::BOOL,
"Filter the image by CTF before subtraction");
6241 d.
put(
"return_fft",
EMObject::BOOL,
"Skips the final IFT, and returns the FFT of the subtracted image");
6242 d.
put(
"return_subim",
EMObject::BOOL,
"Instead of returning the image after subtraction, returns the filtered image which would have been subtracted from the image.");
6243 d.
put(
"return_radial",
EMObject::BOOL,
"Return the radial filter function as an attribute (filter_curve)");
6244 d.
put(
"return_presigma",
EMObject::BOOL,
"Return the sigma of the pre-subtracted image in real-space with the specified filter applied as sigma_presub. This is an expensive option.");
6250 return "This will filter/scale 'ref' optimally and subtract it from image using ring dot products in Fourier space for normalization. Cutoff frequencies apply a bandpass tophat filter to the output.";
6281 d.
put(
"fourieramp",
EMObject::INT,
"If set, performs normalization using Fourier amplitudes instead of real-space image. Default = False.");
6282 d.
put(
"ignore_zero",
EMObject::BOOL,
"If set, ignores any pixels which are exactly zero in either image. Defaut = True.");
6283 d.
put(
"ignore_lowsig",
EMObject::FLOAT,
"If >0, then any pixels closer to the mean than val*sigma in either image excluded");
6284 d.
put(
"low_threshold",
EMObject::FLOAT,
"only take into account the reference image's pixel value between high and low threshold (zero is always ignored)");
6285 d.
put(
"high_threshold",
EMObject::FLOAT,
"only take into account the reference image's pixel value between high and low threshold (zero is always ignored)");
6286 d.
put(
"debug",
EMObject::BOOL,
"This is a debugging flag which will cause various diagnostic files to be written.");
6292 return "This will use a pixel vs pixel least squares fit to normalize one image to optimally match a second image, with various options for excluding some pixels. norm_mult and norm_add will be set in the header of the result.";
6317 return "Makes image circularly/spherically symmetric.";
6342 return "subtracts circularly/spherically symmetric part of an image.";
6387 return "Get the transpose of an image. Works for 2D only";
6420 return "Flips an image along the specified axis, preserving the center. This will introduce a plane of 0's for even box sizes. Use 'xform.reverse' processor to avoid the zero plane, but not preserve the center.";
6453 return "Mirrors (reverses) an image along the specified axis, preserving the center. This will NOT introduce a plane of 0's for even box sizes. Use 'xform.mirror' or 'xform.flip' processor to include the zero plane and preserve the center.";
6510 d.
put(
"noise",
EMObject::FLOAT,
"noise factor used to generate Gaussian distribution random noise");
6517 return "add gaussian (white) noise to an image with mean='noise' and sigma='noise/2'";
6546 return "add sigma noise.";
6592 return "add spectral noise to a complex image.";
6625 return "Undoes the xform.fourierorigin.tocenter processor";
6665 return "Translates the origin in Fourier space from the corner to the center in y and z - works in 2D and 3D";
6746 return "Undoes the effect of the xform.phaseorigin.tocorner processor";
6776 return "Translates a centered image to the corner in a forward fashion";
6804 d.
put(
"radius",
EMObject::INT,
"Pixel radius of a ball which is used to seed the flood filling operation. ");
6805 d.
put(
"nmaxseed",
EMObject::INT,
"Use the n highest valued pixels in the map as a seed. Alternative to radius. Useful for viruses.");
6806 d.
put(
"threshold",
EMObject::FLOAT,
"An isosurface threshold that suitably encases the mass.");
6809 d.
put(
"nshellsgauss",
EMObject::INT,
"number of Gaussian pixels to expand, following the dilation operations");
6810 d.
put(
"return_mask",
EMObject::BOOL,
"If true the result of the operation will produce the mask, not the masked volume.");
6817 return "2D version of mask.auto3d";
6848 d.
put(
"symavg",
EMObject::INT,
"Cn symmetry only. If set, the mask for a single subunit will follow a linear falloff to the neighboring subunit. After applying, symmetrizing the map should produce a smooth symmetrized average of the masked subunit (and partially its two neighbors).");
6849 d.
put(
"au",
EMObject::INT,
"The asymmetric unit to mask out. If this is -1 will mask all asymmetric units, giving each a unique number.");
6856 return "Masks out a specific asymmetric unit of the given symmetry. If the au parameter is -1 will mask all asymmetric units, assigning the asymetric unit number to the masked area.";
6885 d.
put(
"voxels",
EMObject::INT,
"If a connected mass is smaller than this many voxels it is removed");
6886 d.
put(
"verbose",
EMObject::INT,
"Level of verbosity, 0 default. 1 will print each non-excluded zone");
6892 return "A dust removal filter which will remove above threshold densities smaller than a given size";
6925 d.
put(
"threshold2",
EMObject::FLOAT,
"Lower secondary threshold to define boundary.");
6926 d.
put(
"nshells",
EMObject::INT,
"Number of 1-voxel shells to expand the mask by.");
6927 d.
put(
"nshellsgauss",
EMObject::INT,
"Width in voxels of a Gaussian decay at the edge of the mask.");
6928 d.
put(
"return_mask",
EMObject::BOOL,
"If true the result of the operation will produce the mask, not the masked volume.");
6935 return "Tries to mask out only interesting density";
6965 return "This will mask a 3-D volume using a 'flood filling' approach. It begins with a seed generated either as a sphere with \
6966specified 'radius' or with the 'nmaxseed' highest values. It then includes any mass connected to the seed with value higher than 'threshold'.\
6967Next, the mask is expanded by 'nshells'+'nshellsgauss'/2 voxels. Finally a gaussian low-pass filter is applied with a width of 'nshellsgauss'.";
6973 d.
put(
"radius",
EMObject::INT,
"Pixel radius of a ball which is used to seed the flood filling operation. ");
6974 d.
put(
"nmaxseed",
EMObject::INT,
"Use the n highest valued pixels in the map as a seed. Alternative to radius. Useful for viruses.");
6975 d.
put(
"threshold",
EMObject::FLOAT,
"An isosurface threshold that suitably encases the mass.");
6977 d.
put(
"nshells",
EMObject::INT,
"Number of 1-voxel shells to expand the mask by.");
6978 d.
put(
"nshellsgauss",
EMObject::INT,
"Width in voxels of a Gaussian decay at the edge of the mask.");
6979 d.
put(
"return_mask",
EMObject::BOOL,
"If true the result of the operation will produce the mask, not the masked volume.");
7002 return "A multilevel mask has an integer value at each pixel location. -1 indicates unmasked regions. 0-n-1 are individual masks. Expands the masked regions into unmasked areas by nshells.";
7035 return "Add additional shells/rings to an existing 1/0 mask image";
7074 return "centers the image the center of mass, which is calculated using Fourier phases, ignores old dx, dy.";
7080 d.
put(
"int_shift_only",
EMObject::INT,
"If set, will only shift by integer amounts to avoid interpolation");
7107 return "Centers similar to the way a human would, by identifying the shape of the object and centering its sillouette. May be inaccurate if sillouette cannot be clearly identified. ";
7143 return "ToMassCenterProcessor centers image at center of mass, with a threshold. Only values higher than the threshold are considered.";
7149 d.
put(
"int_shift_only",
EMObject::INT,
"set to 1 only shift by integer, no interpolation");
7150 d.
put(
"threshold",
EMObject::FLOAT,
"Only values larger than the threshold are included in the center of mass computation. Default is 0.");
7151 d.
put(
"powercenter",
EMObject::INT,
"If set, squares pixel values before computing the center. The threshold is with respect to the squared values.");
7179 return "Center image using self-convolution.";
7216 return "This processor will apply a Wiener filter to a volume based on a provided FSC curve. The assumption is that the FSC curve represents \
7217a gold standard FSC between two 1/2 sets, and that the filter is being applied to the combined average. Hence the default fscmult of 2, \
7218since the SSNR is being computed as FSC/(1-FSC). Ie - the SSNR of the combined halves is twice as high.";
7224 d.
put(
"snrmult",
EMObject::FLOAT,
"This multiplier is applied to the computed SNR before Wiener filtration. This permits the filter to be applied to 1/2 images, etc. Default=2.0");
7225 d.
put(
"sscale",
EMObject::FLOAT,
"This rescales the S axis to produce empirical under/overfiltration. sscale=1.1 for example will extend the resolution (underfilter) by 10%. Default=1.0");
7226 d.
put(
"maxfreq",
EMObject::FLOAT,
"This acts as a high resolution limit to prevent FSC artifacts from iteratively reinforcing themselves. Above this spatial frequency, the FSC is forced to decrease monotonically. Default=1.0");
7227 d.
put(
"fscfile",
EMObject::STRING,
"filename of a file containing the FSC curve to use for the SNR computation");
7256 return "One of the strongest visual impacts of CTF on a structure is the low resolution high-pass filter effect caused by \
7257phase contrast. This Processor performs a simple linear filter to roughly correct for this. This is not a substitution or replacement \
7258for the full CTF correction routine available for single particle work in EMAN, but if you are in a situation where accurate CTF \
7259correction is not possible, this will allow you to approximate the correction to relieve some of the visual artifacts. Circularly \
7260symmetric phase flipping can optionally be performed.";
7271 d.
put(
"hppix",
EMObject::FLOAT,
"Optional high pass filter radius in pixels to prevent gradient amplification, default disabled");
7272 d.
put(
"phaseflip",
EMObject::INT,
"Also flip phases if set, default false");
7273 d.
put(
"useheader",
EMObject::INT,
"Use CTF header values if present, instead of individual values, default false");
7302 return "Process the images by the estimated SNR in each image.if parameter 'wiener' is 1, then wiener processor the images using the estimated SNR with CTF amplitude correction.";
7308 d.
put(
"wiener",
EMObject::INT,
"if set to 1, then use wiener processor to process the images using the estimated SNR with CTF amplitude correction");
7331 return "A fourier processor specified in a 2 column text file.";
7342 d.
put(
"filename",
EMObject::STRING,
"file name for a 2 column text file which specified a radial function data array.");
7371 return "Identifiy the best symmetry in the given symmetry list for each pixel and then apply the best symmetry to each pixel.";
7383 d.
put(
"thresh",
EMObject::FLOAT,
"the minimal level of symmetry to be accepted (0-1)");
7384 d.
put(
"output_symlabel",
EMObject::INT,
"if output the symmetry label map in which the pixel value is the index of symmetry in the symmetry list");
7385 d.
put(
"symlabel_map",
EMObject::EMDATA,
"the optional return map when output_symlabel=1");
7413 return "This processor will correct defective pixel columns/rows by averaging adjacent pixel values";
7421 d.
put(
"neighbornorm",
EMObject::INT,
"Interpolate neighboring pixels, then divides by this factor. Default = 1.0.");
7450 return "This processor will remove localized 'striping' along the x/y axes, caused by issues with CCD/CMOS readout. In theory this should be done by dark/gain correction, but in many cases, there are residual effects that this will help eliminate. This can produce high-pass filter-like effects, so generally large length values are suggested. Integration covers +-xlen/ylen. Y and X axes are corrected sequentially, not simultaneously, Y first";
7456 d.
put(
"xlen",
EMObject::INT,
"Integration 1/2 length on x axis in pixels. Default=10");
7457 d.
put(
"ylen",
EMObject::INT,
"Integration 1/2 length on y axis in pixels. Default=10");
7487 return "This processor attempts to perform a 'local normalization' so low density and high density features will be on a more even playing field in an isosurface display. threshold is an isosurface threshold at which all desired features are visible, radius is a feature size over which to equalize.";
7493 d.
put(
"threshold",
EMObject::FLOAT,
"Only values above the threshold will be used to compute the normalization. Generally a good isosurface value.");
7494 d.
put(
"radius",
EMObject::FLOAT,
"Fourier filter radius expressed in pixels in Fourier space. cutoff_pixels in filter.lowpass.gauss");
7526 d.
put(
"maskset",
EMObject::INT,
"One common way to store multiple masks in a single image is to assign a single integer value to each mask. For files of this type, will set values N-0.5<X<N+0.5 to 1, and other values to zero, before applying the mask.");
7532 return "Multiplies the image by the specified filename or image object. Note that 'image' should be specified rather than filename for e2proc2d or e2proc3d, as these programs automatically read image filenames when specified as parameters. So-called multi-level masks are also supported via the 'maskset' option.";
7600 return "Paints a circle with a decaying edge into the image. r<r1 -> v1, r1<r<r2 -> (v1,v2), r>r2 unchanged";
7674 d.
put(
"axis",
EMObject::STRING,
"The direction of the sum, either x,y or z. Returned axes are xy, xz or zy.");
7675 d.
put(
"first",
EMObject::INT,
"The first position along the speficied axis to use in the sum. Neg val -> nx/y/z+first (default=0)");
7676 d.
put(
"last",
EMObject::INT,
"The last position along the speficied axis to use in the sum. Neg val -> nx/y/z+last (default=-1)");
7682 return "Calculates the projection of the image along one of the axial directions, either x, y or z";
7713 return "Watershed segmentation. Warning: uses up to 2.5x the map size in RAM. This will segment all voxels above threshold except for a 1-voxel wide border on all edges.";
7719 d.
put(
"nseg",
EMObject::INT,
"Number of segments to (attempt) to produce. The actual number may be fewer. (default=12)" );
7720 d.
put(
"thr",
EMObject::FLOAT,
"Isosurface threshold value. Pixels below this value will not be segmented. All voxels above this value will be segmented. (default=0.5)");
7721 d.
put(
"segbymerge",
EMObject::INT,
"If set, will achieve the specified number of segments by progressively merging the most connected segments. Can produce very different results." );
7722 d.
put(
"verbose",
EMObject::INT,
"If set, will print console output while running" );
7748 return "This will attempt to mask out a single subunit from a symmetric structure. There may be some ambiguity at the intersection, so the result may not be unambiguous.";
7779 template<
class Type>
7790 if ( with->get_xsize() != image->get_xsize() || with->get_ysize() != image->get_ysize() || with->get_zsize() != image->get_zsize() )
7793 float* image_data = image->get_data();
7794 float* with_data = with->get_data();
7796 std::transform(image_data,image_data+image->get_size(),with_data,image_data,Type::binary_operate);
7802 return op.get_name();
7807 return op.get_desc();
7836 return "Compares pixels in two images, returning an image with the maximum pixel value in each pixel location";
7840 if (left > right)
return left;
7856 return "Compares pixels in two images, returning an image with the minimum pixel value in each pixel location";
7860 if (left < right)
return left;
7881 return "Filters the image so its 1-D power spectrum matches a second image. Optionally can incorporate a dot product to better match noise.";
7892 d.
put(
"to",
EMObject::EMDATA,
"The image to match with. Make sure apix values are correct.");
7893 d.
put(
"bydot",
EMObject::BOOL,
"Rather than matching the intensity profile, uses the complex dot product as a function of resolution to match only the portion that agrees.");
7894 d.
put(
"keephires",
EMObject::BOOL,
"If the reference being matched is heavily filtered, total information loss may occur at some resolutions. This insures that some information is kept at all resolutions.");
7895 d.
put(
"return_radial",
EMObject::BOOL,
"Return the radial filter function as an attribute (filter_curve)");
7896 d.
put(
"interpolate",
EMObject::BOOL,
"Whether or not to interpolate the radial scaling function. Default=true");
7922 return "Filters the image so its 1-D power spectrum matches a supplied S,Y curve. If the S axis does not extend to Nyquist, only a uniform scaling will be applied beyond the end of the supplied curve. ";
7933 d.
put(
"strucfac",
EMObject::XYDATA,
"An XYData object contaning the intensity (not amplitude) to be imposed as a function of S");
7934 d.
put(
"filename",
EMObject::STRING,
"Filename of a text file containing s,y data as an alternative to passing an XYData object.");
7935 d.
put(
"scale",
EMObject::XYDATA,
"A constant to multiply strucfac by to rescale the output. Setting to 1/ny^3 provides an alternative normalization. default = 1.0");
7936 d.
put(
"apix",
EMObject::FLOAT,
" Override A/pix in the image header (changes x,y and z)");
7963 return "Forces a map/image to have an isotropic radial power distribution. Unlike filter.setstrucfac, which produces a filtered, but anisotropic map, this forces the radial power to be the same in all directions. Phases are unchanged.";
7974 d.
put(
"strucfac",
EMObject::XYDATA,
"An XYData object contaning the intensity (not amplitude) to be imposed as a function of S");
7975 d.
put(
"apix",
EMObject::FLOAT,
" Override A/pix in the image header (changes x,y and z)");
8003 return "Smart mask processor.";
8032 return "Iterative expansion of a binary mask, val1 is number of pixels to expand, if val2!=0 will make a soft Gaussian edge starting after val2 pixels.";
8044 d.
put(
"val2",
EMObject::FLOAT,
"number of Gaussian pixels to expand, following the first expansion");
8058 return "Base class for a group of 'processors' used to create test image.";
8086 return "Replace a source image as a strict Gaussian ";
8097 d.
put(
"x_sigma",
EMObject::FLOAT,
"sigma value for this Gaussian blob on x direction");
8098 d.
put(
"y_sigma",
EMObject::FLOAT,
"sigma value for this Gaussian blob on y direction");
8099 d.
put(
"z_sigma",
EMObject::FLOAT,
"sigma value for this Gaussian blob on z direction");
8124 return "Replace a source image with pink Fourier noise, based on a Gaussian. Random phase.";
8158 return "Replace a source image with a single radial Fourier band with a (truncated) Gaussian profile. f(s)=exp(-(s-c/w)^2). width=sqrt(2) is the minimum width to produce a flat sum with a spacing of 1 pixel.";
8170 d.
put(
"width",
EMObject::FLOAT,
"1/2e width of Gaussian in Fourier pixels. default = sqrt(2)");
8194 return "Replace a source image with Fourier noise using amplitude information that is stored in a profile.";
8205 d.
put(
"profile",
EMObject::FLOATARRAY,
"The noise profile, squared amplitude. As in, what is the EMAN2CTF.background attribute");
8229 return "Weight the amplitudes of an image based on radial noise and snr curves ";
8240 d.
put(
"noise",
EMObject::FLOATARRAY,
"The noise profile, squared amplitude. As in, what is the EMAN2CTF.background attribute");
8241 d.
put(
"snr",
EMObject::FLOATARRAY,
"Squared amplitude divided by squared noise amplitude. As in, what is the EMAN2CTF.snr attribute");
8267 return "Insert an oscillating sine wave into the pixel data";
8278 d.
put(
"period",
EMObject::FLOAT,
"The period of the oscillating sine wave. Default 10.");
8308 return "Make an image consisting various objects, useful for tomographic testing";
8343 return "Make a gradient image of the form y=mx+b, where x is any of the image axes.";
8354 d.
put(
"axis",
EMObject::STRING,
"The axis the will be used to determine pixel values. Must be x,y or z");
8386 return "Make an image consisting of a single cross";
8422 return "Replace a source image as a Gaussian Blob";
8456 return "Replace a source image with a lumpy S-curve used for alignment testing";
8492 return "Replace a source image in 2d or 3d with a spherical wave cos(2*pi*r/wavelength+phase) also 1/r (2d) or 1/r^2 (3d)";
8535 return "Replace a source image as a sine wave in specified wave length";
8546 d.
put(
"wavelength",
EMObject::FLOAT,
"wavelength in equation sin(x*2*PI/wavelength - phase*180/PI)");
8547 d.
put(
"axis",
EMObject::STRING,
"(optional) specify a major axis for asymmetric features, default x axis");
8549 d.
put(
"az",
EMObject::FLOAT,
"(optional) angle in degree. for 2D image, this is the rotated angle of the image, \
8550 in 3D image, it's az for euler angle. default is zero");
8551 d.
put(
"alt",
EMObject::FLOAT,
"(optional) angle in degree. only in 3D case, alt for euler angle, default is zero");
8552 d.
put(
"phi",
EMObject::FLOAT,
"(optional) angle in degree. only in 3D case, phi for euler angle, default is zero");
8577 return "Replace a source image as a circular sine wave in specified wave length";
8588 d.
put(
"wavelength",
EMObject::FLOAT,
"(required)this value is the d in function |sin(x/d)|, unit: pixel");
8616 return "Replace a source image as a square or cube depends on 2D or 3D of the source image";
8627 d.
put(
"edge_length",
EMObject::FLOAT,
"edge length of the square or cube, unit: pixel");
8630 d.
put(
"fill",
EMObject::INT,
"Flag indicating if image is filled, default filled, 1 for filled, 0 for blank");
8656 return "Insert an ellipse into the image.";
8669 d.
put(
"c",
EMObject::FLOAT,
"polar radius for ellipsoid (x^2/a^2+y^2/b^2+z^2/c^2=1)");
8701 return "Insert a hollow ellipse into the image.";
8718 d.
put(
"width",
EMObject::FLOAT,
"width - specify the width or specify each width explicitly - xwidth, ywidth, zwidth");
8720 d.
put(
"fill",
EMObject::FLOAT,
"value you want to fill in hollow ellipse, default to 1.0");
8745 return "Replace a source image as a circle or sphere depends on 2D or 3D of the source image";
8759 d.
put(
"fill",
EMObject::INT,
"Flag indicating if image is filled, default filled, 1 for filled, 0 for blank.");
8782 return "Replace a source image as a uniform random noise, random number generated from gsl_rng_mt19937, the pixel value is [0, 1)";
8822 return "Replace a source image as a random noise, the random value is gaussian distributed";
8833 d.
put(
"sigma",
EMObject::FLOAT,
"sigma value of gausian distributed noise, default is 0.5");
8834 d.
put(
"mean",
EMObject::FLOAT,
"mean value of gausian distributed noise, default is zero.");
8835 d.
put(
"seed",
EMObject::INT,
"the seed for random number generator, default is not to reseed.");
8859 return "Replace a source image as a cylinder";
8896 return "Replace source image with a disc";
8938 return "normalize the 4 quadrants of a CCD image";
8944 d.
put(
"width",
EMObject::INT,
"number of pixels on either side of the seam to sample");
8977 d.
put(
"dir",
EMObject::INT,
"1 for forward transform, -1 for inverse transform");
8978 d.
put(
"ord",
EMObject::INT,
"Daubechies (4,6,8,...,20), for Harr (2), for B-Splines (103, 105, 202, 204, 206, 208, 301, 303, 305 307, 309)");
8984 return "Computes the DWT (discrete wavelet transform) of an image in one of 3 possible bases";
9023 d.
put(
"biedgemean",
EMObject::BOOL,
"Mutually exclusive of edgemean. Experimental. Causes the pixels in the masked out areas to take the average value of both the left and right edge pixel strips");
9024 d.
put(
"edgemean",
EMObject::BOOL,
"Mutually exclusive of biedgemean. Masked pixels values assume the mean edge pixel value, independently, for both sides of the image.");
9025 d.
put(
"angle",
EMObject::INT,
"The angle that the image is, with respect to the zero tilt image");
9026 d.
put(
"gauss_falloff",
EMObject::INT,
"Causes the edge masking to have a smooth Gaussian fall-off - this parameter specifies how many pixels the fall-off will proceed over. Default is 0.");
9027 d.
put(
"gauss_sigma",
EMObject::FLOAT,
"The sigma of the Gaussian function used to smooth the edge fall-off (functional form is exp(-(pixel distance)^2/sigma^2)");
9028 d.
put(
"angle_fim",
EMObject::BOOL,
"Read fim as 'from image metadata' - this causes the altitude angle stored in by the image object (i.e. as extracted from the header, as currently stored in memory) to be used as the angle. This overrides the angle argument");
9034 return "Masks the part of the image which is not present in the 0-tilt image. Masked areas can be 0 or set to the edgemean (of the nearest or both edges). Masked areas can also have a Gaussian fall-off to make the appearance smooth.";
9088 d.
put(
"angle",
EMObject::INT,
"The angle that the image is, with respect to the zero tilt image");
9089 d.
put(
"angle_fim",
EMObject::BOOL,
"Read fim as 'from image metadata' - this causes the altitude angle stored in by the image object (i.e. as extracted from the header, as currently stored in memory) to be used as the angle. This overrides the angle argument");
9095 return "Weights the image by 1/cos(angle)";
9123 d.
put(
"dir",
EMObject::INT,
"1 for forward transform, -1 for inverse transform");
9129 return "Computes the DFFT (Discrete Fast Fourier Transform) of an image";
9170 return "Multiply a real-space image by a radial function. 1 value / pixel, extending to corner. Missing values -> 0.";
9178 int tsize =
table.size();
9179 float d =
sqrt(dist);
9180 if (d>tsize-1) { *pixel=0.0f;
return; }
9183 float df = d - float(ir);
9221 d.
put(
"nbins",
EMObject::INT,
"The number of bins the pixel values will be compressed into");
9222 d.
put(
"debug",
EMObject::BOOL,
"Outputs debugging information (number of pixels per bin)");
9228 return "Bins pixel values, similar to calculating a histogram. The histogram is comprised of 'nbins' bins, and the value assigned to each pixel in the bin is the midpoint of the bin's upper and lower limits. Defaults to 256 bins";
9260 return "Adds a cylinder with a radial density profile similar to that of an alpha helix.";
9266 d.
put(
"type",
EMObject::INT,
"Radial profile of density method, defaults to 2: 0 = pure Gaussian falloff; 1 = Gaussian falloff + dip, so mean is zero; 2 = polynomial fitting of real helix density");
9267 d.
put(
"length",
EMObject::FLOAT,
"cylinder length in angstroms, defaults to 3 turns (16.2 Angstroms)");
9268 d.
put(
"x0",
EMObject::INT,
"x coordinate in pixels for the midpoint of the cylinder's axis, defaults to center of map");
9269 d.
put(
"y0",
EMObject::INT,
"y coordinate in pixels for the midpoint of the cylinder's axis, defaults to center of map");
9270 d.
put(
"z0",
EMObject::INT,
"z coordinate in pixels for the midpoint of the cylinder's axis, defaults to center of map");
9295 return "Finds the CM of each z-axis slice and applies a polynomial radial profile about it.";
9301 d.
put(
"z0",
EMObject::INT,
"z coordinate in pixels for the midpoint of the cylinder's axis, defaults to center of map");
9325 return "Creates a skeleton of the 3D image by considering whether density is above or below a threshold value.";
9333 d.
put(
"mark_surfaces",
EMObject::BOOL,
"Mark surfaces with a value of 2.0f, whereas curves are 1.0f.");
9355 return "Filters an image with a convolution kernel in real space.";
9383 return "Rotates a Fourier object using a kernel.";
9413 value = dict_values[0];
9419 return "The base class for morphological image processors.";
9460 return "Binarize an image based on the circular average around each pixel in real space.";
9465 d.
put(
"thresh",
EMObject::INT,
"The radius threshold that the circular average of density keep dropping.");
9492 return "Sum of density of each object above threshold. Treats a 3D volume as 2D slices.";
9523 return "Label each object above threshold. Also return the center of each object. Treats a 3D volume as 2D slices.";
9528 d.
put(
"write_centers",
EMObject::BOOL,
"Write the center of each object in the attribute obj_centers.");
9554 return "Thinning a binary map to skelton using the Zhang-Suen thinning algorithm.";
9562 d.
put(
"preserve_value",
EMObject::BOOL,
"The value on the skeleton is the same as the original map.");
9563 d.
put(
"ntimes",
EMObject::INT,
"Number of iterations in the thinning process. Default: -1 (perform thinning until the image is skeltonized");
9586 return "Set a pixel to white when >= N neighbors are white.";
9592 d.
put(
"nmaj",
EMObject::INT,
"Number of neighbors needed to set to white.");
9593 d.
put(
"return_neighbor",
EMObject::BOOL,
"Return number of neighbor for each pixel.");
9605 for (
int i=0; i<n; i++){
9606 if (array[i]>thresh)
9613 *pixel=nb>=nmaj?1:0;
9639 return "Prune branches from the skeleton. Remove a piece when the minimum distance through density from an endpoint to the nearest branch point is shorter than a given value.";
9646 d.
put(
"returnlength",
EMObject::BOOL,
"Return the distance of each white pixel to its nearest branch. Does not do the prunning.");
9647 d.
put(
"maxdist",
EMObject::INT,
"Maximum distance from the endpoint to branchpoint");
9673 return "Grow a skeleton map toward a local direction.";
9679 d.
put(
"radius",
EMObject::INT,
"Half of the box size to determine the local direction.");
9705 return "Calculate the z thickness of each pixel in a binarized 3d image. For each white voxel, use the number of continus white voxels above and below this voxel in z direction as the thickness.";
9743 vector<float> lst =
params[
"colorlst"];
9755 return "Replace the value of each pixel with a value in a given array, i.e. given an array of [3,7,9], pixels with value of 0 will become 3, 1 becomes 7, 2 becomes 9. The input image has to be int, or it will be round down. Values exceed the length of array are set to zero. Designed for labeled image coloring.";
9776 return "Multiply amplitude image. For reconstruction normalization.";
9833 return "Mask with polynomial falloff. k4 x^4 + k3 x^3 + k2 x^2 + k1 x + k0, where x is distance to center divided by nx/2.";
9843 x =
sqrt( pow((xi -
nx/2),2.0f) + pow((yi -
ny/2),2.0f) ) / (
nx/2);
9846 x =
sqrt( pow((xi -
nx/2),2.0f) + pow((yi -
ny/2),2.0f) + pow((zi -
nz/2),2.0f)) / (
nx/2);
9849 (*pixel)*=
k4*pow(
x, 4.0f) +
k3*pow(
x, 3.0f) +
k2*pow(
x, 2.0f) +
k1*
x +
k0;
9858#ifdef SPARX_USING_CUDA
9864 class MPICUDA_kmeans {
9868 int setup(
int extm,
int extN,
int extn,
int extK,
int extn_start);
9869 void append_flat_image(
EMData* im,
int pos);
9870 int init_mem(
int numdev);
9872 int random_ASG(
long int rnd);
9873 vector<int> get_ASG();
9874 vector<int> get_asg();
9876 vector<int> get_NC();
9877 void set_ASG(
const vector <int>& ASG);
9878 void set_NC(
const vector <int>& NC);
9880 void set_T(
float extT);
9883 void set_AVE(
EMData* im,
int pos);
9884 vector<EMData*> get_AVE();
9889 vector<float> compute_ji();
9890 vector<float> compute_criterion(
const vector <float>& Ji);
9918 unsigned short int* h_ASG;
9919 unsigned short int* h_asg;
9961 static const string NAME;
9996 static const string NAME;
Center image using auto convolution with 180 degree rotation.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual string get_name() const
Get the processor's name.
virtual string get_desc() const
Get the descrition of this specific processor.
f(x) = x if x <= maxval; f(x) = 0 if x > maxval
string get_name() const
Get the processor's name.
void process_pixel(float *x) const
string get_desc() const
Get the descrition of this specific processor.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
void process_pixel(float *x) const
string get_desc() const
Get the descrition of this specific processor.
string get_name() const
Get the processor's name.
Add additional shells/rings to an existing 1/0 mask image.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual string get_name() const
Get the processor's name.
virtual string get_desc() const
Get the descrition of this specific processor.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual string get_desc() const
Get the descrition of this specific processor.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual float get_sigma(EMData *)
virtual string get_name() const
Get the processor's name.
virtual void process_inplace(EMData *image)
To process an image in-place.
add spectral noise to a complex image
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual string get_name() const
Get the processor's name.
virtual string get_desc() const
Get the descrition of this specific processor.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
Rotate by 180 using pixel swapping, works for 2D only.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
void process_inplace(EMData *image)
To process an image in-place.
string get_name() const
Get the processor's name.
string get_desc() const
Get the descrition of this specific processor.
add sigma noise, multiply image's sigma value to noise
virtual string get_name() const
Get the processor's name.
float get_sigma(EMData *image)
virtual string get_desc() const
Get the descrition of this specific processor.
virtual EMData * process(const EMData *const image)
To proccess an image out-of-place.
virtual string get_name() const
Get the processor's name.
string get_desc() const
Get the descrition of this specific processor.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
Multiplies each Fourier pixel by its amplitude.
void set_params(const Dict &new_params)
Set the processor parameters using a key/value dictionary.
void process_inplace(EMData *image)
To process an image in-place.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_desc() const
Get the descrition of this specific processor.
string get_name() const
Get the processor's name.
string get_name() const
Get the processor's name.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
void process_inplace(EMData *in)
To process an image in-place.
string get_desc() const
Get the descrition of this specific processor.
Applies a symmetry to a 3D model.
virtual string get_desc() const
Get the descrition of this specific processor.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual string get_name() const
Get the processor's name.
virtual EMData * process(const EMData *const image)
To proccess an image out-of-place.
AreaProcessor use pixel values and coordinates of a real-space square area.
void process_inplace(EMData *image)
To process an image in-place.
virtual void create_kernel() const =0
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
void set_params(const Dict &new_params)
Set the processor parameters using a key/value dictionary.
virtual void process_pixel(float *pixel, float, float, float, float *area_matrix) const
string get_desc() const
Get the descrition of this specific processor.
Attempts to automatically mask out the particle, excluding other particles in the box,...
virtual string get_desc() const
Get the descrition of this specific processor.
virtual string get_name() const
Get the processor's name.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual void process_inplace(EMData *image)
To process an image in-place.
Tries to mask out only interesting density.
virtual string get_name() const
Get the processor's name.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual string get_desc() const
Get the descrition of this specific processor.
virtual void process_inplace(EMData *image)
To process an image in-place.
Tries to mask out only interesting density.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual string get_desc() const
Get the descrition of this specific processor.
virtual string get_name() const
Get the processor's name.
Tries to mask out only interesting density.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual string get_name() const
Get the processor's name.
virtual string get_desc() const
Get the descrition of this specific processor.
A "dust removal" filter which will remove above threshold densities smaller than a given size.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual string get_name() const
Get the processor's name.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual string get_desc() const
Get the descrition of this specific processor.
Average along Y and replace with average.
string get_name() const
Get the processor's name.
void process_inplace(EMData *image)
To process an image in-place.
string get_desc() const
Get the descrition of this specific processor.
Zeroes the values on the X=0 and y=0 Fourier axes (except x=y=0)
string get_desc() const
Get the descrition of this specific processor.
void set_params(const Dict &new_params)
Set the processor parameters using a key/value dictionary.
void process_inplace(EMData *image)
To process an image in-place.
string get_name() const
Get the processor's name.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
Similar to FourierProcessor, but enhances or compresses azimuthal contrast rather than the typical ra...
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_name() const
Get the processor's name.
void process_inplace(EMData *image)
To process an image in-place.
string get_desc() const
Get the descrition of this specific processor.
This processor will remove specified bad lines from CCD/DDD images, generally due to faulty lines/row...
virtual string get_name() const
Get the processor's name.
virtual string get_desc() const
Get the descrition of this specific processor.
void process_inplace(EMData *image)
To process an image in-place.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
Try to eliminate beamstop in electron diffraction patterns.
string get_desc() const
Get the descrition of this specific processor.
void process_inplace(EMData *image)
To process an image in-place.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_name() const
Get the processor's name.
Bilateral processing on 2D or 3D volume data.
string get_name() const
Get the processor's name.
string get_desc() const
Get the descrition of this specific processor.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
void process_inplace(EMData *image)
To process an image in-place.
A thresholding processor for Fourier images based on the amplitude component.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual void process_inplace(EMData *image)
virtual string get_name() const
Get the processor's name.
virtual string get_desc() const
Get the descrition of this specific processor.
f(x) = 0 if x < value; f(x) = 1 if x >= value.
void process_pixel(float *x) const
string get_desc() const
Get the descrition of this specific processor.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_name() const
Get the processor's name.
Performs a morphological black hat operation on an image.
virtual EMData * process(const EMData *const image)
To proccess an image out-of-place.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
void process_inplace(EMData *image)
To process an image in-place.
BinaryBlackHatProcessor()
string get_desc() const
Get the descrition of this specific processor.
string get_name() const
Get the processor's name.
Performs a morphological closing operation on an image.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_desc() const
Get the descrition of this specific processor.
void process_inplace(EMData *image)
To process an image in-place.
string get_name() const
Get the processor's name.
virtual EMData * process(const EMData *const image)
To proccess an image out-of-place.
Performs a morphological dilation operation on an image.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_name() const
Get the processor's name.
string get_desc() const
Get the descrition of this specific processor.
BinaryDilationProcessor()
virtual EMData * process(const EMData *const image)
To proccess an image out-of-place.
void process_inplace(EMData *image)
To process an image in-place.
Performs a morphological erosion operation on an image.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_desc() const
Get the descrition of this specific processor.
string get_name() const
Get the processor's name.
void process_inplace(EMData *image)
To process an image in-place.
virtual EMData * process(const EMData *const image)
To proccess an image out-of-place.
Computes an external morphological gradient operation on an image.
string get_name() const
Get the processor's name.
BinaryExternalGradientProcessor()
string get_desc() const
Get the descrition of this specific processor.
virtual EMData * process(const EMData *const image)
To proccess an image out-of-place.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
void process_inplace(EMData *image)
To process an image in-place.
Computes an internal morphological gradient operation on an image.
string get_desc() const
Get the descrition of this specific processor.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_name() const
Get the processor's name.
BinaryInternalGradientProcessor()
void process_inplace(EMData *image)
To process an image in-place.
virtual EMData * process(const EMData *const image)
To proccess an image out-of-place.
Computes the morphological gradient operation on an image.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual EMData * process(const EMData *const image)
To proccess an image out-of-place.
BinaryMorphGradientProcessor()
string get_name() const
Get the processor's name.
string get_desc() const
Get the descrition of this specific processor.
void process_inplace(EMData *image)
To process an image in-place.
Performs a morphological opening operation on an image.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_desc() const
Get the descrition of this specific processor.
virtual EMData * process(const EMData *const image)
To proccess an image out-of-place.
string get_name() const
Get the processor's name.
void process_inplace(EMData *image)
To process an image in-place.
Operates on two images, returning an image containing the maximum/minimum/multiplied pixel (etc,...
virtual string get_desc() const
Get the descrition of this specific processor.
virtual void process_inplace(EMData *image)
virtual string get_name() const
Get the processor's name.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual EMData * process(EMData *image)
string get_desc() const
Get the descrition of this specific processor.
virtual string get_name() const
Get the processor's name.
virtual void process_inplace(EMData *image)
To process an image in-place.
Performs a morphological top hat operation on an image.
virtual EMData * process(const EMData *const image)
To proccess an image out-of-place.
string get_name() const
Get the processor's name.
string get_desc() const
Get the descrition of this specific processor.
void process_inplace(EMData *image)
To process an image in-place.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
This processor computes 2-D slices of the 4-D bispectrum of a 2-D image.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_name() const
Get the processor's name.
virtual EMData * process(const EMData *const image)
To proccess an image out-of-place.
string get_desc() const
Get the descrition of this specific processor.
void process_inplace(EMData *image)
To process an image in-place.
f(x) = 0 if x = 0; f(x) = 1 if x != 0
string get_name() const
Get the processor's name.
string get_desc() const
Get the descrition of this specific processor.
void process_pixel(float *x) const
BooleanShrinkProcessor encapsulates code common to MaxShrinkProcessor and MinShrinkProcessor - the pr...
void process_inplace(EMData *image, Dict ¶ms)
Boolean shrink an image inplace.
EMData * process(const EMData *const image, Dict ¶ms)
Boolean shrink an image, returning the processed image.
peak processor: pixel = max of values surrounding pixel.
void process_pixel(float *pixel, const float *data, int n) const
string get_name() const
Get the processor's name.
string get_desc() const
Get the descrition of this specific processor.
pixel = standard deviation of values surrounding pixel.
void process_pixel(float *pixel, const float *data, int n) const
string get_name() const
Get the processor's name.
string get_desc() const
Get the descrition of this specific processor.
BoxStatProcessor files are a kind of neighborhood processors.
static string get_group_desc()
virtual EMData * process(EMData *image)
virtual void process_inplace(EMData *image)
To process an image in-place.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual void process_pixel(float *pixel, const float *array, int n) const =0
Set a pixel to white when >= N neighbors are white.
virtual string get_name() const
Get the processor's name.
void process_pixel(float *pixel, const float *array, int n) const
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_desc() const
Get the descrition of this specific processor.
Thinning a binary map to skelton using the Zhang-Suen thinning algorithm.
virtual string get_name() const
Get the processor's name.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual EMData * process(const EMData *const image)
To proccess an image out-of-place.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
int process_pixel(float *data, float *array, int step)
string get_desc() const
Get the descrition of this specific processor.
Convert an image containing normalized correlation coefficients to SNR or a Wiener filter value used ...
string get_name() const
Get the processor's name.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
void process_inplace(EMData *image)
To process an image in-place.
string get_desc() const
Get the descrition of this specific processor.
Try to normalize the 4 quadrants of a CCD image.
virtual string get_name() const
Get the processor's name.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual string get_desc() const
Get the descrition of this specific processor.
Processor the images by the estimated SNR in each image.if parameter 'wiener' is 1,...
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual string get_name() const
Get the processor's name.
virtual string get_desc() const
Get the descrition of this specific processor.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual string get_desc() const
Get the descrition of this specific processor.
virtual string get_name() const
Get the processor's name.
virtual void process_inplace(EMData *image)
To process an image in-place.
Binarize an image based on the circular average around each pixel in real space.
string get_desc() const
Get the descrition of this specific processor.
virtual string get_name() const
Get the processor's name.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual EMData * process(const EMData *const image)
To proccess an image out-of-place.
CircularMaskProcessor applies a circular mask to the data.This is the base class for specific circula...
virtual void process_dist_pixel(float *pixel, float dist) const =0
void set_params(const Dict &new_params)
Set the processor parameters using a key/value dictionary.
float inner_radius_square
string get_desc() const
Get the descrition of this specific processor.
void calc_locals(EMData *image)
void process_pixel(float *pixel, int xi, int yi, int zi) const
float outer_radius_square
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
f(x) = maxval if f(x) > maxval; f(x) = minval if f(x) < minval
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_desc() const
Get the descrition of this specific processor.
string get_name() const
Get the processor's name.
void process_inplace(EMData *image)
To process an image in-place.
f(x): if v-r<x<v+r -> v; if x>v+r -> x-r; if x<v-r -> x+r
void process_pixel(float *x) const
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_desc() const
Get the descrition of this specific processor.
string get_name() const
Get the processor's name.
void set_params(const Dict &new_params)
Set the processor parameters using a key/value dictionary.
Each Fourier pixel will be normalized.
string get_desc() const
Get the descrition of this specific processor.
string get_name() const
Get the processor's name.
void process_pixel(float *x) const
The base class for fourier space processor working on individual pixels.
static string get_group_desc()
virtual void process_pixel(float *x) const =0
void process_inplace(EMData *image)
To process an image in-place.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual string get_name() const
Get the processor's name.
virtual EMData * process(const EMData *const image)
To proccess an image out-of-place.
virtual void process_inplace(EMData *image)
To process an image in-place.
string get_desc() const
Get the descrition of this specific processor.
This processor performs fast convolution in Fourier space.
string get_desc() const
Get the descrition of this specific processor.
string get_name() const
Get the processor's name.
void process_inplace(EMData *image)
To process an image in-place.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
CoordinateProcessor applies processing based on a pixel's value and it coordinates.
static string get_group_desc()
virtual void calc_locals(EMData *)
virtual bool is_valid() const
void process_inplace(EMData *image)
To process an image in-place.
virtual void process_pixel(float *pixel, int xi, int yi, int zi) const =0
CTF simulation processor.
string get_name() const
Get the processor's name.
virtual EMData * process(const EMData *const image)
To proccess an image out-of-place.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_desc() const
Get the descrition of this specific processor.
void process_inplace(EMData *image)
To process an image in-place.
Ctf is the base class for all CTF model.
f(x) = x-minval if x >= minval; f(x) = 0 if x < minval
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_name() const
Get the processor's name.
void process_pixel(float *x) const
string get_desc() const
Get the descrition of this specific processor.
Block processor, val1 is dx/dy, val2 is lp freq cutoff in pixels.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
void process_inplace(EMData *image)
To process an image in-place.
string get_name() const
Get the processor's name.
string get_desc() const
Get the descrition of this specific processor.
Decay edges of image to zero.
void process_inplace(EMData *image)
To process an image in-place.
string get_desc() const
Get the descrition of this specific processor.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_name() const
Get the processor's name.
Dict is a dictionary to store <string, EMObject> pair.
vector< EMObject > values() const
Get a vector containing copies of each of the EMObjects in this dictionary.
size_t size() const
Ask the Dictionary for its size.
type set_default(const string &key, type val)
Default setting behavior This can be achieved using a template - d.woolford Jan 2008 (before there wa...
bool has_key(const string &key) const
Ask the Dictionary if it as a particular key.
EMObject get(const string &key) const
Get the EMObject corresponding to the particular key Probably better to just use operator[].
averages over cal_half_width, then sets the value in a local block
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
void process_inplace(EMData *image)
To process an image in-place.
string get_desc() const
Get the descrition of this specific processor.
string get_name() const
Get the processor's name.
Does a projection in one the axial directions Doesn't support process_inplace (because the output has...
virtual EMData * process(const EMData *const image)
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual string get_name() const
Get the processor's name.
virtual void process_inplace(EMData *)
string get_desc() const
Get the descrition of this specific processor.
string get_name() const
Get the processor's name.
string get_desc() const
Get the descrition of this specific processor.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
void set_params(const Dict &new_params)
Set the processor parameters using a key/value dictionary.
void process_pixel(float *x) const
Segment a volume about:homeinto subvolumes based on a center separation value.
string get_desc() const
Get the descrition of this specific processor.
void process_inplace(EMData *image)
To process an image in-place.
string get_name() const
Get the processor's name.
virtual EMData * process(const EMData *const image)
To proccess an image out-of-place.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
processor radial function: f(x) = 1/sqrt(2*pi)*[1/sigma1*exp-(x^2/2*sigma1^2) - 1/sigma2*exp-(x^2/2*s...
string get_desc() const
Get the descrition of this specific processor.
void set_params(const Dict &new_params)
Set the processor parameters using a key/value dictionary.
void create_radial_func(vector< float > &radial_mask) const
string get_name() const
Get the processor's name.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
EMData stores an image's data and defines core image processing routines.
This processor filters an image to improve the visibility of particles.
string get_desc() const
Get the descrition of this specific processor.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual EMData * process(const EMData *const image)
To proccess an image out-of-place.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_name() const
Get the processor's name.
f(x) = exp( x / low - high)
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
void process_pixel(float *x) const
'40' is used to avoid floating number overflow.
string get_name() const
Get the processor's name.
void set_params(const Dict &new_params)
Set the processor parameters using a key/value dictionary.
string get_desc() const
Get the descrition of this specific processor.
Mask out (or in) peaks in Fourier space based on the average amplitude at each spatial frequency.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_name() const
Get the processor's name.
string get_desc() const
Get the descrition of this specific processor.
void process_inplace(EMData *image)
To process an image in-place.
Mask out (or in) peaks in Fourier space based on the average amplitude at each spatial frequency.
string get_desc() const
Get the descrition of this specific processor.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
void process_inplace(EMData *image)
To process an image in-place.
string get_name() const
Get the processor's name.
Perform a FFT transform by calling EMData::do_fft() and EMData::do_ift()
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_desc() const
Get the descrition of this specific processor.
void process_inplace(EMData *image)
To process an image in-place.
string get_name() const
Get the processor's name.
FFTResampleProcessor resamples an image by clipping the Fourier Transform This is the same as multipy...
void fft_resample(EMData *to, const EMData *const from, const float &sample_rate)
An internal function that encapsulates a routine common to both process and process inplace.
virtual EMData * process(const EMData *const image)
To proccess an image out-of-place.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_name() const
Get the processor's name.
virtual void process_inplace(EMData *image)
To process an image in-place.
string get_desc() const
Get the descrition of this specific processor.
Mask out (or in) peaks in Fourier space based on the average amplitude at each spatial frequency.
void process_inplace(EMData *image)
To process an image in-place.
string get_name() const
Get the processor's name.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_desc() const
Get the descrition of this specific processor.
This processor will apply a Wiener filter to a volume based on a provided FSC curve.
virtual string get_name() const
Get the processor's name.
virtual EMData * process(EMData const *image)
To proccess an image out-of-place.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual string get_desc() const
Get the descrition of this specific processor.
virtual void process_inplace(EMData *image)
To process an image in-place.
Factory is used to store objects to create new instances.
A fourier processor specified in a 2 column text file.
virtual string get_desc() const
Get the descrition of this specific processor.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual string get_name() const
Get the processor's name.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
f(x) = f(x) if f(x) is finite | to if f(x) is not finite
void process_pixel(float *x) const
void set_params(const Dict &new_params)
Set the processor parameters using a key/value dictionary.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_desc() const
Get the descrition of this specific processor.
string get_name() const
Get the processor's name.
This processor can be used to correct errors when reading signed data as unsigned and vice-versa.
string get_desc() const
Get the descrition of this specific processor.
string get_name() const
Get the processor's name.
void set_params(const Dict &new_params)
Set the processor parameters using a key/value dictionary.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
void process_pixel(float *x) const
Flattens the background by subtracting the local mean.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_desc() const
Get the descrition of this specific processor.
void process_inplace(EMData *image)
To process an image in-place.
string get_name() const
Get the processor's name.
flip/mirror an image around an axis
virtual string get_desc() const
Get the descrition of this specific processor.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual string get_name() const
Get the processor's name.
string get_name() const
Get the processor's name.
string get_desc() const
Get the descrition of this specific processor.
void process_pixel(float *x) const
Same as FourierProcessor, except first computes the current image radial power spectrum and passes it...
virtual void preprocess(EMData *)
virtual void create_radial_func(vector< float > &radial_mask, EMData *image) const =0
static string get_group_desc()
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
void process_inplace(EMData *image)
To process an image in-place.
base class for Fourier filters
virtual void preprocess(EMData *image)
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual void create_radial_func(vector< float > &radial_mask) const =0
void process_inplace(EMData *image)
To process an image in-place.
static string get_group_desc()
Translates the origin in Fourier space from the corner to the center in y and z Handles 2D and 3D,...
virtual void process_inplace(EMData *image)
Fourier origin shift the image in the forward direction.
virtual string get_desc() const
Get the descrition of this specific processor.
virtual string get_name() const
Get the processor's name.
Undo the effects of the FourierToCenterProcessor.
virtual void process_inplace(EMData *image)
Fourier origin shift the image in the backwards direction Should only be called after the application...
virtual string get_desc() const
Get the descrition of this specific processor.
virtual string get_name() const
Get the processor's name.
Segment a volume by sequentially finding the highest peak and subtracting a Gaussian at that point fr...
void process_inplace(EMData *image)
To process an image in-place.
string get_desc() const
Get the descrition of this specific processor.
string get_name() const
Get the processor's name.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual EMData * process(const EMData *const image)
To proccess an image out-of-place.
Zeroes the values on the X=0 and y=0 Fourier axes (except x=y=0)
string get_name() const
Get the processor's name.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_desc() const
Get the descrition of this specific processor.
void process_inplace(EMData *image)
To process an image in-place.
void set_params(const Dict &new_params)
Set the processor parameters using a key/value dictionary.
Determines the direction of an approximate image gradient using David's image gradient processors.
string get_desc() const
Get the descrition of this specific processor.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
void process_inplace(EMData *image)
To process an image in-place.
GradientDirectionProcessor()
string get_name() const
Get the processor's name.
Determines the magnitude of an approximate image gradient using David's image gradient processors.
string get_desc() const
Get the descrition of this specific processor.
GradientMagnitudeProcessor()
void process_inplace(EMData *image)
To process an image in-place.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_name() const
Get the processor's name.
Gradient removed by least square plane fit.
string get_name() const
Get the processor's name.
void process_inplace(EMData *image)
To process an image in-place.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_desc() const
Get the descrition of this specific processor.
Gradient remover, does a rough plane fit to find linear gradients.
string get_desc() const
Get the descrition of this specific processor.
string get_name() const
Get the processor's name.
void process_inplace(EMData *image)
To process an image in-place.
Multiplies image by a 'linear pyramid' 1-(|x-xsize/2|*|y-ysize/2|*4/(xsize*ysize)) This is useful in ...
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_desc() const
Get the descrition of this specific processor.
string get_name() const
Get the processor's name.
void process_inplace(EMData *image)
To process an image in-place.
Grow a skeleton map toward a local direction.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_desc() const
Get the descrition of this specific processor.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual string get_name() const
Get the processor's name.
virtual EMData * process(const EMData *const image)
To proccess an image out-of-place.
This processor computes what I've dubbed the 'harmonic power spectrum'.
virtual EMData * process(const EMData *const image)
To proccess an image out-of-place.
string get_name() const
Get the processor's name.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_desc() const
Get the descrition of this specific processor.
void process_inplace(EMData *image)
To process an image in-place.
This processor attempts to remove the low resolution peak present in all cryoEM data.
string get_desc() const
Get the descrition of this specific processor.
void create_radial_func(vector< float > &radial_mask, EMData *image) const
string get_name() const
Get the processor's name.
virtual void preprocess(EMData *image)
Bins pixel values, similar to calculating a histogram.
string get_name() const
Get the processor's name.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
void process_inplace(EMData *image)
To process an image in-place.
string get_desc() const
Get the descrition of this specific processor.
Computes the image divergence using David's partial derivative processors.
ImageDivergenceProcessor()
string get_name() const
Get the processor's name.
string get_desc() const
Get the descrition of this specific processor.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
void process_inplace(EMData *image)
To process an image in-place.
void process_inplace(EMData *image)
To process an image in-place.
static string get_group_desc()
virtual EMData * create_processor_image() const =0
Multiplies the image by the specified file using pixel indices.
virtual string get_name() const
Get the processor's name.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual string get_desc() const
Get the descrition of this specific processor.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
Translate the image an integer amount Uses EMData::clip_inplace (inplace) and EMData::get_clip (out o...
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
void assert_valid_aspect(const vector< int > &translation, const EMData *const image) const
Check that the particular aspect is valid.
virtual EMData * process(const EMData *const image)
virtual void process_inplace(EMData *image)
virtual string get_name() const
Get the processor's name.
Region get_clip_region(vector< int > &translation, const EMData *const image) const
Get the clip region that will achieve the desired translation.
virtual string get_desc() const
Get the descrition of this specific processor.
Iterative expansion of a binary mask, val1 is number of pixels to expand, if val2!...
virtual string get_desc() const
Get the descrition of this specific processor.
virtual string get_name() const
Get the processor's name.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
This expands a multilevel mask volume so inter-mask boundaries are preserved.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual string get_name() const
Get the processor's name.
virtual string get_desc() const
Get the descrition of this specific processor.
Segment a volume into ~n subvolumes using K-means classification.
string get_desc() const
Get the descrition of this specific processor.
string get_name() const
Get the processor's name.
void process_inplace(EMData *image)
To process an image in-place.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual EMData * process(const EMData *const image)
To proccess an image out-of-place.
Determines the direction of an approximate image laplacian using David's image gradient processors.
void process_inplace(EMData *image)
To process an image in-place.
string get_desc() const
Get the descrition of this specific processor.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
LaplacianDirectionProcessor()
string get_name() const
Get the processor's name.
Determines the direction of an approximate image laplacian using David's image gradient processors.
string get_name() const
Get the processor's name.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
LaplacianMagnitudeProcessor()
void process_inplace(EMData *image)
To process an image in-place.
string get_desc() const
Get the descrition of this specific processor.
Discrete approximation to Laplacian.
void create_kernel() const
string get_name() const
Get the processor's name.
string get_desc() const
Get the descrition of this specific processor.
void process_inplace(EMData *image)
To process an image in-place.
Multiplies image by a 'linear pyramid' 1-(|x-xsize/2|*|y-ysize/2|*4/(xsize*ysize)) This is useful in ...
string get_desc() const
Get the descrition of this specific processor.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_name() const
Get the processor's name.
void process_inplace(EMData *image)
To process an image in-place.
virtual string get_desc() const
Get the descrition of this specific processor.
virtual string get_name() const
Get the processor's name.
virtual void create_radial_func(vector< float > &radial_mask) const
processor radial function: f(x) = slope * x + intercept
void set_params(const Dict &new_params)
Set the processor parameters using a key/value dictionary.
string get_desc() const
Get the descrition of this specific processor.
void create_radial_func(vector< float > &radial_mask) const
string get_name() const
Get the processor's name.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
processor radial function: f(x) = ((x^2 - s^2)/s^4)e^-(x^2/2s^2)
string get_desc() const
Get the descrition of this specific processor.
string get_name() const
Get the processor's name.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
void set_params(const Dict &new_params)
Set the processor parameters using a key/value dictionary.
void create_radial_func(vector< float > &radial_mask) const
string get_name() const
Get the processor's name.
string get_desc() const
Get the descrition of this specific processor.
void process_pixel(float *pixel, const float *data, int n) const
This processor attempts to perform a 'local normalization' so low density and high density features w...
void process_inplace(EMData *image)
To process an image in-place.
virtual string get_name() const
Get the processor's name.
virtual string get_desc() const
Get the descrition of this specific processor.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
f(x) = log10(x) if x > 0; else f(x) = 0
string get_desc() const
Get the descrition of this specific processor.
string get_name() const
Get the processor's name.
void process_pixel(float *x) const
processor radial function: if lowpass > 0, f(x) = exp(-x*x/(lowpass*lowpass)); else f(x) = exp(x*x/(l...
virtual void preprocess(EMData *image)
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
void create_radial_func(vector< float > &radial_mask, EMData *image) const
string get_name() const
Get the processor's name.
string get_desc() const
Get the descrition of this specific processor.
Lowpass Phase Randomization processor applied in Fourier space.
string get_name() const
Get the processor's name.
void create_radial_func(vector< float > &radial_mask) const
void process_inplace(EMData *image)
To process an image in-place.
string get_desc() const
Get the descrition of this specific processor.
overwrites input, f(x) = radius
string get_desc() const
Get the descrition of this specific processor.
void process_dist_pixel(float *pixel, float dist) const
string get_name() const
Get the processor's name.
overwrites input, f(x) = radius * radius
string get_desc() const
Get the descrition of this specific processor.
string get_name() const
Get the processor's name.
void process_dist_pixel(float *pixel, float dist) const
Sets pixel values in a binary image equal to their element wise manhattan distance.
void process_inplace(EMData *image)
To process an image in-place.
string get_name() const
Get the processor's name.
virtual EMData * process(const EMData *const image)
To proccess an image out-of-place.
ManhattanDistanceProcessor()
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_desc() const
Get the descrition of this specific processor.
MaskAzProcessor masks out pixels within a specified cylindrical (or circular) arc.
string get_name() const
Get the processor's name.
void process_inplace(EMData *image)
To process an image in-place.
string get_desc() const
Get the descrition of this specific processor.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
A step cutoff to the the mean value in a ring centered on the outer radius.
string get_name() const
Get the processor's name.
void calc_locals(EMData *image)
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
void set_params(const Dict &new_params)
Set the processor parameters using a key/value dictionary.
void process_dist_pixel(float *pixel, float dist) const
string get_desc() const
Get the descrition of this specific processor.
f(x) = f(x) / exp(-radius*radius * gauss_width / (ny*ny))
void calc_locals(EMData *)
string get_name() const
Get the processor's name.
string get_desc() const
Get the descrition of this specific processor.
void process_dist_pixel(float *pixel, float dist) const
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
a gaussian falloff to zero, radius is the 1/e of the width.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
void process_dist_pixel(float *pixel, float dist) const
string get_name() const
Get the processor's name.
string get_desc() const
Get the descrition of this specific processor.
void set_params(const Dict &new_params)
Set the processor parameters using a key/value dictionary.
void process_dist_pixel(float *pixel, float dist) const
string get_desc() const
Get the descrition of this specific processor.
string get_name() const
Get the processor's name.
This processor will take a mask and extract the values inside the mask as a new 1-D image as well as ...
string get_desc() const
Get the descrition of this specific processor.
string get_name() const
Get the processor's name.
void process_inplace(EMData *image)
To process an image in-place.
virtual EMData * process(const EMData *const image)
To proccess an image out-of-place.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
step cutoff to a user-given value in both inner and outer circles.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
void process_dist_pixel(float *pixel, float dist) const
void set_params(const Dict &new_params)
Set the processor parameters using a key/value dictionary.
string get_desc() const
Get the descrition of this specific processor.
string get_name() const
Get the processor's name.
step cutoff to a user-given value in both inner and outer circles.
void process_dist_pixel(float *pixel, float dist) const
string get_desc() const
Get the descrition of this specific processor.
void set_params(const Dict &new_params)
Set the processor parameters using a key/value dictionary.
string get_name() const
Get the processor's name.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
Sets the structure factor To match a second provided image/volume.
virtual string get_desc() const
Get the descrition of this specific processor.
virtual string get_name() const
Get the processor's name.
void create_radial_func(vector< float > &radial_mask, EMData *image) const
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
static float binary_operate(const float &left, const float &right)
MaxShrinkProcessors shrinks an image by in an integer amount, keeping the maximum pixel value - usefu...
string get_desc() const
Get the descrition of this specific processor.
virtual EMData * process(const EMData *const image)
The max shrink processor has its own process function to minise memory usage - if this function was n...
virtual void process_inplace(EMData *image)
To process an image in-place.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_name() const
Get the processor's name.
MeanShrinkProcessor shrinks an image by in an integer amount (and optionally by 1....
virtual string get_name() const
Get the processor's name.
void accrue_mean_one_p_five(EMData *to, const EMData *const from)
Accrue the local mean in the image 'from' to the image 'to' using the the special case shrink factor ...
virtual void process_inplace(EMData *image)
Mean shrink inplace.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_desc() const
Get the descrition of this specific processor.
virtual EMData * process(const EMData *const image)
The meanshrink processor has its own process function to minise memory usage - if this function was n...
void accrue_mean(EMData *to, const EMData *const from, const int shrinkfactor)
Accrue the local mean in the image 'from' to the image 'to' using the given shrinkfactor An internal ...
Fill zeroes at edges with nearest horizontal/vertical value damped towards Mean2.
void process_inplace(EMData *image)
To process an image in-place.
string get_desc() const
Get the descrition of this specific processor.
string get_name() const
Get the processor's name.
static float binary_operate(const float &left, const float &right)
MinShrinkProcessor shrinks an image by in an integer amount, keeping the minimum pixel value - useful...
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_desc() const
Get the descrition of this specific processor.
string get_name() const
Get the processor's name.
virtual EMData * process(const EMData *const image)
The min shrink processor has its own process function to minise memory usage - if this function was n...
virtual void process_inplace(EMData *image)
To process an image in-place.
peak processor: pixel = pixel - max of values surrounding pixel.
void process_pixel(float *pixel, const float *data, int n) const
string get_desc() const
Get the descrition of this specific processor.
string get_name() const
Get the processor's name.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_desc() const
Get the descrition of this specific processor.
void process_inplace(EMData *in)
To process an image in-place.
string get_name() const
Get the processor's name.
float radprofile(float r, int type)
virtual void normalize(EMData *) const
void process_inplace(EMData *image)
To process an image in-place.
static string get_group_desc()
virtual void set_params(const Dict &new_params)
Set the processor parameters using a key/value dictionary.
virtual void calc_locals(EMData *)
virtual void process_pixel(float *x) const =0
This function clamps the min and max vals in the image at minval and maxval at mean-n*sigma and mean+...
NSigmaClampingProcessor()
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
void process_inplace(EMData *image)
To process an image in-place.
string get_name() const
Get the processor's name.
string get_desc() const
Get the descrition of this specific processor.
Make a curve or surface non-convex (planar or concave), iteratively.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
void process_inplace(EMData *image)
To process an image in-place.
string get_desc() const
Get the descrition of this specific processor.
string get_name() const
Get the processor's name.
Normalize the mass of the image assuming a density of 1.35 g/ml (0.81 Da/A^3).
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_name() const
Get the processor's name.
string get_desc() const
Get the descrition of this specific processor.
void process_inplace(EMData *image)
To process an image in-place.
normalizes an image, mean value equals to mean of 2 pixel circular border.
float calc_mean(EMData *image) const
string get_name() const
Get the processor's name.
string get_desc() const
Get the descrition of this specific processor.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
normalizes an image, mean value equals to edge mean.
string get_desc() const
Get the descrition of this specific processor.
float calc_mean(EMData *image) const
string get_name() const
Get the processor's name.
Normalize such that the estimated histogram peak value is zero.
string get_desc() const
Get the descrition of this specific processor.
string get_name() const
Get the processor's name.
float calc_mean(EMData *image) const
normalizes an image, uses 2 pixels on left and right edge
string get_name() const
Get the processor's name.
string get_desc() const
Get the descrition of this specific processor.
float calc_mean(EMData *image) const
Uses a 1/0 mask defining a region to use for the zero-normalization.if no_sigma is 1,...
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
void process_inplace(EMData *image)
To process an image in-place.
string get_desc() const
Get the descrition of this specific processor.
string get_name() const
Get the processor's name.
float calc_mean(EMData *image) const
string get_name() const
Get the processor's name.
string get_desc() const
Get the descrition of this specific processor.
float calc_sigma(EMData *image) const
Base class for normalization processors.
virtual float calc_sigma(EMData *image) const
static string get_group_desc()
void process_inplace(EMData *image)
To process an image in-place.
virtual float calc_mean(EMData *image) const =0
Normalize the image whilst also removing any ramps.
string get_desc() const
Get the descrition of this specific processor.
string get_name() const
Get the processor's name.
void process_inplace(EMData *image)
To process an image in-place.
normalizes each row in the image individually
string get_name() const
Get the processor's name.
string get_desc() const
Get the descrition of this specific processor.
void process_inplace(EMData *image)
To process an image in-place.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
do a standard normalization on an image.
float calc_mean(EMData *image) const
string get_desc() const
Get the descrition of this specific processor.
string get_name() const
Get the processor's name.
use least square method to normalize
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
void process_inplace(EMData *image)
To process an image in-place.
string get_name() const
Get the processor's name.
string get_desc() const
Get the descrition of this specific processor.
Normalize an image so its vector length is 1.0.
float calc_mean(EMData *image) const
float calc_sigma(EMData *image) const
string get_name() const
Get the processor's name.
string get_desc() const
Get the descrition of this specific processor.
Normalize an image so its elements sum to 1.0 (fails if mean=0)
string get_desc() const
Get the descrition of this specific processor.
float calc_mean(EMData *image) const
float calc_sigma(EMData *image) const
string get_name() const
Get the processor's name.
Replace the value of each pixel with the sum of density of the object it belongs to.
virtual EMData * process(const EMData *const image)
To proccess an image out-of-place.
virtual void process_inplace(EMData *image)
To process an image in-place.
string get_desc() const
Get the descrition of this specific processor.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual string get_name() const
Get the processor's name.
Label each object in a black-white image.
virtual EMData * process(const EMData *const image)
To proccess an image out-of-place.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual string get_name() const
Get the processor's name.
string get_desc() const
Get the descrition of this specific processor.
This processor will try and remove outliers (and optionally exactly zero values), replacing any ident...
void process_inplace(EMData *image)
To process an image in-place.
string get_desc() const
Get the descrition of this specific processor.
string get_name() const
Get the processor's name.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
Multiplies the image by the specified file using pixel coordinates instead of pixel indices.
virtual string get_name() const
Get the processor's name.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual string get_desc() const
Get the descrition of this specific processor.
virtual void set_params(const Dict &new_params)
Set the processor parameters using a key/value dictionary.
peak processor -> if npeaks or more surrounding values >= value, value->0
void process_pixel(float *pixel, const float *data, int n) const
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_desc() const
Get the descrition of this specific processor.
void set_params(const Dict &new_params)
Set the processor parameters using a key/value dictionary.
string get_name() const
Get the processor's name.
void fourier_phaseshift180(EMData *image)
fourier_phaseshift180 - fourier phase shift by 180 this function is called internally if the argument...
void swap_corners_180(EMData *image)
swap_corners_180 - works on 2D and 3D images
void swap_central_slices_180(EMData *image)
swap_central_slices_180 - works on 2D and 3D images
Translates a cornered image to the center Undoes the PhaseToCornerProcessor.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual string get_desc() const
Get the descrition of this specific processor.
virtual string get_name() const
Get the processor's name.
Translates a centered image to the corner works for 1D, 2D and 3D images, for all combinations of eve...
virtual string get_desc() const
Get the descrition of this specific processor.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual string get_name() const
Get the processor's name.
ToMassCenterProcessor centers image at center of mass, ignores old dx, dy.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual string get_desc() const
Get the descrition of this specific processor.
virtual string get_name() const
Get the processor's name.
void set_params(const Dict &new_params)
Set the processor parameters using a key/value dictionary.
string get_desc() const
Get the descrition of this specific processor.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
void process_pixel(float *pixel, int xi, int yi, int zi) const
string get_name() const
Get the processor's name.
Typical usage of Processors are as follows:
static void EMFourierFilterInPlace(EMData *fimage, Dict params)
Compute a Fourier-filter processed image in place.
static string get_group_desc()
Get the description of this group of processors.
static EMData * EMFourierFilterFunc(EMData *fimage, Dict params, bool doInPlace=true)
Compute a Fourier-filter processed image.
virtual EMData * process(const EMData *const image)
To proccess an image out-of-place.
virtual string get_desc() const =0
Get the descrition of this specific processor.
virtual void process_list_inplace(vector< EMData * > &images)
To process multiple images using the same algorithm.
virtual void set_params(const Dict &new_params)
Set the processor parameters using a key/value dictionary.
virtual Dict get_params() const
Get the processor parameters in a key/value dictionary.
static EMData * EMFourierFilter(EMData *fimage, Dict params)
Compute a Fourier-processor processed image without altering the original image.
fourier_filter_types
Fourier filter Processor type enum.
@ BUTTERWORTH_HOMOMORPHIC
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual void process_inplace(EMData *image)=0
To process an image in-place.
virtual string get_name() const =0
Get the processor's name.
Prune branches from the skeleton.
virtual string get_name() const
Get the processor's name.
virtual void process_inplace(EMData *image)
To process an image in-place.
string get_desc() const
Get the descrition of this specific processor.
virtual EMData * process(const EMData *const image)
To proccess an image out-of-place.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
Perform a multiplication of real image with a radial table.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_desc() const
Get the descrition of this specific processor.
string get_name() const
Get the processor's name.
void set_params(const Dict &new_params)
Set the processor parameters using a key/value dictionary.
void process_dist_pixel(float *pixel, float dist) const
Ramp processor – Fits a least-squares plane to the picture, and subtracts the plane from the picture.
string get_name() const
Get the processor's name.
void process_inplace(EMData *image)
To process an image in-place.
string get_desc() const
Get the descrition of this specific processor.
f(x) = 1 if (low <= x <= high); else f(x) = 0
string get_name() const
Get the processor's name.
void set_params(const Dict &new_params)
Set the processor parameters using a key/value dictionary.
string get_desc() const
Get the descrition of this specific processor.
void process_pixel(float *x) const
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
RangeThresholdProcessor()
Set any values in a range to zero.
virtual void process_inplace(EMData *image)
To process an image in-place.
string get_desc() const
Get the descrition of this specific processor.
string get_name() const
Get the processor's name.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
void set_params(const Dict &new_params)
Set the processor parameters using a key/value dictionary.
The base class for real space processor working on individual pixels.
virtual void normalize(EMData *) const
void process_inplace(EMData *image)
To process an image in-place.
virtual void set_params(const Dict &new_params)
Set the processor parameters using a key/value dictionary.
virtual void calc_locals(EMData *)
virtual void process_pixel(float *x) const =0
static string get_group_desc()
This will replace the image with a full-circle 2D fft amplitude rendering.
string get_desc() const
Get the descrition of this specific processor.
void process_inplace(EMData *image)
To process an image in-place.
string get_name() const
Get the processor's name.
Reciprocal image as if f(x) != 0: f(x) = 1/f(x) else: f(x) = zero_to.
string get_name() const
Get the processor's name.
void set_params(const Dict &new_params)
Set the processor parameters using a key/value dictionary.
void process_pixel(float *x) const
string get_desc() const
Get the descrition of this specific processor.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
Region defines a 2D or 3D rectangular region specified by its origin coordinates and all edges' sizes...
Replace the value of each pixel with a value in a given array.
string get_desc() const
Get the descrition of this specific processor.
void process_pixel(float *x) const
string get_name() const
Get the processor's name.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
mirror an image around an axis (reverse pixels)
virtual string get_desc() const
Get the descrition of this specific processor.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual string get_name() const
Get the processor's name.
Rotate by 180 using pixel swapping, works for 2D only.
string get_name() const
Get the processor's name.
void process_inplace(EMData *image)
string get_desc() const
Get the descrition of this specific processor.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual string get_name() const
Get the processor's name.
virtual EMData * process(const EMData *const image)
To proccess an image out-of-place.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_desc() const
Get the descrition of this specific processor.
makes image circularly symmetric.
void process_inplace(EMData *image)
To process an image in-place.
string get_name() const
Get the processor's name.
string get_desc() const
Get the descrition of this specific processor.
subtracts circularly symmetric part of an image.
virtual string get_desc() const
Get the descrition of this specific processor.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual string get_name() const
Get the processor's name.
Determines the second derivative in the gradient direction using David's image gradient processors.
string get_name() const
Get the processor's name.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_desc() const
Get the descrition of this specific processor.
void process_inplace(EMData *image)
To process an image in-place.
Evaluate individual particle images using a tenchique similar to that used for CTF evaluation.
void process_inplace(EMData *image)
To process an image in-place.
string get_name() const
Get the processor's name.
void set_params(const Dict &new_params)
Set the processor parameters using a key/value dictionary.
string get_desc() const
Get the descrition of this specific processor.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
Processor the images by the estimated SNR in each image.if parameter 'wiener' is 1,...
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual string get_name() const
Get the processor's name.
virtual string get_desc() const
Get the descrition of this specific processor.
This tries to extract a single subunit from a symmetric structure.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual string get_desc() const
Get the descrition of this specific processor.
virtual string get_name() const
Get the processor's name.
string get_desc() const
Get the descrition of this specific processor.
string get_name() const
Get the processor's name.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
void process_inplace(EMData *image)
To process an image in-place.
Makes the radial power distribution spherically symmetric with a profile defined by "strucfac".
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual string get_name() const
Get the processor's name.
void process_inplace(EMData *image)
To process an image in-place.
virtual string get_desc() const
Get the descrition of this specific processor.
Sets the structure factor based on a 1D s/intensity curve as an XYData object.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual string get_name() const
Get the processor's name.
virtual string get_desc() const
Get the descrition of this specific processor.
void create_radial_func(vector< float > &radial_mask, EMData *image) const
f(x) = mean if x<(mean-v2*sigma) or x>(mean+v1*sigma); else f(x) = x;
string get_desc() const
Get the descrition of this specific processor.
void process_pixel(float *x) const
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
void set_params(const Dict &new_params)
Set the processor parameters using a key/value dictionary.
string get_name() const
Get the processor's name.
Fill zeroes at edges with nearest horizontal/vertical value.
string get_name() const
Get the processor's name.
string get_desc() const
Get the descrition of this specific processor.
void process_inplace(EMData *image)
To process an image in-place.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual string get_desc() const
Get the descrition of this specific processor.
virtual string get_name() const
Get the processor's name.
virtual void process_inplace(EMData *image)
To process an image in-place.
This processor will remove localized 'striping' along the x/y axes, caused by issues with CCD/CMOS re...
virtual string get_name() const
Get the processor's name.
void process_inplace(EMData *image)
To process an image in-place.
virtual string get_desc() const
Get the descrition of this specific processor.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_desc() const
Get the descrition of this specific processor.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual EMData * process(const EMData *const image)
To proccess an image out-of-place.
string get_name() const
Get the processor's name.
Identifiy the best symmetry in the given symmetry list for each pixel and then apply the best symmetr...
virtual string get_desc() const
Get the descrition of this specific processor.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual string get_name() const
Get the processor's name.
virtual void process_inplace(EMData *image)
To process an image in-place.
Make an image consisting of a single cross, with lines going in the axial directions,...
virtual string get_desc() const
Get the descrition of this specific processor.
virtual void process_inplace(EMData *image)
Make an image where the axes (where x,y and z=0) are some nono zero value.
virtual string get_name() const
Get the processor's name.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
Replace a source image as a circle or sphere depends on 2D or 3D of the source image.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual string get_name() const
Get the processor's name.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual string get_desc() const
Get the descrition of this specific processor.
Replace a source image with a cylinder.
virtual string get_desc() const
Get the descrition of this specific processor.
virtual string get_name() const
Get the processor's name.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual void process_inplace(EMData *image)
To process an image in-place.
Replace source image with a disc (generalized cylinder)
virtual string get_name() const
Get the processor's name.
virtual string get_desc() const
Get the descrition of this specific processor.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
Generate an ellipse or ellipsoid image.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual string get_name() const
Get the processor's name.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual string get_desc() const
Get the descrition of this specific processor.
Replace a source image with a Gaussian band in Fourier space with a given center and width.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual string get_desc() const
Get the descrition of this specific processor.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual string get_name() const
Get the processor's name.
Replace a source image as a strict Gaussian.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual string get_name() const
Get the processor's name.
virtual string get_desc() const
Get the descrition of this specific processor.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual string get_desc() const
Get the descrition of this specific processor.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual string get_name() const
Get the processor's name.
Replace a source image as a Gaussian Blob.
virtual string get_name() const
Get the processor's name.
virtual string get_desc() const
Get the descrition of this specific processor.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
Put a gradient in the image of the form y = mx+b : "x" is a string indicating any of the image axes,...
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual string get_desc() const
Get the descrition of this specific processor.
virtual string get_name() const
Get the processor's name.
Generate an ellipse/ellipsoid image with an inner hollow ellipse/ellipsoid.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual string get_name() const
Get the processor's name.
virtual string get_desc() const
Get the descrition of this specific processor.
Treats the pixels as though they are 1D (even if the image is 2D or 3D), inserting a sine wave of pix...
virtual string get_desc() const
Get the descrition of this specific processor.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual string get_name() const
Get the processor's name.
Replace a source image with gaussian distributed random noise If you don't provide a seed at all,...
virtual string get_desc() const
Get the descrition of this specific processor.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual string get_name() const
Get the processor's name.
virtual void process_inplace(EMData *image)
To process an image in-place.
Base class for a group of 'processor' used to create test image.
void preprocess(EMData *image)
static string get_group_desc()
Replace a source image as a strict Gaussian.
virtual string get_desc() const
Get the descrition of this specific processor.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual string get_name() const
Get the processor's name.
Replace a source image with a lumpy S-curve used for alignment testing.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual string get_name() const
Get the processor's name.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual string get_desc() const
Get the descrition of this specific processor.
Replace a source image as a circular sine wave in specified wave length.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual string get_desc() const
Get the descrition of this specific processor.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual string get_name() const
Get the processor's name.
Replace a source image as a sine wave in specified wave length.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual string get_desc() const
Get the descrition of this specific processor.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual string get_name() const
Get the processor's name.
Replace a source image as a sine wave in specified wave length.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual string get_desc() const
Get the descrition of this specific processor.
virtual string get_name() const
Get the processor's name.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
Replace a source image as a square or cube depends on 2D or 3D of the source image.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual string get_desc() const
Get the descrition of this specific processor.
virtual string get_name() const
Get the processor's name.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
Make an image useful for tomographic reconstruction testing this is a 3D phantom image based on the 2...
virtual void process_inplace(EMData *image)
Make a useful tomographic phantom image.
virtual string get_name() const
Get the processor's name.
void insert_solid_ellipse(EMData *image, const Region ®ion, const float &value, const Transform &t3d=Transform())
void insert_rectangle(EMData *image, const Region ®ion, const float &value, const Transform &t3d=Transform())
virtual string get_desc() const
Get the descrition of this specific processor.
void insert_hollow_ellipse(EMData *image, const Region ®ion, const float &value, const int &radius, const Transform &t3d=Transform())
ToCenterProcessor centers image, ignores old dx, dy.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual string get_desc() const
Get the descrition of this specific processor.
virtual string get_name() const
Get the processor's name.
ToMassCenterProcessor centers image at center of mass, ignores old dx, dy.
virtual string get_desc() const
Get the descrition of this specific processor.
virtual string get_name() const
Get the processor's name.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
f(x) = x if x >= minval; f(x) = minval if x < minval
void process_inplace(EMData *image)
To process an image in-place.
string get_name() const
Get the processor's name.
string get_desc() const
Get the descrition of this specific processor.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
f(x) = x if x >= minval; f(x) = 0 if x < minval
string get_name() const
Get the processor's name.
void process_pixel(float *x) const
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_desc() const
Get the descrition of this specific processor.
A processor that can be used to weight an image by 1/cos(angle) This processor evolved originally as ...
virtual string get_name() const
Get the processor's name.
virtual string get_desc() const
Get the descrition of this specific processor.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
float operator()(const float distance)
GaussianFunctoid(const float sigma, const float mean=0.0)
A processor designed specifically for tomographic tilt series data.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual string get_desc() const
Get the descrition of this specific processor.
virtual string get_name() const
Get the processor's name.
virtual EMData * process(const EMData *const image)
See Processor comments for more details.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual string get_desc() const
Get the descrition of this specific processor.
virtual void process_inplace(EMData *image)
See Processor comments for more details.
virtual string get_name() const
Get the processor's name.
TypeDict is a dictionary to store <string, EMObject::ObjectType> pair.
void put(const string &key, EMObject::ObjectType o, const string &desc="")
static int fast_floor(float x)
A fast way to calculate a floor, which is largest integral value not greater than argument.
static float get_gauss_rand(float mean, float sigma)
Get a Gaussian random number.
Do a math power operation on image, f(x) = x ^ pow;.
string get_desc() const
Get the descrition of this specific processor.
void set_params(const Dict &new_params)
Set the processor parameters using a key/value dictionary.
void process_pixel(float *x) const
string get_name() const
Get the processor's name.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_desc() const
Get the descrition of this specific processor.
string get_name() const
Get the processor's name.
void process_pixel(float *x) const
Do a square operation on image, f(x) = x * x;.
string get_name() const
Get the processor's name.
string get_desc() const
Get the descrition of this specific processor.
void process_pixel(float *x) const
Tries to fix images scanned on the zeiss for poor ccd normalization.
void process_inplace(EMData *image)
To process an image in-place.
string get_desc() const
Get the descrition of this specific processor.
string get_name() const
Get the processor's name.
'paints' a circle into the image at x,y,z with values inside r1 set to v1, values between r1 and r2 w...
virtual EMData * process(const EMData *const image)
To proccess an image out-of-place.
virtual string get_name() const
Get the processor's name.
virtual void process_inplace(EMData *)
To process an image in-place.
virtual string get_desc() const
Get the descrition of this specific processor.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
Perform a Wavelet transform using GSL.
virtual string get_desc() const
Get the descrition of this specific processor.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual string get_name() const
Get the processor's name.
virtual void process_inplace(EMData *image)
To process an image in-place.
Fill missing wedge with information from another image.
void process_inplace(EMData *image)
To process an image in-place.
string get_name() const
Get the processor's name.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_desc() const
Get the descrition of this specific processor.
Automatically determines the background for the image then uses this to perform Wiener filters on ove...
virtual EMData * process(const EMData *const image)
To proccess an image out-of-place.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_name() const
Get the processor's name.
void set_params(const Dict &new_params)
Set the processor parameters using a key/value dictionary.
void process_inplace(EMData *image)
To process an image in-place.
string get_desc() const
Get the descrition of this specific processor.
Wiener filter based on a Ctf object either in the image header.
void process_inplace(EMData *image)
To process an image in-place.
string get_name() const
Get the processor's name.
virtual EMData * process(const EMData *const image)
To proccess an image out-of-place.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
void set_params(const Dict &new_params)
Set the processor parameters using a key/value dictionary.
string get_desc() const
Get the descrition of this specific processor.
Determines the partial derivatives in the x direction Does this by constructing edge kernels in real ...
void process_inplace(EMData *image)
To process an image in-place.
string get_name() const
Get the processor's name.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_desc() const
Get the descrition of this specific processor.
XYZProcessor is a processor template for defining new processors.
string get_name() const
Get the processor's name.
string get_desc() const
Get the descrition of this specific processor.
TypeDict get_param_types() const
Add your processor parameter names and types in get_param_types().
void process_inplace(EMData *image)
define your Processor operation
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_desc() const
Get the descrition of this specific processor.
string get_name() const
Get the processor's name.
void process_inplace(EMData *image)
To process an image in-place.
string get_name() const
Get the processor's name.
void process_inplace(EMData *image)
To process an image in-place.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_desc() const
Get the descrition of this specific processor.
Calculate the z thickness of each pixel in a binarized 3d image.
string get_desc() const
Get the descrition of this specific processor.
virtual TypeDict get_param_types() const
Get processor parameter information in a dictionary.
virtual string get_name() const
Get the processor's name.
virtual void process_inplace(EMData *image)
To process an image in-place.
virtual EMData * process(const EMData *const image)
To proccess an image out-of-place.
Contraction of data, if any nearest neighbor is 0, value -> 0, generally used iteratively.
string get_desc() const
Get the descrition of this specific processor.
void create_kernel() const
void process_pixel(float *pixel, float, float, float, float *matrix) const
string get_name() const
Get the processor's name.
zero edges of volume on all sides
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
void process_inplace(EMData *image)
To process an image in-place.
string get_desc() const
Get the descrition of this specific processor.
string get_name() const
Get the processor's name.
zero edges of image on top and bottom, and on left and right.
string get_name() const
Get the processor's name.
void process_inplace(EMData *image)
To process an image in-place.
TypeDict get_param_types() const
Get processor parameter information in a dictionary.
string get_desc() const
Get the descrition of this specific processor.
EMData * sqrt() const
return square root of current image
EMData * log10() const
return base 10 logarithm image for a image
#define InvalidParameterException(desc)
#define ImageDimensionException(desc)
#define InvalidCallException(desc)
map< string, vector< string > > group_processors()
int multi_processors(EMData *image, vector< string > processornames)
map< string, vector< string > > dump_processors_list()
bool operator()(float left, float right) const
bool operator()(float left, float right) const