![]() |
Bsoft 2.1.4
Bernard's software package
|
Functions to process helical data. More...
#include "Bimage.h"
#include "mg_processing.h"
#include "mg_img_proc.h"
#include "mg_helix.h"
#include "mg_extract.h"
#include "spline.h"
#include "linked_list.h"
#include "Complex.h"
#include "utilities.h"
#include "timer.h"
Functions | |
double * | filament_profile (Bfilnode *fnode, Bimage *p, long img_num, int id, double width, long &n) |
Calculates a filament profile and node profile. More... | |
double | nodes_center (Bfilnode *fnode, Bimage *p, long img_num, int width) |
double | filaments_center (Bfilament *fillist, Bimage *p, long img_num, int filament_width) |
Centers filament nodes in a micrograph. More... | |
double | project_center_filaments (Bproject *project, int filament_width) |
Centers filament nodes in all micrographs in a project. More... | |
int | project_filament_powerspectrum (Bproject *project, int pad, int rotated, Bstring &path) |
Calculates and average power spectrum from filaments. More... | |
Bimage * | project_filament_density (Bproject *project, int filament_width) |
Extracts filament images from micrographs defined in a project and estimates their density per length. More... | |
int | mg_generate_layer_lines (Bmicrograph *mg, int rad_lim) |
Generates layer lines given the unit cell vectors. More... | |
int | img_mask_layer_lines (Bimage *p, Blayerline *layer_line, float helix_axis, float width) |
Masks the image using the list of layer lines. More... | |
double * | img_extract_layer_line (Bimage *p, Blayerline *line, float helix_axis, int length) |
Extracts one layer line from an image. More... | |
int | mg_extract_show_layer_lines (Bmicrograph *mg, int length, int show) |
Extracts and prints layer lines from an image with corresponding Bessel functions. More... | |
Variables | |
int | verbose |
Functions to process helical data.
double * filament_profile | ( | Bfilnode * | fnode, |
Bimage * | p, | ||
long | img_num, | ||
int | id, | ||
double | width, | ||
long & | n | ||
) |
Calculates a filament profile and node profile.
*fnode | node list. |
*p | image with filament. |
img_num | sub-image number. |
id | identifier of selected node. |
width | width of box around filament. |
&n | number of elements in the profile. |
A filament image is extracted from the micrograph along a spline through the nodes. The overall profile and the profile around a specified node are calculated and returned in a single array. It only works for 2D images.
Centers filament nodes in a micrograph.
*fillist | list of filaments. |
*p | image with filament. |
img_num | sub-image number. |
filament_width | width of box around filament. |
The profile for each node is calculated and centered by cross-correlation with the mirrored profile.
double * img_extract_layer_line | ( | Bimage * | p, |
Blayerline * | line, | ||
float | helix_axis, | ||
int | length | ||
) |
Extracts one layer line from an image.
*p | power spectrum. |
*line | layer line. |
helix_axis | helix axis angle. |
length | length of line. |
int img_mask_layer_lines | ( | Bimage * | p, |
Blayerline * | layer_line, | ||
float | helix_axis, | ||
float | width | ||
) |
Masks the image using the list of layer lines.
*p | complex image. |
*layer_line | layer line list. |
helix_axis | helix axis angle. |
width | width of mask for a line. |
int mg_extract_show_layer_lines | ( | Bmicrograph * | mg, |
int | length, | ||
int | show | ||
) |
Extracts and prints layer lines from an image with corresponding Bessel functions.
*mg | micrograph. |
length | length of line. |
show | show: 1=extracted layer lines, 2=Bessel functions, 3=both |
int mg_generate_layer_lines | ( | Bmicrograph * | mg, |
int | rad_lim | ||
) |
Generates layer lines given the unit cell vectors.
*mg | micrograph. |
rad_lim | layer line radial limit. |
The structure factor location is given by: x = uh + vk where u and v are the unit cell vectors, and h and k are the associated Miller indices.
double project_center_filaments | ( | Bproject * | project, |
int | filament_width | ||
) |
Centers filament nodes in all micrographs in a project.
*project | project object. |
filament_width | width of box around filament. |
The profile for each node is calculated and centered by cross-correlation with the mirrored profile.
Extracts filament images from micrographs defined in a project and estimates their density per length.
*project | micrograph project. |
filament_width | extracted filament width. |
Calculates and average power spectrum from filaments.
*project | project parameter structure. |
pad | additional padding before transformation. |
rotated | flag to indicate if particles are already rotated. |
&path | path to write power spectra. |
Particles derived from picked filaments are extracted and transformed to orient the helical axis along the x-axis. These images are then Fourier transformed and their power spectra averaged. One average per micrograph is calculated. Requirements: The filaments must be picked and converted to particle locations.
|
extern |