Skip to main content

Defining the Future of 3D Machine Vision

Project description

Zivid Python

Zivid Python is the official Python package for Zivid 3D cameras. Read more about Zivid at zivid.com.

Build Status PyPI Package Zivid Image


Contents: Installation | Quick Start | Examples | Versioning | License | Support | Test Matrix


Installation

Dependencies

Ubuntu users must install Python headers (apt install python3-dev) in addition to the regular python3 package.

Windows users also needs to make sure that the Zivid SDK installation folder is in system PATH before using the package, not only the terminal PATH variable. The default install location that should be added to system PATH is C:\Program Files\Zivid\bin.

Installing official version from PyPI using PIP

After having installed the latest Zivid SDK, the easiest way to install Zivid Python is to use PIP to fetch the latest official version from PyPI:

pip install zivid

Note:

If you don't use the latest Zivid SDK version you need to manually specify the version. See Versioning.

Installation may take some time since the setup.py script will download additional dependencies and compile C++ source code in the background.

On some systems Python 3 pip is called pip3. In this guide we assume it is called pip. When using PIP version 19 or higher build dependencies are handled automatically.

Old PIP

If you are using a version of PIP older than version 19 please manually install the dependencies listed in pyproject.toml before installing zivid.

pip install <packages listed in pyproject.toml>
pip install zivid

Installing from source

git clone <zivid-python clone URL>
cd zivid-python
pip install .

You may want to build Zivid Python against a different (but compatible) version of Zivid SDK. An example would be if Zivid SDK 2.1 was released but the official Zivid Python still formally only supports SDK 2.0. Since all the features of the 2.0 API exist in the 2.1 API, Zivid Python can still be built with the new SDK (but without wrapping the latest features). In order to achieve this, edit setup.py to target the new SDK version before doing pip install .. Note that this option is considered experimental/unofficial.

Quick Start

Point cloud capture

To quickly capture a point cloud using default settings, run the following code:

import zivid
app = zivid.Application()
camera = app.connect_camera()
settings = zivid.Settings(acquisitions=[zivid.Settings.Acquisition()])
frame = camera.capture(settings)
frame.save("result.zdf")

Instead of using the API to define capture settings, it is also possible to load them from YML files that have been exported from Zivid Studio or downloaded from the Zivid Knowledge Base settings library. This can be done by providing the filesystem path to such a file, for example:

settings = Settings.load("ZividTwo_Settings_2xHDR_Normal.yml")
frame = camera.capture(settings)

Point cloud data access

Data can easily be accessed in the form of Numpy arrays:

import zivid
app = zivid.Application()
camera = app.connect_camera()
settings = zivid.Settings(acquisitions=[zivid.Settings.Acquisition()])
frame = camera.capture(settings)
xyz = frame.point_cloud().copy_data("xyz") # Get point coordinates as [Height,Width,3] float array
rgba = frame.point_cloud().copy_data("rgba") # Get point colors as [Height,Width,4] uint8 array
bgra = frame.point_cloud().copy_data("bgra") # Get point colors as [Height,Width,4] uint8 array

Capture Assistant

Instead of manually adjusting settings, the Capture Assistant may be used to find the optimal settings for your scene:

import zivid
app = zivid.Application()
camera = app.connect_camera()
capture_assistant_params = zivid.capture_assistant.SuggestSettingsParameters()
settings = zivid.capture_assistant.suggest_settings(camera, capture_assistant_params)
frame = camera.capture(settings)
frame.save("result.zdf")

Using camera emulation

If you do not have a camera, you can use the FileCameraZividOne.zfc file in ZividSampleData2.zip to emulate a camera.

import zivid
app = zivid.Application()
camera = app.create_file_camera("path/to/FileCameraZividOne.zfc")
settings = zivid.Settings(acquisitions=[zivid.Settings.Acquisition()])
frame = camera.capture(settings)
frame.save("result.zdf")

Examples

Basic example programs can be found in the samples directory. Many more advanced example programs may be found in the separate zivid-python-samples repository.

Versioning

This python module is using PEP 440 for versioning. The features available in the module depends on the Zivid SDK version used when building the module. When updating this Python package it is recommended to also update to the latest Zivid SDK. Refer to the Test Matrix for supported version.

The version number of the Zivid Python module consists of six numbers. The three first numbers of the version is the semantic version of the code in this repository. The last three numbers is the version of the underlying Zivid SDK library used by the Python module.

To check which version of zivid-python that corresponds to a specific version of Zivid SDK, check out zivid-python-releases-url or run pip index versions zivid.

Version breakdown

                                    Zivid SDK version = 1.4.1 (semantic version)
                                    v v v
Zivid Python module version = 1.0.0.1.4.1
                              ^ ^ ^
                              Wrapper code version = 1.0.0 (semantic version)

PyPI

When installing using PIP it is possible to specify the required version. This can be useful if upgrading Zivid SDK is not desired, but you want to update Zivid Python.

Install latest version of Zivid Python using latest version of Zivid SDK

pip install zivid

Install version 1.0.0 of Zivid Python using latest version of Zivid SDK

pip install zivid==1.0.0

