Exemple #1
0
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()
Exemple #2
0
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)
Exemple #3
0
def parse_args():
    parser = get_default_parser(__doc__)
    parser.add_argument('--output',
                        type=str,
                        help='Output directory for projections.')

    return parser.parse_args()
Exemple #4
0
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)
Exemple #5
0
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()
Exemple #6
0
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()
Exemple #7
0
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()
Exemple #8
0
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()
Exemple #9
0
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()
Exemple #11
0
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()
Exemple #12
0
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
Exemple #13
0
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()
Exemple #14
0
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()
Exemple #15
0
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()
Exemple #16
0
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()
Exemple #17
0
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)
Exemple #18
0
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()
Exemple #19
0
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
Exemple #20
0
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()
Exemple #21
0
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)
Exemple #22
0
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
Exemple #23
0
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()
Exemple #25
0
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()
Exemple #26
0
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()
Exemple #27
0
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()