def parse_args(): parser = get_default_parser(__doc__) parser.add_argument('input', type=str, help='Blender .obj input file name') parser.add_argument('--n', type=int, help='Number of pixels') parser.add_argument('--supersampling-projection', type=int, default=1, help='Supersampling for mesh projections computation') parser.add_argument('--dset', type=str, help='Data set name, if not specified guessed from input') parser.add_argument('--num-projections', type=int, help='Number of projections') parser.add_argument('--out-directory', type=str, default='dataset', help="Output directory, result goes to 'out-directory/dset/projections'" "or 'out-directory/dset/truth', depending on the --make-gt switch") parser.add_argument('--pixel-size', type=float, default=[750.], nargs='+', help='Pixel size in nm') parser.add_argument('--rotation-angle', type=float, default=180, help='Total rotation angle in degrees') parser.add_argument('--lamino-angle', type=float, default=[5], nargs='+', help='Laminographic angle in degrees') parser.add_argument('--rotation-axis', type=str, choices=['y', 'z'], default=['y'], nargs='+', help='Rotation axis (y - up, z - beam direction)') parser.add_argument('--num-devices', type=int, default=1, help='Number of compute devices to use') parser.add_argument('--supersampling', type=int, default=[1], nargs='+', help='Supersampling computes with n-times more pixels than usual') parser.add_argument('--double-precision', action='store_true', help='Use double precision') # Ground truth related parser.add_argument('--z-chunk', type=int, default=100, help='Number of ground truth slices to compute during one pass') parser.add_argument('--make-gt', action='store_true', help='Create ground truth instead of projections') return parser.parse_args()
def main(): """Parse command line arguments and execute one of the experiments.""" parser = get_default_parser(__doc__) subparsers = parser.add_subparsers(help='sub-command help') motion = subparsers.add_parser('motion', help='An experiment with motion') motion.add_argument('--output', type=str, help='Output directory for moving objects.') motion.add_argument('--show', action='store_true', help='Show images as they are produced') motion.add_argument('--show-flat', action='store_true', help='Show a flat field image') motion.add_argument('--conduct', action='store_true', help='Conduct the experiment') motion.add_argument('--num-images', type=int, help='Number of images to produce') motion.set_defaults(_func=make_motion) flat = subparsers.add_parser( 'flat', help='Quantitatively correct flat field computation') flat.set_defaults(_func=make_topo_tomo_flat) args = parser.parse_args() args._func(args)
def parse_args(): parser = get_default_parser(__doc__) parser.add_argument('--output', type=str, help='Output directory for projections.') return parser.parse_args()
def main(): parser = get_default_parser(__doc__) subparsers = parser.add_subparsers(help='sub-command help') manual = subparsers.add_parser( 'manual', help='Manual positioning via simple transformations') trajectory = subparsers.add_parser( 'trajectory', help='Automatic positioning via trajectories') subtrajectories = subparsers.add_parser('subtrajectories', help='Automatic positioning with ' 'local sub-body trajectories') manual.set_defaults(_func=make_manual_sequence) trajectory.set_defaults(_func=make_trajectory_sequence) subtrajectories.add_argument( '--t', type=float, help='Time at which to compute the projection normalized to ' '[0, 1], if not specified, complete sequence is shown') subtrajectories.set_defaults(_func=make_complex_trajectory_sequence) args = parser.parse_args() syris.init(device_index=0) # Set constants args.n = 512 args.shape = (args.n, args.n) args.ps = 1 * q.um args._func(args)
def parse_args(): parser = get_default_parser(__doc__) parser.add_argument('--energy-center', type=float, default=10, help='Energy at which the filter is centered [keV]') parser.add_argument('--energy-resolution', type=float, default=1e-2, help='Energy resolution (FWHM of the Gaussian filter) [dE/E]') return parser.parse_args()
def parse_args(): parser = get_default_parser(__doc__) parser.add_argument('--propagation-distance', type=float, default=2, help='Propagation distance [m]') return parser.parse_args()
def parse_args(): parser = get_default_parser(__doc__) parser.add_argument('--input', default='grid', choices=['grid', 'lena'], help='Input image') parser.add_argument('--output', type=str, help='Output file name') parser.add_argument('--n', type=int, default=512, help='Number of pixels in one dimension') return parser.parse_args()
def parse_args(): parser = get_default_parser(__doc__) parser.add_argument( '--supersampling', type=int, default=8, help='Supersampling used to prevent propagation artefacts') return parser.parse_args()
def parse_args(): """Parse command line arguments.""" parser = get_default_parser(__doc__) parser.add_argument('--input', type=str, help='Input .obj file') parser.add_argument('--units', type=str, default='um', help='Mesh physical units') parser.add_argument('--n', type=int, default=256, help='Number of pixels') parser.add_argument('--supersampling', type=int, default=1, help='Supersampling for mesh computation') parser.add_argument('--pixel-size', type=float, help='Pixel size in um') parser.add_argument('--center', type=str, help='Mesh centering on creation') parser.add_argument('--translate', type=float, nargs=2, help='Translation as (x, y) in um') parser.add_argument('--x-rotate', type=float, default=0., help='Rotation around x axis [deg]') parser.add_argument('--y-rotate', type=float, default=0., help='Rotation around y axis [deg]') parser.add_argument('--margin', type=float, default=1., help='Margin in factor of the full FOV') parser.add_argument('--projection-filename', type=str, help='Save projection to this filename') parser.add_argument('--compute-slice', action='store_true', help='Compute also one slice') parser.add_argument('--slice-filename', type=str, help='Save slice to this filename') parser.add_argument('--double-precision', action='store_true', help='Use double precision') args = parser.parse_args() if args.pixel_size is not None: args.pixel_size = args.pixel_size * q.um args.x_rotate = args.x_rotate * q.deg args.y_rotate = args.y_rotate * q.deg if args.translate is not None: args.translate = args.translate * q.um return args
def parse_args(): parser = get_default_parser(__doc__) parser.add_argument( '--supersampling', type=int, choices=[2, 4, 8, 16, 32], default=32, help='Supersampling used to prevent transmission function aliasing') return parser.parse_args()
def parse_args(): parser = get_default_parser(__doc__) parser.add_argument('--supersampling', type=int, default=8, help='Supersampling used to prevent propagation artefacts') parser.add_argument('--noise', action='store_true', help='Apply noise on the polychromatic image') parser.add_argument('--exposure', type=float, default=1, help='Camera exposure time [ms], defines the amount of ' + 'noise in the polychromatic image') return parser.parse_args()
def parse_args(): parser = get_default_parser(__doc__) parser.add_argument( '--t', type=float, default=0.5, help='Time at which to compute the projection normalized to [0, 1]') args = parser.parse_args() if args.t < 0 or args.t > 1: raise ValueError('--t must be in the range [0, 1]') return args
def parse_args(): parser = get_default_parser(__doc__) parser.add_argument('--n', type=int, default=[1024], nargs='+', help='List of number of pixels in one dimension') parser.add_argument('--num-devices', type=int, default=1, help='Number of compute devices to use') parser.add_argument('--pixel-size', type=float, default=1, help='Pixel size [um]') parser.add_argument('--platform', type=str, help='Platform name substring') parser.add_argument('--runs', type=int, default=1, help='Number of runs') parser.add_argument('--output', type=str, help='Output file name') return parser.parse_args()
def parse_args(): parser = get_default_parser(__doc__) parser.add_argument('--energy-center', type=float, default=10, help='Energy at which the filter is centered [keV]') parser.add_argument( '--energy-resolution', type=float, default=1e-2, help='Energy resolution (FWHM of the Gaussian filter) [dE/E]') return parser.parse_args()
def parse_args(): parser = get_default_parser(__doc__) parser.add_argument('--input', default='grid', choices=['grid', 'lena'], help='Input image') parser.add_argument('--output', type=str, help='Output file name') parser.add_argument('--n', type=int, default=512, help='Number of pixels in one dimension') return parser.parse_args()
def parse_args(): """Parse command line arguments.""" parser = get_default_parser(__doc__) parser.add_argument('--fn', type=float, default=4.0, help='Fresnel number') parser.add_argument('--energy', type=float, default=1.0, help='Energy [keV]') parser.add_argument('--aperture', type=float, default=100.0, help='Half the aperture width [um]') parser.add_argument('--supersampling', type=int, default=4, help='Supersampling') parser.add_argument('--numerical-divisors', type=int, nargs='+', default=[1], help='A list of divisors which will divide the aliasing-free number ' 'of pixels to produce aliased results to show the importance of proper ' 'sampling') parser.add_argument('--txt-output', type=str, help='File name where to store the data as text') return parser.parse_args()
def main(): """Parse command line arguments and execute one of the experiments.""" parser = get_default_parser(__doc__) subparsers = parser.add_subparsers(help='sub-command help') motion = subparsers.add_parser('motion', help='An experiment with motion') motion.add_argument('--output', type=str, help='Output directory for moving objects.') motion.add_argument('--show', action='store_true', help='Show images as they are produced') motion.add_argument('--show-flat', action='store_true', help='Show a flat field image') motion.add_argument('--conduct', action='store_true', help='Conduct the experiment') motion.add_argument('--num-images', type=int, help='Number of images to produce') motion.set_defaults(_func=make_motion) flat = subparsers.add_parser('flat', help='Quantitatively correct flat field computation') flat.set_defaults(_func=make_topo_tomo_flat) args = parser.parse_args() args._func(args)
def parse_args(): parser = get_default_parser(__doc__) parser.add_argument('--n', type=int, default=[1024], nargs='+', help='List of number of pixels in one dimension') parser.add_argument('--num-devices', type=int, default=1, help='Number of compute devices to use') parser.add_argument('--pixel-size', type=float, default=1, help='Pixel size [um]') parser.add_argument('--platform', type=str, help='Platform name substring') parser.add_argument('--runs', type=int, default=1, help='Number of runs') parser.add_argument('--output', type=str, help='Output file name') return parser.parse_args()
def parse_args(): parser = get_default_parser(__doc__) parser.add_argument('--n', type=int, default=512**2, help='Number of pixels (default 512^2)') parser.add_argument('--m', type=int, default=64, help='Number of pixel operations (default 64)') parser.add_argument( '--k', type=float, default=[1], nargs='*', help='Time complexity, there are n x m^k operations in total ' '(default 1). The argument might have one (single run) or 3 numbers ' '(meaning start stop step) when a scan is performed.') parser.add_argument('--runs', type=int, default=1, help='Number of runs per one complexity. ' 'The result speedup is the mean.') parser.add_argument('--plot', action='store_true', help='Plot results') parser.add_argument('--verbose', action='store_true', help='Print infomation from individual runs') parser.add_argument( '--output', type=str, help='Output individual speedups from all ' 'runs as a numpy array in this filename k is the complexity. ' 'It must conatin a formatting string which will hold the complexity, ' 'e.g. speedups{:>04}.npy.') args = parser.parse_args() m = args.k if not (len(m) == 1 or len(m) == 3): raise ValueError('--k must contain either 1 or 3 numbers') return args
def parse_args(): parser = get_default_parser('Metaballs example') parser.add_argument('--n', type=int, default=512, help='Number of image pixels') parser.add_argument('--method', choices=['random', 'fixed', 'file'], default='random', help='Use random number of metaballs, fixed metaballs or file with ' 'packed metaball structure') parser.add_argument('--num', type=int, default=50, help='Number of random metaballs') parser.add_argument('--distance', type=float, help='Distance of the two fixed metaballs in pixels') parser.add_argument('--min-radius', type=int, default=5, help='Minimum radius of random metaballs in pixels') parser.add_argument('--max-radius', type=int, default=25, help='Maximum radius of random metaballs in pixels') parser.add_argument('--input', type=str, help='Input file for packed metaballs') parser.add_argument('--output', type=str, help='Output file for created metaballs as a packed structure') parser.add_argument('--output-thickness', type=str, help='Output file for projected thickness') parser.add_argument('--algorithm', choices=['naive', 'fast'], default='fast', help='Used algorithm for intersections computation') return parser.parse_args()
def main(): parser = get_default_parser(__doc__) subparsers = parser.add_subparsers(help='sub-command help') manual = subparsers.add_parser('manual', help='Manual positioning via simple transformations') trajectory = subparsers.add_parser('trajectory', help='Automatic positioning via trajectories') subtrajectories = subparsers.add_parser('subtrajectories', help='Automatic positioning with ' 'local sub-body trajectories') manual.set_defaults(_func=make_manual_sequence) trajectory.set_defaults(_func=make_trajectory_sequence) subtrajectories.add_argument('--t', type=float, help='Time at which to compute the projection normalized to ' '[0, 1], if not specified, complete sequence is shown') subtrajectories.set_defaults(_func=make_complex_trajectory_sequence) args = parser.parse_args() syris.init(device_index=0) # Set constants args.n = 512 args.shape = (args.n, args.n) args.ps = 1 * q.um args._func(args)
def parse_args(): parser = get_default_parser(__doc__) parser.add_argument('--n', type=int, default=512 ** 2, help='Number of pixels (default 512^2)') parser.add_argument('--m', type=int, default=64, help='Number of pixel operations (default 64)') parser.add_argument('--k', type=float, default=[1], nargs='*', help='Time complexity, there are n x m^k operations in total ' '(default 1). The argument might have one (single run) or 3 numbers ' '(meaning start stop step) when a scan is performed.') parser.add_argument('--runs', type=int, default=1, help='Number of runs per one complexity. ' 'The result speedup is the mean.') parser.add_argument('--plot', action='store_true', help='Plot results') parser.add_argument('--verbose', action='store_true', help='Print infomation from individual runs') parser.add_argument('--output', type=str, help='Output individual speedups from all ' 'runs as a numpy array in this filename k is the complexity. ' 'It must conatin a formatting string which will hold the complexity, ' 'e.g. speedups{:>04}.npy.') args = parser.parse_args() m = args.k if not (len(m) == 1 or len(m) == 3): raise ValueError('--k must contain either 1 or 3 numbers') return args
def parse_args(): parser = get_default_parser(__doc__) parser.add_argument('--output', type=str, help='Output directory for projections.') return parser.parse_args()
def parse_args(): parser = get_default_parser(__doc__) parser.add_argument('--supersampling', type=int, choices=[2, 4, 8, 16, 32], default=32, help='Supersampling used to prevent transmission function aliasing') return parser.parse_args()
def parse_args(): parser = get_default_parser(__doc__) parser.add_argument('--propagation-distance', type=float, default=2, help='Propagation distance [m]') return parser.parse_args()
def parse_args(): """Parse command line arguments.""" parser = get_default_parser(__doc__) parser.add_argument('--output', type=str, help='Output directory for moving objects.') return parser.parse_args()
def parse_args(): parser = get_default_parser(__doc__) parser.add_argument('input', type=str, help='Blender .obj input file name') parser.add_argument('--n', type=int, help='Number of pixels') parser.add_argument('--supersampling-projection', type=int, default=1, help='Supersampling for mesh projections computation') parser.add_argument( '--dset', type=str, help='Data set name, if not specified guessed from input') parser.add_argument('--num-projections', type=int, help='Number of projections') parser.add_argument( '--out-directory', type=str, default='dataset', help="Output directory, result goes to 'out-directory/dset/projections'" "or 'out-directory/dset/truth', depending on the --make-gt switch") parser.add_argument('--pixel-size', type=float, default=[750.], nargs='+', help='Pixel size in nm') parser.add_argument('--rotation-angle', type=float, default=180, help='Total rotation angle in degrees') parser.add_argument('--lamino-angle', type=float, default=[5], nargs='+', help='Laminographic angle in degrees') parser.add_argument('--rotation-axis', type=str, choices=['y', 'z'], default=['y'], nargs='+', help='Rotation axis (y - up, z - beam direction)') parser.add_argument('--num-devices', type=int, default=1, help='Number of compute devices to use') parser.add_argument( '--supersampling', type=int, default=[1], nargs='+', help='Supersampling computes with n-times more pixels than usual') parser.add_argument('--double-precision', action='store_true', help='Use double precision') # Ground truth related parser.add_argument( '--z-chunk', type=int, default=100, help='Number of ground truth slices to compute during one pass') parser.add_argument('--make-gt', action='store_true', help='Create ground truth instead of projections') return parser.parse_args()