Blur Objects
Blurs any detected objects in the video
Overview
Blurs any detected objects in the video
Inputs & Outputs
- Inputs : 1, Media Format : Raw Video
- Outputs : 1, Media Format: Raw Video
- Output Metadata : None
Properties
Property | Description | Type | Default | Required |
---|---|---|---|---|
object_labels | Comma separated list of detected object labels to blur (see Model Labels for a list of labels detected by that model). Specified as object_label or object_label.class_label . Ex. : face : Blurs all face objects, face.mask : Blurs all objects of type face which also have a class of mask . | model-label | null | Yes |
mode | Mode of operation. Options: include - Include matches that match the specified object types, exclude - Exclude objects that don't match the specified. | enum | "include" | Yes |
blur_type | Method of blurring. Options: simple , gaussian , opaque , pixel . | enum | "pixel" | Yes |
intensity | Intensity of blur. Slider with min value of 0 and max value of 10. | slider | 7 | Yes |
Metadata
Access metadata using the Function Node or using the API, from the snapshot or clip saved downstream of this node.
Metadata Property | Description |
---|---|
None | None |
Customize
In order to customize this node for your use case, use the code below inside a Function Node.
from lumeopipeline import VideoFrame
import cv2
def process_frame(frame: VideoFrame, object_labels = None, **kwargs) -> bool:
width = frame.video_info().width
height = frame.video_info().height
with frame.data() as mat:
meta = frame.meta()
if meta is not None:
objects = meta.get_field("objects")
if objects is not None:
object_label_list = object_labels.lower().replace(" ","").split(",") if object_labels is not None else []
for object in objects:
if object['label'] in object_label_list or len(object_label_list) == 0:
object_rect = object['rect']
object_rect = {key: int(value) for key, value in object_rect.items()}
y = object_rect['top']
yEnd = object_rect['top'] + object_rect['height']
x = object_rect['left']
xEnd = object_rect['left'] + object_rect['width']
mat[y:yEnd,x:xEnd] = cv2.blur(mat[y:yEnd,x:xEnd], (23,23) )
return True
Updated 7 months ago