示例#1
0
def main():
    fc = Calibration()
    fname = rospy.myargv()[1]
    daca, dacb = np.mgrid[-0x3FFF:0x3FFF:50j, -0x3FFF:0x3FFF:50j]
    daca = daca.ravel().astype(np.int16)
    dacb = dacb.ravel().astype(np.int16)
    dac = np.array([daca, dacb])
    pixels = fc.pixels_for_dac(dac)
    print 'dac.shape', dac.shape
    print 'pixels.shape', pixels.shape
    save_raw_calibration_data(fname, dac, pixels)
    if 1:
        fname2 = time.strftime("cal_%Y%m%d_%H%M%S.out")
        save_raw_calibration_data(fname2, dac, pixels)
示例#2
0
def main():
    fc = FakeCalibration()
    fname = sys.argv[1]

    daca, dacb = np.mgrid[0:0xFFFF:100j, 0:0xFFFF:100j]
    daca = daca.ravel().astype(np.uint16)
    dacb = dacb.ravel().astype(np.uint16)
    dac = np.array([daca, dacb])
    pixels = fc.pixels_for_dac(dac)

    pixels[:, 3] = np.nan
    print 'dac.shape', dac.shape
    print 'pixels.shape', pixels.shape
    save_raw_calibration_data(fname, dac, pixels)
def main():
    fc = Calibration()
    fname = rospy.myargv()[1]
    daca, dacb = np.mgrid[-0x3FFF:0x3FFF:50j, -0x3FFF:0x3FFF:50j]
    daca = daca.ravel().astype(np.int16)
    dacb = dacb.ravel().astype(np.int16)
    dac = np.array([daca,dacb])
    pixels = fc.pixels_for_dac( dac )
    print 'dac.shape',dac.shape
    print 'pixels.shape',pixels.shape
    save_raw_calibration_data(fname, dac, pixels)
    if 1:
        fname2 = time.strftime("cal_%Y%m%d_%H%M%S.out")
        save_raw_calibration_data(fname2, dac, pixels)
def main():
    fc = FakeCalibration()
    fname = sys.argv[1]

    daca, dacb = np.mgrid[0:0xFFFF:100j, 0:0xFFFF:100j]
    daca = daca.ravel().astype(np.uint16)
    dacb = dacb.ravel().astype(np.uint16)
    dac = np.array([daca,dacb])
    pixels = fc.pixels_for_dac( dac )

    pixels[:,3]=np.nan
    print 'dac.shape',dac.shape
    print 'pixels.shape',pixels.shape
    save_raw_calibration_data(fname, dac, pixels)
def main():

    import argparse
    parser = argparse.ArgumentParser()
    parser.add_argument('fname_in', type=str, help='input filename')
    parser.add_argument('--hotspot', nargs=2, metavar=('hotspot_x','hotspot_y'),
                        default=(None, None), help='the (X,Y) location of the laser reflection')
    parser.add_argument('--hotspot-radius', type=float,
                        default=10.0, help='the radius of the laser reflection')

    parser.add_argument('--center', nargs=2, metavar=('center_x','center_y'),
                        default=(320, 240), help='the (X,Y) location of the arena center')
    parser.add_argument('--center-radius', type=float,
                        default=300.0, help='the radius of the laser reflection')

    args=rospy.myargv()[1:]

    args = parser.parse_args(args)
    fname_in = args.fname_in
    out_dir = os.path.dirname(os.path.abspath(fname_in))

    fname_out = os.path.splitext(fname_in)[0] + '.filtered.yaml'
    dac_in, pixels_in = read_raw_calibration_data(fname_in)


    center_x, center_y = args.center
    center_x, center_y = map(int, (center_x, center_y))
    print 'removing all points outside radius %s of center %d,%d' % (args.center_radius,
                                                                     center_x,
                                                                     center_y )
    center = np.c_[center_x,center_y].T
    r = np.sqrt(np.sum((pixels_in-center)**2,axis=0))
    valid1 = r < args.center_radius

    print 'removing all points outside near DAC zero'
    dac2 = dac_in.astype(np.int16)
    dac3 = dac2.astype(np.float)
    rd = np.sqrt(np.sum(dac3**2,axis=0))
    valid2 = rd < 16000

    hotspot_x, hotspot_y = args.hotspot
    if hotspot_x is not None:
        assert hotspot_y is not None
        hotspot_x, hotspot_y = map(int, (hotspot_x, hotspot_y))
        print 'removing all points within radius %s of hotspot %d,%d' % (args.hotspot_radius,
                                                                         hotspot_x,
                                                                         hotspot_y )
        hotspot = np.c_[hotspot_x,hotspot_y].T
        r = np.sqrt(np.sum((pixels_in-hotspot)**2,axis=0))
        valid3 = r > args.hotspot_radius
    else:
        print 'no hotspot defined'
        valid3 = np.ones_like(pixels_in[0,:], dtype=np.bool)

    valid = (valid1 & valid2) & valid3

    pixels = pixels_in[:,valid]
    dac = dac_in[:,valid]

    if 0:
        # useful to change some values to debug coordinates
        c = (pixels[0,:] < 400) & (pixels[1,:] < 200)
        dac[:,c]=0

    save_raw_calibration_data(fname_out, dac, pixels)
    if 1:
        fname2 = time.strftime("cal_%Y%m%d_%H%M%S.filtered.out")
        full_path = os.path.join(out_dir, fname2)
        save_raw_calibration_data(full_path, dac, pixels)
