def save_objects(i, cam, method):
    obj_file = cam + '_obj_' + str(i).zfill(3) + '.pkl'
    if obj_file not in os.listdir(FOLDER):
        print 'saving ' + cam + '_' + str(i).zfill(3)
        im_file = FOLDER + cam + '_' + str(i).zfill(3) + '.fit'
        obj = FiberImage(im_file)
        obj.set_fiber_center(method=method, **OPTIONS)
        obj.set_fiber_centroid(method=method, **OPTIONS)
        obj.save_object(FOLDER + obj_file)
Example #2
0
def save_objects(i, cam, method):
    obj_file = cam + '_obj_' + str(i).zfill(3) + '.pkl'
    if obj_file not in os.listdir(FOLDER):
        print 'saving ' + cam + '_' + str(i).zfill(3)
        im_file = FOLDER + cam + '_' + str(i).zfill(3) + '.fit'
        obj = FiberImage(im_file, threshold=1000)
        obj.set_fiber_center(method=method, 
                             radius_tol=.03, radius_range=64,
                             center_tol=.03, center_range=64)
        obj.set_fiber_centroid(method=method)
        obj.save_object(FOLDER + obj_file)
def input_objects(folder, in_f):
    if NEW_OBJECTS:
        for f in in_f:
            print 'Saving ' + folder + 'input_' + str(f)
            im_obj = FiberImage(input_files(folder, f),
                                dark=dark_files(folder),
                                ambient=ambient_files(folder),
                                input_fnum=f,
                                threshold=FRD_CALIBRATION_THRESHOLD,
                                camera='ff')
            im_obj.save_object(folder + 'input_' + str(f) + '/ff_object.pkl')
            im_obj.save_image(folder + 'input_' + str(f) + '/ff_corrected.fit')
    return [folder + 'input_' + str(f) + '/ff_object.pkl' for f in in_f]
Example #4
0
def save_new_object(folder,
                    test,
                    cam,
                    ambient_folder='ambient/',
                    dark_folder='dark/'):
    print 'saving new object'
    images = image_list(folder + test + '/' + cam + '_')

    ambient = image_list(folder + ambient_folder + cam + '_')
    dark = image_list(folder + dark_folder + cam + '_')

    im_obj = FiberImage(images, dark=dark, ambient=ambient, camera=cam)
    im_obj.save_image(image_file(folder, test, cam))
    im_obj.save_object(object_file(folder, test, cam))
Example #5
0
def set_new_data(folder, test, cam, methods, fiber_method='edge', kernel=None):
    im_obj = FiberImage(object_file(folder, test, cam))
    radius_factor = None
    if 'rectang' in test:
        radius_factor = 0.3

    print 'setting new data'
    for method in methods:
        print 'setting method ' + method
        im_obj.set_modal_noise(method,
                               fiber_method=fiber_method,
                               kernel_size=kernel,
                               radius_factor=radius_factor)
    im_obj.save_object(object_file(folder, test, cam))
    print
Example #6
0
def save_modal_noise_data(folder, tests, cam, methods, title):
    print 'saving modal noise data'
    modal_noise_info = [['cam', 'test'] + methods]
    for i, test in enumerate(tests):
        im_obj = FiberImage(object_file(folder, test, cam))
        modal_noise_info.append([cam, test])
        for method in methods:
            modal_noise = im_obj.get_modal_noise(method)
            im_obj.save_object(object_file(folder, test, cam))
            print cam, test, method, modal_noise
            modal_noise_info[i + 1].append(modal_noise)

    with open(folder + 'analysis/' + title + '/' + cam.upper() + ' Data.csv',
              'wb') as f:
        wr = csv.writer(f)
        wr.writerows(modal_noise_info)
def main(folder=FOLDER,
         cameras=CAMERAS,
         num_images=NUM_IMAGES,
         new_data=NEW_DATA):
    for cam in cameras:
        centers = []
        for i in xrange(0, 300 - num_images, num_images):
            object_file = cam + '_' + str(i).zfill(3) + '-' + str(
                i + num_images).zfill(3) + '_obj.pkl'

            if object_file not in os.listdir(folder) or new_data:
                images = [
                    folder + cam + '_' + str(j).zfill(3) + '.fit'
                    for j in xrange(i, i + num_images)
                ]
                ambient = [
                    folder + 'ambient/' + cam + '_' + str(j).zfill(3) + '.fit'
                    for j in xrange(min(10, num_images))
                ]
                dark = [
                    folder + 'dark/' + cam + '_' + str(j).zfill(3) + '.fit'
                    for j in xrange(min(10, num_images))
                ]
                im_obj = FiberImage(images,
                                    ambient=ambient,
                                    dark=dark,
                                    camera=cam)
                im_obj.save_object(folder + object_file)

            object_file = folder + object_file
            im_obj = FiberImage(object_file)
            center = im_obj.get_fiber_center(
                method='circle') - im_obj.get_fiber_centroid(method='full')
            print center
            centers.append(center)
            im_obj.save_object(object_file)

        plt.figure()
        plt.subplot(211)
        plt.plot([center.x for center in centers])

        plt.subplot(212)
        plt.plot([center.y for center in centers])

        plt.show()
