Exemple #1
0
    def test_02_03_get_measurement_images(self):
        '''Test the get_measurment_images function for some different cases'''
        module = M.MeasureCorrelation()
        module.image_groups[0].image_name.value = IMAGE1_NAME
        module.image_groups[1].image_name.value = IMAGE2_NAME
        module.object_groups[0].object_name.value = OBJECTS_NAME
        module.images_or_objects.value = M.M_IMAGES

        def meas(name):
            ans = module.get_measurement_images(None, name, "Correlation",
                                                "Correlation")
            if len(ans) == 0:
                return False
            self.assertTrue(ans[0] in [
                "%s_%s" % x for x in ((IMAGE1_NAME, IMAGE2_NAME),
                                      (IMAGE2_NAME, IMAGE1_NAME))
            ])
            return True

        self.assertTrue(meas("Image"))
        self.assertFalse(meas(OBJECTS_NAME))
        module.images_or_objects.value = M.M_OBJECTS
        self.assertFalse(meas("Image"))
        self.assertTrue(meas(OBJECTS_NAME))
        module.images_or_objects.value = M.M_IMAGES_AND_OBJECTS
        self.assertTrue(meas("Image"))
        self.assertTrue(meas(OBJECTS_NAME))
Exemple #2
0
 def test_02_03_get_measurement_images(self):
     '''Test the get_measurment_images function for some different cases'''
     for iocase, names in ((M.M_IMAGES, [cpmeas.IMAGE]), (M.M_OBJECTS, [
             OBJECTS_NAME
     ]), (M.M_IMAGES_AND_OBJECTS, [cpmeas.IMAGE, OBJECTS_NAME])):
         module = M.MeasureCorrelation()
         module.image_groups[0].image_name.value = IMAGE1_NAME
         module.image_groups[1].image_name.value = IMAGE2_NAME
         module.object_groups[0].object_name.value = OBJECTS_NAME
         module.images_or_objects.value = iocase
         for name, mfs in ((cpmeas.IMAGE,
                            self.all_image_measurement_formats),
                           (OBJECTS_NAME,
                            self.all_object_measurement_formats)):
             if name not in names:
                 continue
             for mf in mfs:
                 ftr = mf.split("_")[1]
                 ans = module.get_measurement_images(
                     None, name, "Correlation", ftr)
                 expected = [
                     "%s_%s" % (i1, i2)
                     for i1, i2 in ((IMAGE1_NAME, IMAGE2_NAME),
                                    (IMAGE2_NAME, IMAGE1_NAME))
                 ]
                 if mf in self.asymmetrical_measurement_formats:
                     self.assertTrue(all([e in ans for e in expected]))
                 else:
                     self.assertTrue(any([e in ans for e in expected]))
Exemple #3
0
    def test_02_04_03_get_measurement_columns_both(self):
        module = M.MeasureCorrelation()
        module.image_groups[0].image_name.value = IMAGE1_NAME
        module.image_groups[1].image_name.value = IMAGE2_NAME
        module.object_groups[0].object_name.value = OBJECTS_NAME
        module.images_or_objects.value = M.M_IMAGES_AND_OBJECTS
        columns = module.get_measurement_columns(None)
        expected = [(cpmeas.IMAGE, ftr %
                     (IMAGE1_NAME, IMAGE2_NAME), cpmeas.COLTYPE_FLOAT)
                    for ftr in self.all_image_measurement_formats] + [
                        (cpmeas.IMAGE, ftr %
                         (IMAGE2_NAME, IMAGE1_NAME), cpmeas.COLTYPE_FLOAT)
                        for ftr in self.asymmetrical_measurement_formats
                    ] + [(OBJECTS_NAME, ftr %
                          (IMAGE1_NAME, IMAGE2_NAME), cpmeas.COLTYPE_FLOAT)
                         for ftr in self.all_object_measurement_formats] + [
                             (OBJECTS_NAME, ftr %
                              (IMAGE2_NAME, IMAGE1_NAME), cpmeas.COLTYPE_FLOAT)
                             for ftr in self.asymmetrical_measurement_formats
                         ]

        self.assertEqual(len(columns), len(expected))
        for column in columns:
            self.assertTrue(
                any([
                    all([cf == ef for cf, ef in zip(column, ex)])
                    for ex in expected
                ]))
