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()
if NEW_DATA: if PARALLELIZE: pool = Pool(processes=PROCESSES) pool.map(partial(save_objects, cam=cam, method=method), range(NUM_IMAGES)) 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:
from fiber_properties import FiberImage, image_list, show_image_array folder = '../data/scrambling/2016-08-05 Prototype Core Extension 1/' dark_folder = folder + 'Dark/' ambient_folder = folder + 'Ambient/' in_images = image_list(ambient_folder + 'in_') nf_images = image_list(ambient_folder + 'nf_') ff_images = image_list(ambient_folder + 'ff_') print 'input' for image in in_images: print FiberImage(image, camera='in', ambient=in_images).get_fiber_centroid(method='full', units='pixels') print print 'near field' for image in nf_images: nf_obj = FiberImage(image, camera='nf') print nf_obj.get_fiber_centroid(method='full', units='pixels') print print 'far field' for image in ff_images: ff_obj = FiberImage(image, camera='ff') print ff_obj.get_fiber_centroid(method='full', units='pixels')
if NEW_DATA: if PARALLELIZE: pool = Pool(processes=PROCESSES) pool.map(partial(save_objects, cam=cam, method=method), range(NUM_IMAGES)) 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, **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