This commit is contained in:
gac-x11ma
2022-12-23 10:14:53 +01:00
parent ea61419b20
commit c22008e50e
25 changed files with 1057 additions and 881 deletions
+11 -10
View File
@@ -36,10 +36,15 @@ def load_corr_stack(title="Corr", show=False):
file_list.append("{images}/TestObjAligner_corr/i210517_0" + str(index) + "#001.tif")
return load_stack(title, file_list, show)
def instantiate_dynamic_class(name):
if get_context().getPluginManager().getDynamicClass(name) is None:
get_context().getPluginManager().loadInitializePlugin(name + ".java")
return get_context().getClassByName(name).newInstance()
def complex_edge_filtering(imp, complex=True, g_sigma=3.0, g_resolution=1e-4, show=False, java_code=False):
if java_code:
get_context().getPluginManager().loadInitializePlugin("Align_ComplexEdgeFiltering.java")
complex_edge_filter = get_context().getClassByName("Align_ComplexEdgeFiltering").newInstance()
complex_edge_filter = instantiate_dynamic_class("Align_ComplexEdgeFiltering")
complex_edge_filter.setup(str(g_sigma)+","+str(complex)+","+str(show), imp) #Gaussian blur radius, Complex (True) or Real (False), show dialog = False
complex_edge_filter.run(imp.getProcessor())
return complex_edge_filter.output
@@ -151,8 +156,7 @@ class TranslationFilter(ExtendedPlugInFilter):
def translate(stack, shifts, show=False, java_code=False):
WindowManager.setTempCurrentImage(stack)
if java_code:
get_context().getPluginManager().loadInitializePlugin("Align_TranslationFilter.java")
translation_filter = get_context().getClassByName("Align_TranslationFilter").newInstance()
translation_filter = instantiate_dynamic_class("Align_TranslationFilter")
translation_filter.imp = imp
translation_filter.shifts = shifts
pfr = PlugInFilterRunner(translation_filter, "", "" )
@@ -170,13 +174,11 @@ def translate(stack, shifts, show=False, java_code=False):
def load_shifts(filename):
get_context().getPluginManager().loadInitializePlugin("ShiftsIO.java")
sio = get_context().getClassByName("ShiftsIO").newInstance()
sio = instantiate_dynamic_class("ShiftsIO")
return sio.load(expand_path(filename), "directshifts")
def save_shifts(filename, shifts):
get_context().getPluginManager().loadInitializePlugin("ShiftsIO.java")
sio = get_context().getClassByName("ShiftsIO").newInstance()
sio = instantiate_dynamic_class("ShiftsIO")
sio.save(expand_path(filename), shifts, "directshifts")
@@ -588,8 +590,7 @@ def calculate_shifts(imp_r, imp_i, roi, upscale_factor=100, reference_slide=1, j
if roi is None or roi.bounds.minX <0 or roi.bounds.minY<0 or roi.bounds.maxX>=imp_r.width or roi.bounds.maxY>=imp_r.height:
raise Exception("Invalid roi: " + str(roi))
if java_code:
get_context().getPluginManager().loadInitializePlugin("Align_ComputeShifts.java")
compute_shifts_filter = get_context().getClassByName("Align_ComputeShifts").newInstance()
compute_shifts_filter = instantiate_dynamic_class("Align_ComputeShifts")
compute_shifts_filter.setup(upscale_factor, False, imp_r, imp_i, 1, roi)
compute_shifts_filter.run(None)
return compute_shifts_filter.shifts