Skip to content
Snippets Groups Projects
Commit a70b76b6 authored by Laurent Guerard's avatar Laurent Guerard
Browse files

Fix resizing threshold and add log

parent aa9f80b0
Branches dev
No related tags found
No related merge requests found
......@@ -47,7 +47,7 @@ import sys
# python imports
import time
from ch.epfl.biop.ij2command import Labels2CompositeRois
from ch.epfl.biop.ij2command import Labels2Rois
# TrackMate imports
from fiji.plugin.trackmate import Logger, Model, Settings, TrackMate
......@@ -743,21 +743,25 @@ if __name__ == "__main__":
# image (pre)processing and segmentation (-> ROIs)# imp, firstC, lastC, firstZ,
# lastZ, firstT, lastT
misc.timed_log("Getting the membrane channel")
membrane = Duplicator().run(
raw, membrane_channel, membrane_channel, 1, 1, 1, 1
)
if (membrane.getWidth() * membrane.getHeight()) > 100000:
while (membrane.getWidth() * membrane.getHeight()) > 100000000:
misc.timed_log("Image is too large, resizing to speed up processing")
membrane = membrane.resize(
membrane.getWidth() / 2,
membrane.getHeight() / 2,
"none",
)
misc.timed_log("Pre processing the image for segmentation")
imp_bgd_corrected = do_background_correction(membrane)
IJ.run("Conversions...", "scale")
IJ.run(imp_bgd_corrected, "16-bit", "")
misc.timed_log("Running the segmentation")
imp_result = run_tm(
imp_bgd_corrected,
1,
......@@ -769,25 +773,31 @@ if __name__ == "__main__":
perimeter_thresh=[minPer, maxPer],
)
misc.timed_log("Resizing the segmentation results (if needed)")
imp_result = imp_result.resize(
raw.getWidth(),
raw.getHeight(),
"none",
)
misc.timed_log("Saving the segmentation results")
IJ.saveAs(
imp_result,
"Tiff",
os.path.join(
output_dir,
raw_image_title + "_" + str(serie_index) + "_all_fibers_binary",
raw_image_title + "_" + str(serie_index) + "_all_fibers_labels",
),
)
command.run(Labels2CompositeRois, True, "rm", rm, "imp", imp_result).get()
misc.timed_log("Getting the ROIs")
command.run(Labels2Rois, True, "rm", rm, "imp", imp_result).get()
misc.timed_log("Enlarging and renumbering the ROIs")
enlarge_all_rois(enlarge_radius, rm, raw_image_calibration.pixelWidth)
renumber_rois(rm)
misc.timed_log("Saving the ROIs")
save_all_rois(
rm,
os.path.join(
......@@ -798,11 +808,12 @@ if __name__ == "__main__":
# check for positive fibers
if fiber_channel > 0:
misc.timed_log("Checking for positive fibers")
if min_fiber_intensity == 0:
min_fiber_intensity = get_threshold_from_method(
raw, fiber_channel, "Mean"
)[0]
IJ.log("automatic intensity threshold detection: True")
misc.timed_log("automatic intensity threshold detection: True")
IJ.log("fiber intensity threshold: " + str(min_fiber_intensity))
change_all_roi_color(rm, "blue")
......@@ -810,6 +821,7 @@ if __name__ == "__main__":
raw, fiber_channel, rm, min_fiber_intensity
)
change_subset_roi_color(rm, positive_fibers, "magenta")
misc.timed_log("Saving positive fibers")
save_selected_rois(
rm,
positive_fibers,
......@@ -823,6 +835,7 @@ if __name__ == "__main__":
)
# measure size & shape, save
misc.timed_log("Measuring the ROIs")
IJ.run(
"Set Measurements...",
"area perimeter shape feret's redirect=None decimal=4",
......@@ -841,6 +854,7 @@ if __name__ == "__main__":
add_results(rt, "MHC Positive Fibers (magenta)", positive_fibers, "YES")
# print(rt.size())
misc.timed_log("Saving the measurements")
rt.save(
os.path.join(
output_dir,
......@@ -851,7 +865,11 @@ if __name__ == "__main__":
)
)
# print("saved the all_fibers_results.csv")
# dress up the original image, save a overlay-png, present original to the user
# dress up the original image, save a overlay-png, present original
# to the user
misc.timed_log(
"Improve the contrast and show the results to save an overlay image"
)
rm.show()
raw.show()
show_all_rois_on_image(rm, raw)
......@@ -877,6 +895,7 @@ if __name__ == "__main__":
raw.setDisplayMode(IJ.GRAYSCALE)
show_all_rois_on_image(rm, raw)
misc.timed_log("Save log")
IJ.selectWindow("Log")
IJ.saveAs(
"Text",
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment