def test_multiple_crop_and_uncrop_nearest_outside(self): """ test combination of multiple crop """ shape = [10, 11, 5] img_in = np.random.random(shape) crinfo1 = [[2, 8], [3, 9], [2, 5]] # crinfo2 = [[2, 5], [1, 5], [1, 2]] img_cropped = ima.crop(img_in, crinfo1) # img_cropped = imma.crop(img_cropped, crinfo2) # crinfo_combined = imma.combinecrinfo(crinfo1, crinfo2) img_uncropped = ima.uncrop(img_cropped, crinfo1, shape, outside_mode="nearest") # import sed3 # ed = sed3.sed3(img_uncropped) # ed.show() self.assertTrue(img_uncropped[4, 4, 3] == img_in[4, 4, 3]) self.assertTrue(img_uncropped[crinfo1[0][0], 5, 3] == img_uncropped[0, 5, 3], msg="pixels under crop") self.assertTrue(img_uncropped[5, crinfo1[1][0], 3] == img_uncropped[5, 0, 3], msg="pixels under crop") self.assertTrue(img_uncropped[7, 3, crinfo1[2][0]] == img_uncropped[7, 3, 0], msg="pixels under crop") self.assertTrue(img_uncropped[crinfo1[0][1] - 1, 5, 3] == img_uncropped[-1, 5, 3], msg="pixels over crop") self.assertTrue(img_uncropped[5, crinfo1[1][1] - 1, 3] == img_uncropped[5, -1, 3], msg="pixels over crop") self.assertTrue(img_uncropped[7, 3, crinfo1[2][1] - 1] == img_uncropped[7, 3, -1], msg="pixels over crop") # self.assertTrue(img_uncropped[crinfo1[0][1], 5 , 3] == img_uncropped[0, 5, 3], msg="pixels over crop") # self.assertTrue(img_uncropped[crinfo1[1][1], 5 , 3] == img_uncropped[1, 5, 3], msg="pixels over crop") # self.assertTrue(img_uncropped[crinfo1[2][1], 5 , 3] == img_uncropped[2, 5, 3], msg="pixels over crop") self.assertEquals(img_in.shape, img_uncropped.shape)
def test_uncrop_with_none_crinfo(self): shape = [10, 10, 5] orig_shape = [15, 13, 7] img_in = np.random.random(shape) img_uncropped = ima.uncrop(img_in, crinfo=None, orig_shape=orig_shape) self.assertTrue(img_uncropped[-1, -1, -1] == 0) self.assertTrue(img_uncropped[4, 4, 3] == img_in[4, 4, 3])
def test_multiple_crop_and_uncrop_nearest_outside(self): """ test combination of multiple crop """ shape = [10, 11, 5] img_in = np.random.random(shape) crinfo1 = [[2, 8], [3, 9], [2, 5]] # crinfo2 = [[2, 5], [1, 5], [1, 2]] img_cropped = ima.crop(img_in, crinfo1) # img_cropped = imma.crop(img_cropped, crinfo2) # crinfo_combined = imma.combinecrinfo(crinfo1, crinfo2) img_uncropped = ima.uncrop(img_cropped, crinfo1, shape, outside_mode="nearest") # import sed3 # ed = sed3.sed3(img_uncropped) # ed.show() self.assertTrue(img_uncropped[4, 4, 3] == img_in[4, 4, 3]) self.assertTrue( img_uncropped[crinfo1[0][0], 5, 3] == img_uncropped[0, 5, 3], msg="pixels under crop", ) self.assertTrue( img_uncropped[5, crinfo1[1][0], 3] == img_uncropped[5, 0, 3], msg="pixels under crop", ) self.assertTrue( img_uncropped[7, 3, crinfo1[2][0]] == img_uncropped[7, 3, 0], msg="pixels under crop", ) self.assertTrue( img_uncropped[crinfo1[0][1] - 1, 5, 3] == img_uncropped[-1, 5, 3], msg="pixels over crop", ) self.assertTrue( img_uncropped[5, crinfo1[1][1] - 1, 3] == img_uncropped[5, -1, 3], msg="pixels over crop", ) self.assertTrue( img_uncropped[7, 3, crinfo1[2][1] - 1] == img_uncropped[7, 3, -1], msg="pixels over crop", ) # self.assertTrue(img_uncropped[crinfo1[0][1], 5 , 3] == img_uncropped[0, 5, 3], msg="pixels over crop") # self.assertTrue(img_uncropped[crinfo1[1][1], 5 , 3] == img_uncropped[1, 5, 3], msg="pixels over crop") # self.assertTrue(img_uncropped[crinfo1[2][1], 5 , 3] == img_uncropped[2, 5, 3], msg="pixels over crop") self.assertEquals(img_in.shape, img_uncropped.shape)
def test_uncrop_with_start_point_crinfo(self): shape = [10, 10, 5] orig_shape = [15, 13, 7] img_in = np.random.random(shape) crinfo = [5, 2, 1] img_uncropped = ima.uncrop(img_in, crinfo=crinfo, orig_shape=orig_shape) self.assertTrue(img_uncropped[-1, -1, -1] == 0) self.assertTrue(img_uncropped[4 + 5, 4 + 2, 3 + 1] == img_in[4 , 4, 3])
def test_crop_and_uncrop(self): shape = [10, 10, 5] img_in = np.random.random(shape) crinfo = [[2, 8], [3, 9], [2, 5]] img_cropped = ima.crop(img_in, crinfo) img_uncropped = ima.uncrop(img_cropped, crinfo, shape) self.assertTrue(img_uncropped[4, 4, 3] == img_in[4, 4, 3])
def test_uncrop_with_start_point_crinfo(self): shape = [10, 10, 5] orig_shape = [15, 13, 7] img_in = np.random.random(shape) crinfo = [5, 2, 1] img_uncropped = ima.uncrop(img_in, crinfo=crinfo, orig_shape=orig_shape) self.assertTrue(img_uncropped[-1, -1, -1] == 0) self.assertTrue(img_uncropped[4 + 5, 4 + 2, 3 + 1] == img_in[4, 4, 3])
def test_random_multiple_crop_and_uncrop(self): """ test combination of multiple crop """ shape = np.random.randint(10, 30, 3) # shape = [10, 10, 5] img_in = np.random.random(shape) crinfo1 = [ sorted(np.random.randint(0, shape[0], 2)), sorted(np.random.randint(0, shape[1], 2)), sorted(np.random.randint(0, shape[2], 2)), ] crinfo2 = [ sorted(np.random.randint(0, shape[0], 2)), sorted(np.random.randint(0, shape[1], 2)), sorted(np.random.randint(0, shape[2], 2)), ] img_cropped = ima.crop(img_in, crinfo1) img_cropped = ima.crop(img_cropped, crinfo2) crinfo_combined = ima.combinecrinfo(crinfo1, crinfo2) img_uncropped = ima.uncrop(img_cropped, crinfo_combined, shape) logger.debug("shape " + str(shape)) logger.debug("crinfo_combined " + str(crinfo_combined)) logger.debug("img_cropped.shape" + str(img_cropped.shape)) logger.debug("img_uncropped.shape" + str(img_uncropped.shape)) self.assertEquals(img_in.shape, img_uncropped.shape) # sonda indexes inside cropped area # cr_com = np.asarray(crinfo_combined) # if np.all((cr_com[:, 1] - cr_com[:, 0]) > 1): if np.all(img_cropped.shape > 1): # sometimes the combination of crinfo has zero size in one dimension sonda = np.array([ np.random.randint(crinfo_combined[0][0], crinfo_combined[0][1] - 1), np.random.randint(crinfo_combined[1][0], crinfo_combined[1][1] - 1), np.random.randint(crinfo_combined[2][0], crinfo_combined[2][1] - 1), ]) sonda_intensity_uncropped = img_uncropped[sonda[0], sonda[1], sonda[2]] sonda_intensity_in = img_in[sonda[0], sonda[1], sonda[2]] self.assertEquals(sonda_intensity_in, sonda_intensity_uncropped)
def test_random_multiple_crop_and_uncrop(self): """ test combination of multiple crop """ shape = np.random.randint(10, 30, 3) # shape = [10, 10, 5] img_in = np.random.random(shape) crinfo1 = [ sorted(np.random.randint(0, shape[0], 2)), sorted(np.random.randint(0, shape[1], 2)), sorted(np.random.randint(0, shape[2], 2)) ] crinfo2 = [ sorted(np.random.randint(0, shape[0], 2)), sorted(np.random.randint(0, shape[1], 2)), sorted(np.random.randint(0, shape[2], 2)) ] img_cropped = ima.crop(img_in, crinfo1) img_cropped = ima.crop(img_cropped, crinfo2) crinfo_combined = ima.combinecrinfo(crinfo1, crinfo2) img_uncropped = ima.uncrop(img_cropped, crinfo_combined, shape) logger.debug("shape " + str(shape)) logger.debug("crinfo_combined " + str(crinfo_combined)) logger.debug("img_cropped.shape" + str(img_cropped.shape)) logger.debug("img_uncropped.shape" + str(img_uncropped.shape)) self.assertEquals(img_in.shape, img_uncropped.shape) # sonda indexes inside cropped area # cr_com = np.asarray(crinfo_combined) # if np.all((cr_com[:, 1] - cr_com[:, 0]) > 1): if np.all(img_cropped.shape > 1): # sometimes the combination of crinfo has zero size in one dimension sonda = np.array([ np.random.randint(crinfo_combined[0][0], crinfo_combined[0][1] - 1), np.random.randint(crinfo_combined[1][0], crinfo_combined[1][1] - 1), np.random.randint(crinfo_combined[2][0], crinfo_combined[2][1] - 1), ]) sonda_intensity_uncropped = img_uncropped[sonda[0], sonda[1], sonda[2]] sonda_intensity_in = img_in[sonda[0], sonda[1], sonda[2]] self.assertEquals(sonda_intensity_in, sonda_intensity_uncropped)
def test_multiple_crop_and_uncrop(self): """ test combination of multiple crop """ shape = [10, 10, 5] img_in = np.random.random(shape) crinfo1 = [[2, 8], [3, 9], [2, 5]] crinfo2 = [[2, 5], [1, 4], [1, 2]] img_cropped = ima.crop(img_in, crinfo1) img_cropped = ima.crop(img_cropped, crinfo2) crinfo_combined = ima.combinecrinfo(crinfo1, crinfo2) img_uncropped = ima.uncrop(img_cropped, crinfo_combined, shape) self.assertTrue(img_uncropped[4, 4, 3] == img_in[4, 4, 3]) self.assertEquals(img_in.shape, img_uncropped.shape)