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 git+https://github.com/elerac/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 = ResultingFrameRate |
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file EasyPySpin-2.0.0.tar.gz
.
File metadata
- Download URL: EasyPySpin-2.0.0.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
Algorithm | Hash digest | |
---|---|---|
SHA256 | ebc70574b820e8283f471058ac269c0136de7cf2eef20fe09a887be36aefd215 |
|
MD5 | 3222114569602240aec05058c5f6553f |
|
BLAKE2b-256 | 7bdb7d19671b411c8640ead33e78a0bfc499019459e8ac1e4b9e41300a01a676 |
File details
Details for the file EasyPySpin-2.0.0-py3-none-any.whl
.
File metadata
- Download URL: EasyPySpin-2.0.0-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
Algorithm | Hash digest | |
---|---|---|
SHA256 | eaca43de6616eb1ef431ed71104c54f9b7faa25a9d984bda0c95dbcbcd43bc74 |
|
MD5 | 974a06e79e900ca5a1313441627870b4 |
|
BLAKE2b-256 | ae16f75c4f06b737311d69f0a360d537eb79f16dd709c058b1d9bd50cd30d304 |