Exemple #4
0
    def test_02_02_get_measurements(self):
        '''Test the get_measurements function for some different cases'''
        module = M.MeasureCorrelation()
        module.image_groups[0].image_name.value = IMAGE1_NAME
        module.image_groups[1].image_name.value = IMAGE2_NAME
        module.object_groups[0].object_name.value = OBJECTS_NAME
        module.images_or_objects.value = M.M_IMAGES

        def meas(name):
            ans = list(module.get_measurements(None, name, "Correlation"))
            ans.sort()
            if name == "Image":
                mf = self.all_image_measurement_formats
            else:
                mf = self.all_object_measurement_formats
            expected = sorted([_.split("_")[1] for _ in mf])
            return ans == expected

        self.assertTrue(meas("Image"))
        self.assertFalse(meas(OBJECTS_NAME))
        module.images_or_objects.value = M.M_OBJECTS
        self.assertFalse(meas("Image"))
        self.assertTrue(meas(OBJECTS_NAME))
        module.images_or_objects.value = M.M_IMAGES_AND_OBJECTS
        self.assertTrue(meas("Image"))
        self.assertTrue(meas(OBJECTS_NAME))
Exemple #5
0
 def make_workspace(self, image1, image2, objects=None):
     '''Make a workspace for testing ApplyThreshold'''
     module = M.MeasureCorrelation()
     image_set_list = cpi.ImageSetList()
     image_set = image_set_list.get_image_set(0)
     for image_group, name, image in zip(module.image_groups,
                                        (IMAGE1_NAME,IMAGE2_NAME),
                                        (image1, image2)):
         image_group.image_name.value = name
         image_set.add(name, image) 
     object_set = cpo.ObjectSet()
     if objects is None:
         module.images_or_objects.value = M.M_IMAGES
     else:
         module.images_or_objects.value = M.M_IMAGES_AND_OBJECTS
         module.object_groups[0].object_name.value = OBJECTS_NAME
         object_set.add_objects(objects, OBJECTS_NAME)
     pipeline = cpp.Pipeline()
     workspace = cpw.Workspace(pipeline,
                               module,
                               image_set,
                               object_set,
                               cpmeas.Measurements(),
                               image_set_list)
     return workspace, module
Exemple #6
0
 def test_02_04_02_get_measurement_columns_objects(self):
     module = M.MeasureCorrelation()
     module.image_groups[0].image_name.value = IMAGE1_NAME
     module.image_groups[1].image_name.value = IMAGE2_NAME
     module.object_groups[0].object_name.value = OBJECTS_NAME
     module.images_or_objects.value = M.M_OBJECTS
     columns = module.get_measurement_columns(None)
     expected = ((OBJECTS_NAME, 
                  M.F_CORRELATION_FORMAT% (IMAGE1_NAME, IMAGE2_NAME),
                  cpmeas.COLTYPE_FLOAT),)
     self.assertEqual(len(columns), len(expected))
     for column in columns:
         self.assertTrue(any([all([cf==ef for cf,ef in zip(column,ex)])
                              for ex in expected]))
Exemple #7
0
 def test_02_01_get_categories(self):
     '''Test the get_categories function for some different cases'''
     module = M.MeasureCorrelation()
     module.image_groups[0].image_name.value = IMAGE1_NAME
     module.image_groups[1].image_name.value = IMAGE2_NAME
     module.object_groups[0].object_name.value = OBJECTS_NAME
     module.images_or_objects.value = M.M_IMAGES
     def cat(name):
         return module.get_categories(None, name) == ["Correlation"]
     self.assertTrue(cat("Image"))
     self.assertFalse(cat(OBJECTS_NAME))
     module.images_or_objects.value = M.M_OBJECTS
     self.assertFalse(cat("Image"))
     self.assertTrue(cat(OBJECTS_NAME))
     module.images_or_objects.value = M.M_IMAGES_AND_OBJECTS
     self.assertTrue(cat("Image"))
     self.assertTrue(cat(OBJECTS_NAME))
Exemple #8
0
 def test_02_02_get_measurements(self):
     '''Test the get_measurements function for some different cases'''
     module = M.MeasureCorrelation()
     module.image_groups[0].image_name.value = IMAGE1_NAME
     module.image_groups[1].image_name.value = IMAGE2_NAME
     module.object_groups[0].object_name.value = OBJECTS_NAME
     module.images_or_objects.value = M.M_IMAGES
     def meas(name):
         if name == "Image":
             ans = list(module.get_measurements(None,name,"Correlation"))
             ans.sort()
             return ans == ["Correlation", "Slope"]
         return module.get_measurements(None, name, "Correlation") == ["Correlation"]
     self.assertTrue(meas("Image"))
     self.assertFalse(meas(OBJECTS_NAME))
     module.images_or_objects.value = M.M_OBJECTS
     self.assertFalse(meas("Image"))
     self.assertTrue(meas(OBJECTS_NAME))
     module.images_or_objects.value = M.M_IMAGES_AND_OBJECTS
     self.assertTrue(meas("Image"))
     self.assertTrue(meas(OBJECTS_NAME))