eas
EasyPySpin
pypi i EasyPySpin
eas

EasyPySpin

cv2.VideoCapture like wrapper for FLIR Spinnaker SDK

by Ryota MAEDA

2.0.1 (see all)License:MIT
pypi i EasyPySpin
Readme

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.

propIdtypeset(propId, value)value = get(propId)
cv2.CAP_PROP_FRAME_WIDTHintWidth = valuevalue = Width
cv2.CAP_PROP_FRAME_HEIGHTintHeight = valuevalue = Height
cv2.CAP_PROP_FPSfloatAcquisitionFrameRateEnable = True
AcquisitionFrameRate = value
value = AcquisitionResultingFrameRate
cv2.CAP_PROP_BRIGHTNESSfloatAutoExposureEVCompensation = valuevalue = AutoExposureEVCompensation
cv2.CAP_PROP_GAINfloatif value != -1
  GainAuto = Off
  Gain = value
else
  GainAuto = Continuous
value = Gain
cv2.CAP_PROP_EXPOSUREfloatif value != -1
  ExposureAuto = Off
  ExposureTime = value
else
  ExposureAuto = Continuous
value = ExposureTime
cv2.CAP_PROP_GAMMAfloatGammaEnable = True
Gamma = value
value = Gamma
cv2.CAP_PROP_TEMPERATUREfloatvalue = DeviceTemperature
cv2.CAP_PROP_TRIGGERboolif value == True
  TriggerMode = On
else
  TriggerMode = Off
if trigger_mode == On
  value = True
elif trigger_mode == Off
  value = False
cv2.CAP_PROP_TRIGGER_DELAYfloatTriggerDelay = valuevalue = TriggerDelay
cv2.CAP_PROP_BACKLIGHTboolif 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_WBboolif 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]

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

VersionTagPublished
2.0.1
1yr ago
2.0.0
1yr ago
1.2.1
1yr ago
No alternatives found
No tutorials found
Add a tutorial
No dependencies found

Rate & Review

100
No reviews found
Be the first to rate