Example #8
0
def save_baseline_object(folder,
                         test,
                         cam,
                         best_test,
                         fiber_method='edge',
                         kernel=None):
    print 'saving new baseline object'
    im_obj = FiberImage(object_file(folder, best_test, cam))
    baseline = baseline_image(im_obj,
                              stdev=im_obj.get_dark_image().std(),
                              fiber_method=fiber_method,
                              kernel_size=kernel)

    baseline_obj = FiberImage(baseline,
                              camera=cam,
                              pixel_size=im_obj.pixel_size)
    baseline_obj.save_image(image_file(folder, test, cam))
    baseline_obj.save_object(object_file(folder, test, cam))
Example #9
0
            else:
                for i in xrange(NUM_IMAGES):
                    save_objects(i, cam, method)

        for i in xrange(NUM_IMAGES):
            obj_file = cam + '_obj_' + str(i).zfill(3) + '.pkl'

            print 'loading ' + cam + '_' + str(i).zfill(3)
            obj = FiberImage(FOLDER + obj_file)
            data[cam].center.append(obj.get_fiber_center(method=method, units='microns'))
            data[cam].centroid.append(obj.get_fiber_centroid(method=method, units='microns'))
            data[cam].x_diff.append(data[cam].centroid[-1].x - data[cam].center[-1].x)
            data[cam].y_diff.append(data[cam].centroid[-1].y - data[cam].center[-1].y)
            data[cam].diameter.append(obj.get_fiber_diameter(method=method, units='microns'))
            data[cam].time.append(obj.date_time)
            obj.save_object(FOLDER + obj_file)
            if cam == 'in':
                data['spot'].center.append(obj.get_fiber_center(method='gaussian', units='microns'))
                data['spot'].centroid.append(obj.get_fiber_centroid(method='gaussian', units='microns'))
                data['spot'].x_diff.append(data['spot'].center[-1].x - data[cam].center[-1].x)
                data['spot'].y_diff.append(data['spot'].center[-1].y - data[cam].center[-1].y)
                data['spot'].diameter.append(obj.get_fiber_diameter(method='gaussian', units='microns'))
                data['spot'].time.append(obj.date_time)
                obj.save_object(FOLDER + obj_file)

    if 'in' in CAMS:
        CAMS += ['spot']

    for cam in CAMS:
        init_x_diff = np.copy(data[cam].x_diff[0])
        init_y_diff = np.copy(data[cam].y_diff[0])
                for i in xrange(NUM_IMAGES):
                    save_objects(i, cam, method)

        for i in xrange(NUM_IMAGES):
            obj_file = cam + '_obj_' + str(i).zfill(3) + '.pkl'

            print 'loading ' + cam + '_' + str(i).zfill(3)
            obj = FiberImage(FOLDER + obj_file)
            data[cam].center.append(obj.get_fiber_center(method=method, **OPTIONS))
            data[cam].centroid.append(obj.get_fiber_centroid(method=method, **OPTIONS))
            data[cam].x_diff.append(data[cam].centroid[-1].x - data[cam].center[-1].x)
            data[cam].y_diff.append(data[cam].centroid[-1].y - data[cam].center[-1].y)
            # data[cam].x_diff.append(data[cam].centroid[-1].x)
            # data[cam].y_diff.append(data[cam].centroid[-1].y)
            data[cam].diameter.append(obj.get_fiber_diameter(method=method, **OPTIONS))
            data[cam].time.append(obj.date_time)
            obj.save_object(FOLDER + obj_file)

        avg_x_diff = np.median(data[cam].x_diff)
        avg_y_diff = np.median(data[cam].y_diff)
        init_time = np.copy(data[cam].time[0])
        for i in xrange(NUM_IMAGES):
            data[cam].x_diff[i] -= avg_x_diff
            data[cam].y_diff[i] -= avg_y_diff
            data[cam].time[i] -= init_time
            data[cam].time[i] = data[cam].time[i].total_seconds() / 60.0
        plot_stability(data[cam], cam)
        plt.savefig(FOLDER + cam + '_stability.png')
        plot_stability_binned(data[cam], cam, BIN_SIZE)
        plt.savefig(FOLDER + cam + '_stability_binned.png')
from fiber_properties import FiberImage

# image = 'C:/Libraries/Box Sync/ExoLab/Fiber_Characterization/Image Analysis/data/' \
#         + 'modal_noise/coupled_fibers/200-200um_test2/agitated_both/nf_obj.pkl'
image = 'C:/Libraries/Box Sync/ExoLab/Fiber_Characterization/Image Analysis/data/modal_noise/Kris_data/rectangular_100x300um/coupled_agitation/nf_obj.pkl'


im_obj = FiberImage(image)
# im_obj.get_modal_noise(method='fft', new=True, show_image=True)
im_obj.set_modal_noise(method='filter', new=True, show_image=False, kernel_size=31)
# print im_obj.get_modal_noise(method='filter')
im_obj.save_object(image)
from fiber_properties import FiberImage

# image = 'C:/Libraries/Box Sync/ExoLab/Fiber_Characterization/Image Analysis/data/' \
#         + 'modal_noise/coupled_fibers/200-200um_test2/agitated_both/nf_obj.pkl'
image = 'C:/Libraries/Box Sync/ExoLab/Fiber_Characterization/Image Analysis/data/modal_noise/Kris_data/rectangular_100x300um/coupled_agitation/nf_obj.pkl'

im_obj = FiberImage(image)
# im_obj.get_modal_noise(method='fft', new=True, show_image=True)
im_obj.set_modal_noise(method='filter',
                       new=True,
                       show_image=False,
                       kernel_size=31)
# print im_obj.get_modal_noise(method='filter')
im_obj.save_object(image)