import numpy as np from pyfpm.fpmmath import * import pyfpm.data as dt from pyfpm.data import save_yaml_metadata import pyfpm.local as local from pyfpm.coordinates import PlatformCoordinates # Simulation parameters CONFIG_FILE = '/home/lec/pyfpm/config.yaml' cfg = dt.load_config(CONFIG_FILE) client = local.SimClient(cfg=cfg) iterator = set_iterator(cfg) # pc = PlatformCoordinates(theta=0, phi=0, height=cfg.sample_height, cfg=cfg) image_dict = dict() fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(25, 15)) fig.show() for index, theta, phi in iterator: # pupil = generate_pupil(theta, phi, power, cfg.video_size, # cfg.wavelength, cfg.pixel_size, cfg.objective_na) pc.set_coordinates(theta=theta, phi=phi, units='degrees') t_corr, p_corr = pc.source_coordinates(mode='angular') power = 100 im_array = client.acquire(t_corr, p_corr, power) image_dict[(theta, phi)] = im_array ax1.cla(), ax2.cla()
import itertools as it from pyfpm import web from pyfpm.reconstruct import fpm_reconstruct from pyfpm.fpmmath import set_iterator from pyfpm.data import save_yaml_metadata import pyfpm.data as dt from pyfpm.coordinates import PlatformCoordinates # Simulation parameters cfg = dt.load_config() samples, comp_cfg = dt.open_sampled('2017-05-26_152307.npy') background, comp_cfg = dt.open_sampled('2017-05-26_145449_blank.npy') # Connect to a web client running serve_microscope.py pc = PlatformCoordinates(theta=0, phi=0, height=cfg.sample_height, cfg=cfg) pc.generate_model(cfg.plat_model) iterator = set_iterator(cfg) # reconstruction dx = cfg.patch_size[0] x_range = range(0, cfg.video_size[1], dx)[:-1] y_range = range(0, cfg.video_size[0], dx)[:-1] # for i, point in enumerate(it.product(x_range, y_range)): # init_point = [point[0], point[1]] # rec, phase = fpm_reconstruct(samples, background, iterator, init_point, # cfg=cfg, debug=False) # misc.imsave('./misc/ph'+str(i)+'.png', phase) # misc.imsave('./misc/im'+str(i)+'.png', rec) rec, phase = fpm_reconstruct(samples, background, iterator, [90, 80], cfg=comp_cfg, debug=True)
import numpy as np import time import yaml import pyfpm.fpmmath as fpm from pyfpm.data import save_yaml_metadata # from pyfpm.data import json_savemeta, json_loadmeta import pyfpm.data as dt from pyfpm.coordinates import PlatformCoordinates from pyfpm import implot import pyfpm.local as local # Simulation parameters CONFIG_FILE = './etc/config.yaml' cfg = dt.load_config(CONFIG_FILE) simclient = local.SimClient(cfg=cfg) pc = PlatformCoordinates(theta=0, phi=0, height=cfg.sample_height, cfg=cfg) in_file = os.path.join(cfg.output_sample, '2017-04-12_182910.npy') ss_dict = np.load(cfg.output_sample+'2017-04-12_182910ss_dict.npy')[()] power_dict = np.load(cfg.output_sample+'2017-04-12_182910power_dict.npy')[()] iterator = fpm.set_iterator(cfg) image_dict = np.load(in_file)[()] fig, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(25, 15)) plt.grid(False) fig.show() cum_diff = 0 for index, theta, phi in iterator: # Coordinates math
from pyfpm import web from pyfpm.fpmmath import set_iterator, translate, adjust_shutter_speed from pyfpm.data import save_yaml_metadata import pyfpm.data as dt from pyfpm.coordinates import PlatformCoordinates # Simulation parameters cfg = dt.load_config() out_file = dt.generate_out_file(cfg.output_sample) in_file = os.path.join(cfg.output_sample, './2017-03-23_19:04:01.npy') # Connect to a web client running serve_microscope.py client = web.Client(cfg.server_ip) pc = PlatformCoordinates() pc.generate_model(cfg.plat_model) iterator = set_iterator(cfg) # Start image acquisition image_dict = dict() fig, ax = plt.subplots(1, 1, figsize=(25, 15)) fig.show() # Saving other parameters phi_min, phi_max, phi_step = cfg.phi theta_min, theta_max, theta_step = cfg.theta phi_range = range(phi_min, theta_min, phi_step) theta_range = range(theta_min, theta_max, theta_step) ss_dict = dict.fromkeys(list(it.product(theta_range, phi_range))) power_dict = dict.fromkeys(list(it.product(theta_range, phi_range)))
import pyfpm.fpmmath as fpm from pyfpm import web from pyfpm.fpmmath import set_iterator import pyfpm.data as dt from pyfpm.coordinates import PlatformCoordinates # Simulation parameters samples, comp_cfg = dt.open_sampled('2017-05-26_145449.npy') background, comp_cfg = dt.open_sampled('2017-05-26_145449_blank.npy') # 150543 cfg = dt.load_config() out_file = dt.generate_out_file(cfg.output_sample) # Connect to a web client running serve_microscope.py client = web.Client(cfg.server_ip) pc = PlatformCoordinates(cfg=cfg) pc.generate_model(cfg.plat_model) iterator = set_iterator(cfg) # Start analysis fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(25, 15)) plt.grid(False) fig.show() image_dict = dict() iterator = fpm.set_iterator(cfg) corr_ims = list() for index, theta, shift in iterator: print(theta, shift) time.sleep(.5)
# ns = 0.3 # Complement of the overlap between sampling pupils # Simulation parameters image_size = cfg.video_size wavelength = cfg.wavelength pixelsize = cfg.pixel_size # See jupyter notebook phi_min, phi_max, phi_step = cfg.phi theta_min, theta_max, theta_step = cfg.theta pupil_radius = cfg.pupil_size / 2 mode = cfg.task itertype = cfg.sweep server_ip = cfg.server_ip # Connect to a web client running serve_microscope.py client = web.Client(server_ip) pc = PlatformCoordinates(theta=0, phi=0, height=cfg.sample_height, cfg=cfg) pc.generate_model(cfg.plat_model) # Obs: pup_rad = nx*NA/n where n is the refraction index of the medium # Opens input image as if it was sampled at pupil_pos = (0,0) with high # resolution details iterator = set_iterator(cfg) task = 'reconstruct' if task is 'acquire': image_dict = dict() save_yaml_metadata(out_file, cfg) for index, theta, phi, power in iterator: pc.set_coordinates(theta, phi, units='degrees') [theta_plat, phi_plat, shift, power] = pc.parameters_to_platform() print("parameters to platform", theta_plat, phi_plat, shift, power) img = client.acquire(theta_plat, phi_plat, shift, power)
import numpy as np import time import yaml import itertools as it import pyfpm.fpmmath as fpm from pyfpm.data import save_yaml_metadata # from pyfpm.data import json_savemeta, json_loadmeta import pyfpm.data as dt from pyfpm.coordinates import PlatformCoordinates import pyfpm.local as local # Simulation parameters CONFIG_FILE = 'config.yaml' cfg = dt.load_config(CONFIG_FILE) simclient = local.SimClient(cfg=cfg) pc = PlatformCoordinates(theta=0, phi=0, height=cfg.sample_height, cfg=cfg) in_file = os.path.join(cfg.output_sample, '2017-04-05_161727.npy') image_dict = np.load(in_file)[()] def change_pc_parameters(pc, height, ptilt, sc, toff): pc.height = height pc.platform_tilt = ptilt pc.source_center = sc #[xcoord, ycoord] of the calibrated center tcorr, pcorr = pc.source_coordinates(mode='angular') tcorr += toff return tcorr, pcorr
import numpy as np import itertools as it import pygame from pyfpm import web from pyfpm.fpmmath import set_iterator import pyfpm.data as dt from pyfpm.coordinates import PlatformCoordinates # Simulation parameters cfg = dt.load_config() out_file = dt.generate_out_file(cfg.output_sample) # Connect to a web client running serve_microscope.py client = web.Client(cfg.server_ip) pc = PlatformCoordinates(cfg=cfg) pc.generate_model(cfg.plat_model) iterator = set_iterator(cfg) # Start image acquisition # for index, theta, phi in iterator: # print(theta, phi) # pc.set_coordinates(theta, phi, units='degrees') # [theta_plat, phi_plat, shift_plat, power] = pc.parameters_to_platform() # client.just_move(theta_plat, phi_plat, shift_plat, power=0) # Joystick move def move_client(pc, client, tpsp): pc.set_coordinates(theta=tpsp[0], phi=tpsp[1],
import yaml import matplotlib.pyplot as plt import numpy as np import time import itertools as it from pyfpm.coordinates import PlatformCoordinates import pyfpm.data as dt CONFIG_FILE = 'config.yaml' config_dict = yaml.load(open(CONFIG_FILE, 'r')) cfg = dt.load_config(CONFIG_FILE) pc = PlatformCoordinates(theta=0, phi=0, height=cfg.sample_height, cfg=cfg) phi_min, phi_max, phi_step = cfg.phi theta_min, theta_max, theta_step = cfg.theta theta_range = range(theta_min, theta_max, theta_step) # phi_range = range(phi_min, phi_max, phi_step) phi_range = [20] phi_corr_list = list() theta_corr_list = list() pc.platform_tilt = [0, 5] pc.source_center = [0, 3] #[xcoord, ycoord] of the calibrated center pc.source_tilt = [0, 0] pc.height = 97 for t, p in it.product(theta_range, phi_range): pc.set_coordinates(theta=t, phi=p, units='degrees') t_corr, p_corr = pc.source_coordinates(mode='angular') phi_corr_list.append(p_corr)
import matplotlib matplotlib.use('TkAgg') import matplotlib.pyplot as plt import matplotlib.cm as cm import numpy as np from scipy import signal import pyfpm.fpmmath as fpm import pyfpm.data as dt from pyfpm.coordinates import PlatformCoordinates import pyfpm.local as local # Simulation parameters cfg = dt.load_config() simclient = local.SimClient(cfg=cfg) pc = PlatformCoordinates(theta=0, phi=0, height=cfg.sample_height, cfg=cfg) iterator = fpm.set_iterator(cfg) fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(25, 15)) plt.grid(False) fig.show() theta, phi = [0, 5] sim_im_array = simclient.acquire(theta, phi, power=100) ps_req = fpm.pixel_size_required(cfg.phi[1], cfg.wavelength, cfg.objective_na) original_shape = np.shape(sim_im_array) scale_factor = cfg.pixel_size / ps_req processing_shape = np.array(original_shape) * scale_factor pupil_radius = fpm.calculate_pupil_radius(cfg.objective_na,