前言
有些时候我们需要使用事件图像来做实验,但是事件图像数据实在是太少了,冲浪几乎得不到想要的数据,我们不得不使用正常的图像转换为事件图像来保证数据来源。
This repository contains code that implements video to events conversion as described in Gehrig et al. CVPR'20 and the used dataset. The paper can be found here
If you use this code in an academic context, please cite the following work:
Daniel Gehrig, Mathias Gehrig, Javier Hidalgo-Carrió, Davide Scaramuzza, "Video to Events: Recycling Video Datasets for Event Cameras", The Conference on Computer Vision and Pattern Recognition (CVPR), 2020
@InProceedings{Gehrig_2020_CVPR, author = {Daniel Gehrig and Mathias Gehrig and Javier Hidalgo-Carri\'o and Davide Scaramuzza}, title = {Video to Events: Recycling Video Datasets for Event Cameras}, booktitle = {{IEEE} Conf. Comput. Vis. Pattern Recog. (CVPR)}, month = {June}, year = {2020}
代码Code:
def RGB_to_EventImg(im): gray_img=cv2.cvtColor(im,cv2.COLOR_BGR2GRAY) # 偏移方向 建议设置区间[-5,5] xshift = 3 yshift = -3 xlong = gray_img.shape[1]-2*abs(xshift) ylong = gray_img.shape[0]-2*abs(yshift) pic_shape = [ylong,xlong,3] img = np.full(pic_shape, 0, dtype=np.uint8) # 如果图像相素偏移量>10那么记录该像素点 for i in range(abs(yshift),ylong): for j in range(abs(xshift),xlong): if int(gray_img[i+yshift][j+xshift])-int(gray_img[i][j])>10: img[i][j]=[0,255,0] if int(gray_img[i+yshift][j+xshift])-int(gray_img[i][j])<-10: img[i][j]=[0,0,255] return img if __name__ == '__main__': img = cv2.imread('test.png') cv2.imshow('frame', RGB_toEventImg(img)) cv2.waitKey(0)
演示:
转化前:
转换后:
不得不说,居然还有点好看~
完毕!
是不是超级简单呢?如果觉得有用的话欢迎点赞+关注哦!