Skip to main content

Image Sequence Abstraction for Python

Video data can appear in different forms: bunch of files, a video file, a network stream etc. We provide an abstraction for ordered image sources that serve as an isolation from a specific source type.

The interface is simple:

import imagesource

images = 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 ...

The basic sources are VideoSource and FilesSource for video files and sequences of image files respectively. The TimedVideoSource extracts frame timestamps from video files. The SynchronizedSource translates frame numbers using a table. This can be used for creating a synchronized set of sources.

For more examples see tests/test.py

Installation

Install OpenCV 3.x with Python bindings and Numpy using a system package manager.

$ pip install imagesource

The TimedVideoSource requires ffprobe command from the ffmpeg suite.

Testing

$ pip install nose
$ nosetests

Writing Extensions

It is simple to write transparent image source wrappers that post-process image data from an underlying image source (e.g. background subtraction, radial distortion removal, ...).

An example background subtracted image source:

class BackgroundSubtractedSource(imagesource.ImageSource):
    def __init__(self, source):
        self.source = source
        self.bgs = cv2.createBackgroundSubtractorMOG2(...)

        def get_image(self, frame):
            img = self.source.get_image(frame)
            return self.bgs.apply(img)

        def get_next_image(self):
            img = self.source.get_next_image()
            return self.bgs.apply(img)

        def rewind(self):
            self.source.rewind()

Metadata

Release files for ImageSource 1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ImageSource 1.1
File Size Uploaded
ImageSource-1.1.tar.gz 5.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ImageSource 1.1
File Interpreter ABI Platform
ImageSource-1.1-py3-none-any.whl Python 3 none any Details

Total release size: 13.0 kB

Release files / ImageSource-1.1.tar.gz

Download URL ImageSource-1.1.tar.gz
Size 5.1 kB
Tags Source
SHA-256 checksum
How to use checksums
3db0b6de5c7f6bca52e38916707168d6b62a675fc444c7cb6debf71544a183e6
BLAKE2b-256 checksum
How to use checksums
d4691aad30c414282eb890d5716978451943291f0390ccb7a85279055ae5c749
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.1.3 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.9.0

Release files / ImageSource-1.1-py3-none-any.whl

Download URL ImageSource-1.1-py3-none-any.whl
Size 7.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7cf97132562e63b60342330d34d292757123b47ab6a21d61fc133ee156154b05
BLAKE2b-256 checksum
How to use checksums
4bcb5bef25818c21c0c796213af8fee44cf3b187dfe06b7d3fce29b6129501a0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.1.3 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.9.0

Release history Release notifications | RSS feed

This release

1.1 This release

2 release files

1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page