%global _empty_manifest_terminate_build 0 Name: python-EasyPySpin Version: 2.0.1 Release: 1 Summary: cv2.VideoCapture like wrapper for FLIR Spinnaker SDK License: MIT URL: https://github.com/elerac/EasyPySpin Source0: https://mirrors.aliyun.com/pypi/web/packages/11/82/b7dce04eb6fccfcbacbcfa1752b72f51fca1f17f356bb9045a9bde5dfd44/EasyPySpin-2.0.1.tar.gz BuildArch: noarch %description # EasyPySpin EasyPySpin is an unofficial wrapper for FLIR [Spinnaker SDK](https://www.flir.com/products/spinnaker-sdk/). This wrapper provides much the same way as the OpenCV VideoCapture class. ## Requirement * PySpin * Download Spinnaker SDK from [here](https://www.flir.com/support-center/iis/machine-vision/downloads/spinnaker-sdk-and-firmware-download/). * OpenCV ## Installation ```sh pip install EasyPySpin ``` After installation, connect the camera and try [examples/video.py](examples/video.py). ## Usage ### Capture image from camera Here's an example to capture image from camera. ```python 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](#Supported-VideoCaptureProperties). ```python 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. ```python 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. ```python 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. ```sh 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. * [Spinnaker® SDK Programmer's Guide and API Reference (C++)](http://softwareservices.ptgrey.com/Spinnaker/latest/index.html) * [Getting Started with Spinnaker SDK on MacOS Applicable products](https://www.flir.com/support-center/iis/machine-vision/application-note/getting-started-with-spinnaker-sdk-on-macos/) * [Spinnaker Nodes](https://www.flir.com/support-center/iis/machine-vision/application-note/spinnaker-nodes/) * [Configuring Synchronized Capture with Multiple Cameras](https://www.flir.com/support-center/iis/machine-vision/application-note/configuring-synchronized-capture-with-multiple-cameras) %package -n python3-EasyPySpin Summary: cv2.VideoCapture like wrapper for FLIR Spinnaker SDK Provides: python-EasyPySpin BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-EasyPySpin # EasyPySpin EasyPySpin is an unofficial wrapper for FLIR [Spinnaker SDK](https://www.flir.com/products/spinnaker-sdk/). This wrapper provides much the same way as the OpenCV VideoCapture class. ## Requirement * PySpin * Download Spinnaker SDK from [here](https://www.flir.com/support-center/iis/machine-vision/downloads/spinnaker-sdk-and-firmware-download/). * OpenCV ## Installation ```sh pip install EasyPySpin ``` After installation, connect the camera and try [examples/video.py](examples/video.py). ## Usage ### Capture image from camera Here's an example to capture image from camera. ```python 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](#Supported-VideoCaptureProperties). ```python 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. ```python 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. ```python 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. ```sh 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. * [Spinnaker® SDK Programmer's Guide and API Reference (C++)](http://softwareservices.ptgrey.com/Spinnaker/latest/index.html) * [Getting Started with Spinnaker SDK on MacOS Applicable products](https://www.flir.com/support-center/iis/machine-vision/application-note/getting-started-with-spinnaker-sdk-on-macos/) * [Spinnaker Nodes](https://www.flir.com/support-center/iis/machine-vision/application-note/spinnaker-nodes/) * [Configuring Synchronized Capture with Multiple Cameras](https://www.flir.com/support-center/iis/machine-vision/application-note/configuring-synchronized-capture-with-multiple-cameras) %package help Summary: Development documents and examples for EasyPySpin Provides: python3-EasyPySpin-doc %description help # EasyPySpin EasyPySpin is an unofficial wrapper for FLIR [Spinnaker SDK](https://www.flir.com/products/spinnaker-sdk/). This wrapper provides much the same way as the OpenCV VideoCapture class. ## Requirement * PySpin * Download Spinnaker SDK from [here](https://www.flir.com/support-center/iis/machine-vision/downloads/spinnaker-sdk-and-firmware-download/). * OpenCV ## Installation ```sh pip install EasyPySpin ``` After installation, connect the camera and try [examples/video.py](examples/video.py). ## Usage ### Capture image from camera Here's an example to capture image from camera. ```python 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](#Supported-VideoCaptureProperties). ```python 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. ```python 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. ```python 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. ```sh 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. * [Spinnaker® SDK Programmer's Guide and API Reference (C++)](http://softwareservices.ptgrey.com/Spinnaker/latest/index.html) * [Getting Started with Spinnaker SDK on MacOS Applicable products](https://www.flir.com/support-center/iis/machine-vision/application-note/getting-started-with-spinnaker-sdk-on-macos/) * [Spinnaker Nodes](https://www.flir.com/support-center/iis/machine-vision/application-note/spinnaker-nodes/) * [Configuring Synchronized Capture with Multiple Cameras](https://www.flir.com/support-center/iis/machine-vision/application-note/configuring-synchronized-capture-with-multiple-cameras) %prep %autosetup -n EasyPySpin-2.0.1 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "\"/%h/%f.gz\"\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-EasyPySpin -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Tue Jun 20 2023 Python_Bot - 2.0.1-1 - Package Spec generated