Skip to main content

cv2.VideoCapture like wrapper for FLIR Spinnaker SDK

Project description

EasyPySpin

EasyPySpin is an unofficial wrapper for FLIR Spinnaker SDK. This wrapper provides much the same way as the OpenCV VideoCapture class.

Requirement

  • PySpin
    • Download Spinnaker SDK from here.
  • OpenCV

Installation

pip install EasyPySpin

After installation, connect the camera and try examples/video.py.

Usage

Capture image from camera

Here's an example to capture image from camera.

import cv2
import EasyPySpin

cap = EasyPySpin.VideoCapture(0)

ret, frame = cap.read()

cv2.imwrite("frame.png", frame)

cap.release()

Basic property settings

You can access properties using cap.set(propId, value) or cap.get(propId). See also supported propId.

cap.set(cv2.CAP_PROP_EXPOSURE, 100000) # us
cap.set(cv2.CAP_PROP_GAIN, 10) # dB

width  = cap.get(cv2.CAP_PROP_FRAME_WIDTH)
height = cap.get(cv2.CAP_PROP_FRAME_HEIGHT)

Advanced property settings

cap.set() and cap.get() can only access basic properties. To access advanced properties, you can use QuickSpin API, which PySpin supports.

cap.cam.AdcBitDepth.SetValue(PySpin.AdcBitDepth_Bit12)
cap.cam.PixelFormat.SetValue(PySpin.PixelFormat_Mono16)

The other way is to use cap.set_pyspin_value() or cap.get_pyspin_value(), which are supported by EasyPySpin. These methods check whether the variable is writeable or readable and check the type of the variable, etc., at the same time.

cap.set_pyspin_value("AdcBitDepth", "Bit12")
cap.set_pyspin_value("PixelFormat", "Mono16")

cap.get_pyspin_value("GammaEnable")
cap.get_pyspin_value("DeviceModelName")

Supported VideoCaptureProperties

Here is the list of supported VideoCaptureProperties. In set(propId, value) and get(propId), PySpin is used to set and get the camera's settings. The relationship between propId and PySpin settings is designed to be as close in meaning as possible. The table below shows the relationship between propId and PySpin settings in pseudo-code format.

propId type set(propId, value) value = get(propId)
cv2.CAP_PROP_FRAME_WIDTH int Width = value value = Width
cv2.CAP_PROP_FRAME_HEIGHT int Height = value value = Height
cv2.CAP_PROP_FPS float AcquisitionFrameRateEnable = True
AcquisitionFrameRate = value
value = AcquisitionResultingFrameRate
cv2.CAP_PROP_BRIGHTNESS float AutoExposureEVCompensation = value value = AutoExposureEVCompensation
cv2.CAP_PROP_GAIN float if value != -1
  GainAuto = Off
  Gain = value
else
  GainAuto = Continuous
value = Gain
cv2.CAP_PROP_EXPOSURE float if value != -1
  ExposureAuto = Off
  ExposureTime = value
else
  ExposureAuto = Continuous
value = ExposureTime
cv2.CAP_PROP_GAMMA float GammaEnable = True
Gamma = value
value = Gamma
cv2.CAP_PROP_TEMPERATURE float value = DeviceTemperature
cv2.CAP_PROP_TRIGGER bool if value == True
  TriggerMode = On
else
  TriggerMode = Off
if trigger_mode == On
  value = True
elif trigger_mode == Off
  value = False
cv2.CAP_PROP_TRIGGER_DELAY float TriggerDelay = value value = TriggerDelay
cv2.CAP_PROP_BACKLIGHT bool if value == True
  DeviceIndicatorMode = Active
else
  DeviceIndicatorMode = Inactive
if device_indicator_mode == Active
  value = True
elif device_indicator_mode == Inactive
  value = False
cv2.CAP_PROP_AUTO_WB bool if value == True
  BalanceWhiteAuto = Continuous
else
  BalanceWhiteAuto = Off
if balance_white_auto == Continuous
  value = True
elif balance_white_auto == Off
  value = False

Command-Line Tool

EasyPySpin provides a command-line tool. Connect the camera and execute the following commands, as shown below, then you can view the captured images.

EasyPySpin [-h] [-i INDEX] [-e EXPOSURE] [-g GAIN] [-G GAMMA]
           [-b BRIGHTNESS] [-f FPS] [-s SCALE]

External Links

Here are some external links that are useful for using Spinnaker SDK.

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

EasyPySpin-2.0.1.tar.gz (13.6 kB view details)

Uploaded Source

Built Distribution

EasyPySpin-2.0.1-py3-none-any.whl (16.6 kB view details)

Uploaded Python 3

File details

Details for the file EasyPySpin-2.0.1.tar.gz.

File metadata

  • Download URL: EasyPySpin-2.0.1.tar.gz
  • Upload date:
  • Size: 13.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.10

File hashes

Hashes for EasyPySpin-2.0.1.tar.gz
Algorithm Hash digest
SHA256 23226b7f57203e45bf0f67d73540ba0aef3d1e3de8b069ec741fe49ff9ad583a
MD5 5031142b17d7aa1b2e0d7e035d02a2a6
BLAKE2b-256 1182b7dce04eb6fccfcbacbcfa1752b72f51fca1f17f356bb9045a9bde5dfd44

See more details on using hashes here.

File details

Details for the file EasyPySpin-2.0.1-py3-none-any.whl.

File metadata

  • Download URL: EasyPySpin-2.0.1-py3-none-any.whl
  • Upload date:
  • Size: 16.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.10

File hashes

Hashes for EasyPySpin-2.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b142230a5c1a83879509646129a06eac1a638ffa95ec0a548eab0d12fb452f35
MD5 8e92022ef5e11ad7b7ed56f4d5447c75
BLAKE2b-256 53e341551c4850abcdd7d12a484b1cc8d1037fbcb2b203c0c9de8c14fbe4486b

See more details on using hashes here.

Supported by

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