def testMethod(method): tol = 1 test_range = 1 factor = 1.0 y_err = [] x_err = [] d_err = [] for i in xrange(10): image_height = 2000 image_width = 2000 x0 = image_width * 0.5 + np.random.rand() y0 = image_height * 0.5 + np.random.rand() radius = min(image_height, image_width) * 0.25 + np.random.rand() amp = 10000 dark_level = 500 num_images = 1 num_darks = 10 mesh_grid = np.meshgrid(np.arange(image_width), np.arange(image_height)) dark_image = [dark_level * (np.random.rand(image_height, image_width) + 0.5) for i in xrange(num_darks)] # noise = [0 for i in xrange(num_images)] noise = [np.random.rand(image_height, image_width) - 0.5 for i in xrange(num_images)] if method == 'edge' or method == 'radius': test_array = amp * circle_array(mesh_grid, x0, y0, radius, res=10) + dark_level test_array = [test_array + np.sqrt(test_array) * noise[i] * 30 for i in xrange(num_images)] elif method == 'gaussian': test_array = gaussian_array(mesh_grid, x0, y0, radius, amp, dark_level).reshape(image_height, image_width) test_array = [test_array + np.sqrt(test_array) * noise[i] * 30 for i in xrange(num_images)] im_obj = FiberImage(test_array, dark=dark_image, magnification=1, pixel_size=1) center_y, center_x, diameter = im_obj.get_fiber_data(method=method, units='pixels', tol=tol, test_range=test_range) y_err.append(center_y - y0) x_err.append(center_x - x0) d_err.append(diameter - radius*2) return y_err, x_err, d_err
name = 'Near Field' method = 'radius' if camera == 'ff': name = 'Far Field' method = 'gaussian' print name data_dict[camera] = {} for test in TESTS: data_dict[camera][test] = deepcopy(base_dict) for i in xrange(NUM_IMAGES): data_FOLDER = FOLDER[test] + camera + '_' + str(i).zfill(3) + '_data.p' obj = FiberImage(image_input=None, image_data=data_FOLDER) y0, x0, diameter = obj.get_fiber_data(method=method, units='microns') if camera == 'in': gauss_y, gauss_x = obj.get_fiber_center(method='gaussian', units='microns') data_dict[camera][test]['x0'].append(gauss_x-x0) data_dict[camera][test]['y0'].append(gauss_y-y0) else: data_dict[camera][test]['x0'].append(x0) data_dict[camera][test]['y0'].append(y0) data_dict[camera][test]['diameter'].append(diameter) data_dict[camera][test]['time'].append(obj.get_image_info('date_time')) for prop in ['x0', 'y0', 'diameter', 'time']: data_dict[camera][test][prop] = (np.array(data_dict[camera][test][prop]) - data_dict[camera][test][prop][0]) data_dict[camera][test]['r0'] = np.sqrt(data_dict[camera][test]['x0']**2 + data_dict[camera][test]['y0']**2)
def testMethod(method): tol = 1 test_range = 1 factor = 1.0 y_err = [] x_err = [] d_err = [] for i in xrange(10): image_height = 2000 image_width = 2000 x0 = image_width * 0.5 + np.random.rand() y0 = image_height * 0.5 + np.random.rand() radius = min(image_height, image_width) * 0.25 + np.random.rand() amp = 10000 dark_level = 500 num_images = 1 num_darks = 10 mesh_grid = np.meshgrid(np.arange(image_width), np.arange(image_height)) dark_image = [ dark_level * (np.random.rand(image_height, image_width) + 0.5) for i in xrange(num_darks) ] # noise = [0 for i in xrange(num_images)] noise = [ np.random.rand(image_height, image_width) - 0.5 for i in xrange(num_images) ] if method == 'edge' or method == 'radius': test_array = amp * circle_array(mesh_grid, x0, y0, radius, res=10) + dark_level test_array = [ test_array + np.sqrt(test_array) * noise[i] * 30 for i in xrange(num_images) ] elif method == 'gaussian': test_array = gaussian_array(mesh_grid, x0, y0, radius, amp, dark_level).reshape( image_height, image_width) test_array = [ test_array + np.sqrt(test_array) * noise[i] * 30 for i in xrange(num_images) ] im_obj = FiberImage(test_array, dark=dark_image, magnification=1, pixel_size=1) center_y, center_x, diameter = im_obj.get_fiber_data( method=method, units='pixels', tol=tol, test_range=test_range) y_err.append(center_y - y0) x_err.append(center_x - x0) d_err.append(diameter - radius * 2) return y_err, x_err, d_err
method = 'radius' if camera == 'ff': name = 'Far Field' method = 'gaussian' print name data_dict[camera] = {} for test in TESTS: data_dict[camera][test] = deepcopy(base_dict) for i in xrange(NUM_IMAGES): data_FOLDER = FOLDER[test] + camera + '_' + str(i).zfill( 3) + '_data.p' obj = FiberImage(image_input=None, image_data=data_FOLDER) y0, x0, diameter = obj.get_fiber_data(method=method, units='microns') if camera == 'in': gauss_y, gauss_x = obj.get_fiber_center(method='gaussian', units='microns') data_dict[camera][test]['x0'].append(gauss_x - x0) data_dict[camera][test]['y0'].append(gauss_y - y0) else: data_dict[camera][test]['x0'].append(x0) data_dict[camera][test]['y0'].append(y0) data_dict[camera][test]['diameter'].append(diameter) data_dict[camera][test]['time'].append( obj.get_image_info('date_time')) for prop in ['x0', 'y0', 'diameter', 'time']: data_dict[camera][test][prop] = ( np.array(data_dict[camera][test][prop]) -