Files
x11ma/script/test/TestShifts.py
2022-11-09 15:03:09 +01:00

91 lines
2.4 KiB
Python

from ijutils import Roi
#from sim import *
import traceback
run ("imaging/shifts")
"""
roi=Roi(256,0,128,128)
stack = load_test_stack(show=False, size=9)
ipr, ipi = complex_edge_filtering(stack, show=False)
shifts = (ipr, ipi, roi, java_code=True)
#shifts= load_shifts("{images}/TestObjAligner/shifts.mat")
#stack = load_test_stack(show=True)
r=translate(stack, shifts, show=True)
ref = "{images}/TestObjAligner/i210517_040#001.tif"
img = "{images}/TestObjAligner/i210517_041#001.tif"
#ref = stack.getStack().getProcessor(1)
#img = stack.getStack().getProcessor(2)
#roi=Roi(0,0,32, 32)
#ref=image2.data.getRoi(Rectangle(Point(0,0),image.data.getSize(False)))
#time.sleep(0.2)
#img =image.data
"""
def eval_shift(roi, obj=None, stiga=None, stigb=None, wait=3.0):
ref = image.data
if obj is not None:
objective.write(obj)
if stiga is not None:
obj_stig_a.write(stiga)
if stigb is not None:
obj_stig_b.write(stigb)
time.sleep(wait)
image.waitNext(10000)
img = image.data
xoff, yoff, error, diffphase, _ = calculate_shift(ref,img, roi)
print "xoff: ", xoff
print "yoff: ", yoff
print "error: ", error
print "diffphase: ", diffphase
"""
roi=Roi(300,240,64,64)
eval_shift(roi, obj=1493.5)
eval_shift(roi, obj=1494.8)
"""
def eval_shift_obj(roi, obj1, obj2, wait=3.0):
cur = objective.read()
if abs(obj1-cur) > 0.001:
objective.write(obj1)
time.sleep(wait)
image.waitNext(10000)
ref = image.data
objective.write(obj2)
time.sleep(wait)
image.waitNext(10000)
img = image.data
xoff, yoff, error, diffphase, _ = calculate_shift(ref,img, roi)
print "Ref obj: ", obj1, " img obj: ", obj2
print "xoff: ", xoff
print "yoff: ", yoff
print "error: ", error
print "diffphase: ", diffphase
def get_roi_overlay():
pn=show_panel(image)
for ov in pn.overlays:
if type(ov) is Overlays.Rect:
return ov
return None
def get_roi():
#return Roi(300,240,64,64)
roi_ov=get_roi_overlay();
return Roi(roi_ov.position.x, roi_ov.position.y, roi_ov.width, roi_ov.height)
def set_roi_size(size):
pn=show_panel(image)
roi = get_roi_overlay()
if roi is None:
raise Exception("No ROI defined")
roi.width = size
roi.height = size
pn.refresh()
#set_roi_size(128)
eval_shift_obj(get_roi(), 1494.8, 1493.5)
eval_shift_obj(get_roi(), 1493.5, 1494.8)