def test_05_01_get_measurements(self): '''Test the get_measurements and allied methods''' module = F.FlipAndRotate() module.output_name.value = OUTPUT_IMAGE columns = module.get_measurement_columns(None) self.assertEqual(len(columns), 1) self.assertEqual(columns[0][0], cpmeas.IMAGE) self.assertEqual(columns[0][1], F.M_ROTATION_F % OUTPUT_IMAGE) self.assertEqual(columns[0][2], cpmeas.COLTYPE_FLOAT) categories = module.get_categories(None,cpmeas.IMAGE) self.assertEqual(len(categories),1) self.assertEqual(categories[0], F.M_ROTATION_CATEGORY) self.assertEqual(len(module.get_categories(None,'Foo')), 0) measurements = module.get_measurements(None, cpmeas.IMAGE, F.M_ROTATION_CATEGORY) self.assertEqual(len(measurements), 1) self.assertEqual(measurements[0], OUTPUT_IMAGE) self.assertEqual(len(module.get_measurements(None, cpmeas.IMAGE, 'Foo')), 0) self.assertEqual(len(module.get_measurements(None, 'Foo', F.M_ROTATION_CATEGORY)), 0)
def run_module(self, image, mask=None, fn=None): '''Run the FlipAndRotate module image - pixel data to be transformed mask - optional mask on the pixel data fn - function with signature, "fn(module)" that will be called with the FlipAndRotate module returns an Image object containing the flipped/rotated/masked/cropped image and the angle measurement. ''' img = cpi.Image(image, mask) image_set_list = cpi.ImageSetList() image_set = image_set_list.get_image_set(0) image_set.add(IMAGE_NAME, img) module = F.FlipAndRotate() module.image_name.value = IMAGE_NAME module.output_name.value = OUTPUT_IMAGE module.module_num = 1 if fn is not None: fn(module) pipeline = cpp.Pipeline() pipeline.add_module(module) def error_callback(caller, event): self.assertFalse(isinstance(event, cpp.RunExceptionEvent)) pipeline.add_listener(error_callback) measurements = cpmeas.Measurements() workspace = cpw.Workspace(pipeline, module, image_set, cpo.ObjectSet(), measurements, image_set_list) module.run(workspace) feature = F.M_ROTATION_F % OUTPUT_IMAGE self.assertTrue( feature in measurements.get_feature_names(cpmeas.IMAGE)) angle = measurements.get_current_image_measurement(feature) output_image = image_set.get_image(OUTPUT_IMAGE) return (output_image, angle)