# -*- encoding: utf-8 -*- """ @File : event.py @Time : 2025/9/3 15:25:00 @Author : lh9171338 @Version : 1.0 @Contact : 2909171338@qq.com """ import numpy as np class Event: """ Event Args: filename (str | None): path to the event file events (dict | None): event data """ def __init__(self, filename=None, events=None, **kwargs): assert filename is not None or events is not None if filename is not None: events = np.load(filename) events = dict(**events) events["x"] = np.array(events["x"], dtype="int16") events["y"] = np.array(events["y"], dtype="int16") events["p"] = np.array(events["p"], dtype="int16") events["t"] = np.array(events["t"], dtype="int32") self.filename = filename self.events = events def event2image(self): """ Convert event to image Args: None Returns: image (numpy.ndarray): event image """ width, height = self.events["image_size"] xs = self.events["x"] ys = self.events["y"] ps = self.events["p"] event = np.zeros((height, width, 2), dtype="float32") np.add.at(event, (ys, xs, ps), 1) np.add.at(event, (ys, xs, ps), 1) neg = event[:, :, 0] pos = event[:, :, 1] image = np.stack((neg, np.zeros_like(neg), pos), axis=-1) image = (((image / image.max()) ** 0.5) * 255).astype(np.uint8) return image