"""Support for the demo image processing.""" from homeassistant.components.image_processing import ( ATTR_AGE, ATTR_CONFIDENCE, ATTR_GENDER, ATTR_NAME, ImageProcessingFaceEntity, ) from homeassistant.components.openalpr_local.image_processing import ( ImageProcessingAlprEntity, ) def setup_platform(hass, config, add_entities, discovery_info=None): """Set up the demo image processing platform.""" add_entities( [ DemoImageProcessingAlpr("camera.demo_camera", "Demo Alpr"), DemoImageProcessingFace("camera.demo_camera", "Demo Face"), ] ) class DemoImageProcessingAlpr(ImageProcessingAlprEntity): """Demo ALPR image processing entity.""" def __init__(self, camera_entity, name): """Initialize demo ALPR image processing entity.""" super().__init__() self._name = name self._camera = camera_entity @property def camera_entity(self): """Return camera entity id from process pictures.""" return self._camera @property def confidence(self): """Return minimum confidence for send events.""" return 80 @property def name(self): """Return the name of the entity.""" return self._name def process_image(self, image): """Process image.""" demo_data = { "AC3829": 98.3, "BE392034": 95.5, "CD02394": 93.4, "DF923043": 90.8, } self.process_plates(demo_data, 1) class DemoImageProcessingFace(ImageProcessingFaceEntity): """Demo face identify image processing entity.""" def __init__(self, camera_entity, name): """Initialize demo face image processing entity.""" super().__init__() self._name = name self._camera = camera_entity @property def camera_entity(self): """Return camera entity id from process pictures.""" return self._camera @property def confidence(self): """Return minimum confidence for send events.""" return 80 @property def name(self): """Return the name of the entity.""" return self._name def process_image(self, image): """Process image.""" demo_data = [ { ATTR_CONFIDENCE: 98.34, ATTR_NAME: "Hans", ATTR_AGE: 16.0, ATTR_GENDER: "male", }, {ATTR_NAME: "Helena", ATTR_AGE: 28.0, ATTR_GENDER: "female"}, {ATTR_CONFIDENCE: 62.53, ATTR_NAME: "Luna"}, ] self.process_faces(demo_data, 4)