def run(self): tiff_ring_reader = TiffRingReader() nr_filters = len(sc.other["RECORDED_WAVELENGTHS"]) # analyze all the first image files image_files = get_image_files_from_folder(self.flatfield_folder) image_files = filter(lambda image_name: "F0" in image_name, image_files) # helper function to take maximum of two images def maximum_of_two_images(image_1, image_name_2): image_2 = tiff_ring_reader.read( os.path.join(self.flatfield_folder, image_name_2), nr_filters)[0].get_image() return np.maximum(image_1, image_2) # now reduce to maximum of all the single images flat_maximum = reduce(lambda x, y: maximum_of_two_images(x, y), image_files, 0) msi = Msi(image=flat_maximum) msi.set_wavelengths(sc.other["RECORDED_WAVELENGTHS"]) # write flatfield as nrrd writer = NrrdWriter(msi) writer.write(self.output().path)
def test_imageWriterCreatesCorrectFile(self): writer = NrrdWriter(self.msi) writer.write(self.fileUriToWrite) reader = NrrdReader() msi = reader.read(self.fileUriToWrite) self.assertTrue(msi == helpers.getFakeMsi(), "image correctly written and read")
def test_write_one_d_image_works(self): writer = NrrdWriter(self.msi) msimani.calculate_mean_spectrum(self.msi) writer.write(self.fileUriToWrite) reader = NrrdReader() msi = reader.read(self.fileUriToWrite) np.testing.assert_array_equal(msi.get_image(), np.array([1, 2, 3, 4, 5]), "1d image correctly written and read")
def run(self): tiff_ring_reader = TiffRingReader() nr_filters = len(sc.other["RECORDED_WAVELENGTHS"]) # analyze all the first image files image_files = get_image_files_from_folder(self.dark_folder, suffix="F0.tiff") # returns the mean dark image vector of all inputted dark image # overly complicated TODO SW: make this simple code readable. dark_means = map( lambda image_name: msimani.calculate_mean_spectrum( tiff_ring_reader.read( os.path.join(self.dark_folder, image_name), nr_filters)[0] ), image_files) dark_means_sum = reduce(lambda x, y: x + y.get_image(), dark_means, 0) final_dark_mean = dark_means_sum / len(dark_means) msi = Msi(image=final_dark_mean) msi.set_wavelengths(sc.other["RECORDED_WAVELENGTHS"]) # write flatfield as nrrd writer = NrrdWriter(msi) writer.write(self.output().path)
def run(self): tiff_ring_reader = TiffRingReader() nr_filters = len(sc.other["RECORDED_WAVELENGTHS"]) # analyze all the first image files image_files = get_image_files_from_folder(self.dark_folder, suffix="F0.tiff") # returns the mean dark image vector of all inputted dark image # overly complicated TODO SW: make this simple code readable. dark_means = map(lambda image_name: msimani.calculate_mean_spectrum( tiff_ring_reader.read(os.path.join(self.dark_folder, image_name), nr_filters)[0]), image_files) dark_means_sum = reduce(lambda x, y: x+y.get_image(), dark_means, 0) final_dark_mean = dark_means_sum / len(dark_means) msi = Msi(image=final_dark_mean) msi.set_wavelengths(sc.other["RECORDED_WAVELENGTHS"]) # write flatfield as nrrd writer = NrrdWriter(msi) writer.write(self.output().path)
def run(self): tiff_ring_reader = TiffRingReader() nr_filters = len(sc.other["RECORDED_WAVELENGTHS"]) # analyze all the first image files image_files = get_image_files_from_folder(self.flatfield_folder) image_files = filter(lambda image_name: "F0" in image_name, image_files) # helper function to take maximum of two images def maximum_of_two_images(image_1, image_name_2): image_2 = tiff_ring_reader.read(os.path.join(self.flatfield_folder, image_name_2), nr_filters)[0].get_image() return np.maximum(image_1, image_2) # now reduce to maximum of all the single images flat_maximum = reduce(lambda x, y: maximum_of_two_images(x, y), image_files, 0) msi = Msi(image=flat_maximum) msi.set_wavelengths(sc.other["RECORDED_WAVELENGTHS"]) # write flatfield as nrrd writer = NrrdWriter(msi) writer.write(self.output().path)
def test_imageWriterCreatesFile(self): writer = NrrdWriter(self.msi) writer.write(self.fileUriToWrite) self.assertTrue(os.path.isfile(self.fileUriToWrite), "file was written to disk")