FileArchive#

class FileArchive(filename: str, filter: str | None = None, loop: bool = False, **kwargs: Any)[source]#

Iterate images from a compressed archive

Parameters:
  • filename (str) – path to archive file

  • filter (str, optional) – a Unix shell-style wildcard that specifies which files to include when iterating over the archive

  • loop (bool, optional) – endlessly loop over the files, defaults to False

  • kwargs – options applied to image frames, see convert

The resulting object is an iterator over the files within the archive. The iterator returns the file as a Image instance if it is an image (the name attribute is the filename within the archive), or a bytes object for non-image files.

The following archive formats are supported:

If the path is not absolute it is first searched for relative to the current directory, and if not found, it is searched for in the images folder of the mvtb-data package, installed as a Toolbox dependency.

To read just the image files within the archive, use a filter such as "*.png" or "*.pgm". Note that filter is a Unix shell style wildcard expression, not a Python regexp.

Example:

            from machinevisiontoolbox import FileArchive
            images = FileArchive('bridge-l.zip')
len(images)
for image in images:  # iterate over files
                    pass

alternatively:

image = images[i]  # load i'th file from the archive

or using a context manager to ensure the archive is closed:

with FileArchive('bridge-l.zip') as images:
    for image in images:
        # process image
References:
Seealso:

open convert cv2.imread

Base constructor for image sources.

Parameters:

kwargs (Any) – source-specific keyword arguments

Methods

disp

Display images from the source interactively.

ls

List all files within the archive to stdout.

open

Open a file from the archive

tensor

Convert all images from this source into a single 4D PyTorch tensor.

Attributes