opencv的图像序列抽象。
ImageSource的Python项目详细描述
视频数据可以以不同的形式出现:一堆文件,一个视频文件, 网络流等。我们提供有序图像的抽象 与特定源类型隔离的源。
界面很简单:
importimagesourceimages=imagesource.VideoSource('tests/data/MOV02522.MPG')img100=images.get_image(100)img101=images.get_next_image()images.rewind()img000=images.get_next_image()images.write_images('out/%03d.png',100)images2=imagesource.FilesSource('tests/data/frames/%03d.jpg')# same interface as above ...
视频的基本来源是VideoSource和FilesSource。 文件和图像文件序列。这个 TimedVideoSource从视频文件中提取帧时间戳。这个 SynchronizedSource使用表转换帧号。这个罐头 用于创建同步的源集。
有关更多示例,请参见tests/test.py
安装
使用python绑定和numpy使用系统包安装opencv 3.x 经理。
$ pip install imagesource
TimedVideoSource需要来自 ffmpeg套房。
测试
$ pip install nose $ nosetests
写入扩展名
编写透明的图像源包装器很简单 从底层图像源(如背景)处理后图像数据 减法,径向失真消除,…)。
背景减去图像源示例:
classBackgroundSubtractedSource(imagesource.ImageSource):def__init__(self,source):self.source=sourceself.bgs=cv2.createBackgroundSubtractorMOG2(...)defget_image(self,frame):img=self.source.get_image(frame)returnself.bgs.apply(img)defget_next_image(self):img=self.source.get_next_image()returnself.bgs.apply(img)defrewind(self):self.source.rewind()