示例#6
0
def main():

    import argparse
    parser = argparse.ArgumentParser()
    parser.add_argument('fname_in', type=str, help='input filename')
    parser.add_argument('--hotspot',
                        nargs=2,
                        metavar=('hotspot_x', 'hotspot_y'),
                        default=(None, None),
                        help='the (X,Y) location of the laser reflection')
    parser.add_argument('--hotspot-radius',
                        type=float,
                        default=10.0,
                        help='the radius of the laser reflection')

    parser.add_argument('--center',
                        nargs=2,
                        metavar=('center_x', 'center_y'),
                        default=(320, 240),
                        help='the (X,Y) location of the arena center')
    parser.add_argument('--center-radius',
                        type=float,
                        default=300.0,
                        help='the radius of the laser reflection')

    args = rospy.myargv()[1:]

    args = parser.parse_args(args)
    fname_in = args.fname_in
    out_dir = os.path.dirname(os.path.abspath(fname_in))

    fname_out = os.path.splitext(fname_in)[0] + '.filtered.yaml'
    dac_in, pixels_in = read_raw_calibration_data(fname_in)

    center_x, center_y = args.center
    center_x, center_y = map(int, (center_x, center_y))
    print 'removing all points outside radius %s of center %d,%d' % (
        args.center_radius, center_x, center_y)
    center = np.c_[center_x, center_y].T
    r = np.sqrt(np.sum((pixels_in - center)**2, axis=0))
    valid1 = r < args.center_radius

    print 'removing all points outside near DAC zero'
    dac2 = dac_in.astype(np.int16)
    dac3 = dac2.astype(np.float)
    rd = np.sqrt(np.sum(dac3**2, axis=0))
    valid2 = rd < 16000

    hotspot_x, hotspot_y = args.hotspot
    if hotspot_x is not None:
        assert hotspot_y is not None
        hotspot_x, hotspot_y = map(int, (hotspot_x, hotspot_y))
        print 'removing all points within radius %s of hotspot %d,%d' % (
            args.hotspot_radius, hotspot_x, hotspot_y)
        hotspot = np.c_[hotspot_x, hotspot_y].T
        r = np.sqrt(np.sum((pixels_in - hotspot)**2, axis=0))
        valid3 = r > args.hotspot_radius
    else:
        print 'no hotspot defined'
        valid3 = np.ones_like(pixels_in[0, :], dtype=np.bool)

    valid = (valid1 & valid2) & valid3

    pixels = pixels_in[:, valid]
    dac = dac_in[:, valid]

    if 0:
        # useful to change some values to debug coordinates
        c = (pixels[0, :] < 400) & (pixels[1, :] < 200)
        dac[:, c] = 0

    save_raw_calibration_data(fname_out, dac, pixels)
    if 1:
        fname2 = time.strftime("cal_%Y%m%d_%H%M%S.filtered.out")
        full_path = os.path.join(out_dir, fname2)
        save_raw_calibration_data(full_path, dac, pixels)