Install version 1.0.0 of Zivid Python using Zivid SDK version 1.4.0

pip install zivid==1.0.0.1.4.0

Install version 1.0.0 of Zivid Python using Zivid SDK version 1.3.0

pip install zivid==1.0.0.1.3.0

Support for older versions of Zivid SDK will be discontinued when they are no longer compatible with latest version of the wrapper code.

License

This project is licensed, see the LICENSE file for details. The licenses of dependencies are listed here.

Support

Please visit Zivid Knowledge Base for general information on using Zivid 3D cameras. If you cannot find a solution to your issue, please contact customersuccess@zivid.com.

Test matrix

Operating System Python version
Ubuntu 23.04 3.11
Ubuntu 22.10 3.10
Ubuntu 22.04 3.10
Ubuntu 20.04 3.8
Ubuntu 18.04 3.6
Fedora 37 3.11
Fedora 36 3.10
Fedora 35 3.10
Windows 10 3.7, 3.8, 3.9, 3.10, 3.11

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zivid-2.9.0.2.9.0.tar.gz (69.0 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

zivid-2.9.0.2.9.0-cp311-cp311-win_amd64.whl (399.1 kB view details)

Uploaded CPython 3.11Windows x86-64

zivid-2.9.0.2.9.0-cp310-cp310-win_amd64.whl (399.2 kB view details)

Uploaded CPython 3.10Windows x86-64

zivid-2.9.0.2.9.0-cp39-cp39-win_amd64.whl (399.3 kB view details)

Uploaded CPython 3.9Windows x86-64

zivid-2.9.0.2.9.0-cp38-cp38-win_amd64.whl (399.1 kB view details)

Uploaded CPython 3.8Windows x86-64

zivid-2.9.0.2.9.0-cp37-cp37m-win_amd64.whl (384.6 kB view details)

Uploaded CPython 3.7mWindows x86-64

File details

Details for the file zivid-2.9.0.2.9.0.tar.gz.

File metadata

  • Download URL: zivid-2.9.0.2.9.0.tar.gz
  • Upload date:
  • Size: 69.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.6

File hashes

Hashes for zivid-2.9.0.2.9.0.tar.gz
Algorithm Hash digest
SHA256 8d756e70cb5dedb946a732cf18845385e746f5c3a88ecf074a28b8ab0bea7c0c
MD5 46d6a9db1c9987b10fbe6c8cf0aa77dc
BLAKE2b-256 e6685df11f0a680d029d0d90e3c41ed510f1b1d5159fc3dabb5e39e6b2586bf9

See more details on using hashes here.

File details

Details for the file zivid-2.9.0.2.9.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: zivid-2.9.0.2.9.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 399.1 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.6

File hashes

Hashes for zivid-2.9.0.2.9.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 514da1187a7cf1067f9bb6e52fb328f443982715eec318cc66385d76f0f73721
MD5 78494ac6b6039e5382c2afe5f797b172
BLAKE2b-256 6b05f25b52055d3641e0fc6075cad038b8d353677ef327b3d3e0b4f00c9d824c

See more details on using hashes here.

File details

Details for the file zivid-2.9.0.2.9.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: zivid-2.9.0.2.9.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 399.2 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.6

File hashes

Hashes for zivid-2.9.0.2.9.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 0598b326995fcb662c00d94bf02f5765cdd7a600e1cd69554610eb53f6b55021
MD5 e42e6a4cf967169b4ad57d8b98b61e1d
BLAKE2b-256 31cf5f44c57ca8d9230b3346364e79e88dd35c83544b8c354bf627afdf449799

See more details on using hashes here.

File details

Details for the file zivid-2.9.0.2.9.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: zivid-2.9.0.2.9.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 399.3 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.6

File hashes

Hashes for zivid-2.9.0.2.9.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 1180c5e2c110504c955b5391f7fc4b4b2a6e82cbb118a1dc45a82cfe7c39516c
MD5 a1e467b802048254f5a89bcc3cb10582
BLAKE2b-256 4e3304954f820bf676ff882fa8467a2dcebbf6a497dbe9c20d8ec642f98ba897

See more details on using hashes here.

File details

Details for the file zivid-2.9.0.2.9.0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: zivid-2.9.0.2.9.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 399.1 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.6

File hashes

Hashes for zivid-2.9.0.2.9.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 0c166ad26a51fcf2f9a7a48e78f11af57521dd8cbc09cd8a460f3f6308c3e30d
MD5 51a72865762f60e57e5136e0d61fb7a4
BLAKE2b-256 6031e218a7ea37e74fb12a0823a921eae17126e414f7de51dfd0357f977ace0b

See more details on using hashes here.

File details

Details for the file zivid-2.9.0.2.9.0-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: zivid-2.9.0.2.9.0-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 384.6 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.6

File hashes

Hashes for zivid-2.9.0.2.9.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 a2d6f4d63b733f90e3b6455e06e3943dcf1ed60480060777a01234c80a2752ad
MD5 8b15ee831515c5cc87f3679ae155c810
BLAKE2b-256 fc350d42b260c1492deeccdab5bf85f58238a329a5198e22a887825775be80b0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page