| 
    Bsoft 2.1.4
    
   Bernard's software package 
   | 
 
Functions | |
| Bimage * | img_radon_transform (Bimage *p, int type, int nkernel, int kernel_power, int padd, int ntheta) | 
| Calculates the Radon transform of an image.  More... | |
| Bimage * | img_radon_inverse_transform (Bimage *p, int type, int nkernel, int kernel_power, int padd) | 
| Calculates a 3D image from a Radon transform.  More... | |
| int | img_radon_pocs_filter (Bimage *p, int n_cyc_out, int n_cyc_in, double rad_3D, double rad_plane, int support, Bimage *pmask) | 
| Filters a radon transform using the POCS method.  More... | |
| Bimage * | img_radon_reconstruction (Bproject *project, Bsymmetry &sym, Bstring &file_mask, int rec_size, int ntheta, int table_size, double threshold, Vector3< double > origin, int nkernel, int kernel_power) | 
| Reconstructs a Radon transform from a set of projections.  More... | |
| int | img_resize_to_next_power2 (Bimage *p, int fill_type, double fill) | 
| Resizes without interpolation or rescaling to the next power of 2.  More... | |
| Bimage * img_radon_inverse_transform | ( | Bimage * | p, | 
| int | type, | ||
| int | nkernel, | ||
| int | kernel_power, | ||
| int | padd | ||
| ) | 
Calculates a 3D image from a Radon transform.
| *p | radon transform to be back-transformed. | 
| type | type of transformation. | 
| nkernel | kernel size. | 
| kernel_power | kernel exponent (usually 2). | 
| padd | padding flag (0=no padding, 1=padding twofold). | 
Type: 1 = From single axis proj. to 3D structure, output is a 3D image with size (z,z,z) 2 = From quarter radon transform to single axis proj., output is a gallery of ntheta 2D image with size (z,z) 3 = From full radon transform to 3D structure, output is a 3D image with size (z,z,z) 4 = From quarter radon transform to 3D structure, output is a 3D image with size (z,z,z)
| int img_radon_pocs_filter | ( | Bimage * | p, | 
| int | n_cyc_out, | ||
| int | n_cyc_in, | ||
| double | rad_3D, | ||
| double | rad_plane, | ||
| int | support, | ||
| Bimage * | pmask | ||
| ) | 
Filters a radon transform using the POCS method.
| *p | radon transform. | 
| n_cyc_out | outer cycles, swapping r,phi and r,theta planes | 
| n_cyc_in | inner cycles, within r,phi and r,theta planes | 
| rad_3D | limiting radius in 3D. | 
| rad_plane | limiting radius in plane. | 
| support | flag to impose finiteness in real space. | 
| *pmask | mask of dimension (ntheta/2,ntheta/2). | 
Filters a Radon transform to impose consistency and/or to fill holes.
It can be used in two ways:
a) When the Radon transform is not completely filled, it fills the holes
    described in the mask file produced by proj_to_radon.
b) When the Radon transform is filled and noisy, it impose consistency.
The mask must have the same dimensions as a plane in the radon transform.
 | Bimage * img_radon_reconstruction | ( | Bproject * | project, | 
| Bsymmetry & | sym, | ||
| Bstring & | file_mask, | ||
| int | rec_size, | ||
| int | ntheta, | ||
| int | table_size, | ||
| double | threshold, | ||
| Vector3< double > | origin, | ||
| int | nkernel, | ||
| int | kernel_power | ||
| ) | 
Reconstructs a Radon transform from a set of projections.
| *project | image processing parameter structure. | 
| &sym | point group symmetry. | 
| &file_mask | output file name of mask of dimension (ntheta,ntheta). | 
| rec_size | reconstruction size (x,y,z) | 
| ntheta | number of angles in the 2*PI range. | 
| table_size | lookup table size. | 
| threshold | threshold for rejecting images. | 
| origin | origin reference for shifts. | 
| nkernel | kernel size. | 
| kernel_power | kernel exponent (usually 2). | 
The parameters are defined in the hierarchical project structure. The radon transform of each image is calculated and all its symmetry-related views are written into the reconstruction volume. A mask image is calculated for the angular coverage of orientation space and used to weigh the reconstruction.
| Bimage * img_radon_transform | ( | Bimage * | p, | 
| int | type, | ||
| int | nkernel, | ||
| int | kernel_power, | ||
| int | padd, | ||
| int | ntheta | ||
| ) | 
Calculates the Radon transform of an image.
| *p | image to be transformed. | 
| type | type of transformation. | 
| nkernel | kernel size. | 
| kernel_power | kernel exponent (usually 2). | 
| padd | padding flag (0=no padding, 1=padding twofold). | 
| ntheta | number of angles in the 2*PI range. | 
Computes the Radon transform of a 3D image with all sides equal
(a cube) and a power of 2. The transform is calculated in spherical
coordinates where ntheta is the number of sampling points in the 
range 0 - 2*PI along the two angular axes. Because half of this 
range is redundant (0-PI is enough), a smaller output can be 
generated.
    Type:
1 = From 3D structure to single axis proj., output is a gallery of ntheta 2D image with size (x,x)
2 = From single axis proj. to quarter radon transform, output is a 3D image with size (x,ntheta/2,ntheta/2)
3 = From 3D structure to full radon transform, output is a 3D image with size (x,ntheta,ntheta)
4 = From 3D structure to quarter radon transform, output is a 3D image with size (x,ntheta/2,ntheta/2)
 | int img_resize_to_next_power2 | ( | Bimage * | p, | 
| int | fill_type, | ||
| double | fill | ||
| ) | 
Resizes without interpolation or rescaling to the next power of 2.
| p | image (modified). | 
| fill_type | FILL_AVERAGE, FILL_BACKGROUND, FILL_USER | 
| fill | value to fill in new regions. | 
An image is resized to the next power of two in each dimension greater than 1 with translation and filling of new regions with a given value. The new data replaces the old data.