Beispiel #1
0
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()
Beispiel #2
0
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)
Beispiel #3
0
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
Beispiel #4
0
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)))
Beispiel #5
0
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)
Beispiel #6
0
# 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)
Beispiel #7
0
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

Beispiel #8
0
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],
Beispiel #9
0
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)
Beispiel #10
0
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,