diff options
author | CoprDistGit <infra@openeuler.org> | 2023-06-20 07:53:55 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-06-20 07:53:55 +0000 |
commit | b570408db720a31a9cf89bf6ce8f5b1471308cb6 (patch) | |
tree | 79cfbb0c66305d8b7d6a32c24f17faf747896c44 | |
parent | 6712752b8e9bd703678ec3c518abc9fa46c6ec12 (diff) |
automatic import of python-EasyPySpinopeneuler20.03
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-easypyspin.spec | 342 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 344 insertions, 0 deletions
@@ -0,0 +1 @@ +/EasyPySpin-2.0.1.tar.gz diff --git a/python-easypyspin.spec b/python-easypyspin.spec new file mode 100644 index 0000000..b77a30b --- /dev/null +++ b/python-easypyspin.spec @@ -0,0 +1,342 @@ +%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` <br> `AcquisitionFrameRate` = value | value = `AcquisitionResultingFrameRate`| +| cv2.CAP_PROP_BRIGHTNESS | float | `AutoExposureEVCompensation` = value | value = `AutoExposureEVCompensation` | +| cv2.CAP_PROP_GAIN | float | if value != -1 <br> `GainAuto` = `Off` <br> `Gain` = value <br> else <br> `GainAuto` = `Continuous` | value = `Gain` | +| cv2.CAP_PROP_EXPOSURE | float | if value != -1 <br> `ExposureAuto` = `Off` <br> `ExposureTime` = value <br> else <br> `ExposureAuto` = `Continuous` | value = `ExposureTime` | +| cv2.CAP_PROP_GAMMA | float | `GammaEnable` = `True` <br> `Gamma` = value | value = `Gamma` | +| cv2.CAP_PROP_TEMPERATURE | float | | value = `DeviceTemperature` | +| cv2.CAP_PROP_TRIGGER | bool | if value == `True` <br> `TriggerMode` = `On` <br> else <br> `TriggerMode` = `Off` | if trigger_mode == `On` <br> value = `True` <br> elif trigger_mode == `Off` <br> value = `False` | +| cv2.CAP_PROP_TRIGGER_DELAY | float | `TriggerDelay` = value | value = `TriggerDelay` | +| cv2.CAP_PROP_BACKLIGHT | bool | if value == `True` <br> `DeviceIndicatorMode` = `Active` <br> else <br> `DeviceIndicatorMode` = `Inactive` | if device_indicator_mode == `Active` <br> value = `True` <br> elif device_indicator_mode == `Inactive` <br> value = `False` | +| cv2.CAP_PROP_AUTO_WB | bool | if value == `True` <br> `BalanceWhiteAuto` = `Continuous` <br> else <br> `BalanceWhiteAuto` = `Off` | if balance_white_auto == `Continuous` <br> value = `True` <br> elif balance_white_auto == `Off` <br> 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` <br> `AcquisitionFrameRate` = value | value = `AcquisitionResultingFrameRate`| +| cv2.CAP_PROP_BRIGHTNESS | float | `AutoExposureEVCompensation` = value | value = `AutoExposureEVCompensation` | +| cv2.CAP_PROP_GAIN | float | if value != -1 <br> `GainAuto` = `Off` <br> `Gain` = value <br> else <br> `GainAuto` = `Continuous` | value = `Gain` | +| cv2.CAP_PROP_EXPOSURE | float | if value != -1 <br> `ExposureAuto` = `Off` <br> `ExposureTime` = value <br> else <br> `ExposureAuto` = `Continuous` | value = `ExposureTime` | +| cv2.CAP_PROP_GAMMA | float | `GammaEnable` = `True` <br> `Gamma` = value | value = `Gamma` | +| cv2.CAP_PROP_TEMPERATURE | float | | value = `DeviceTemperature` | +| cv2.CAP_PROP_TRIGGER | bool | if value == `True` <br> `TriggerMode` = `On` <br> else <br> `TriggerMode` = `Off` | if trigger_mode == `On` <br> value = `True` <br> elif trigger_mode == `Off` <br> value = `False` | +| cv2.CAP_PROP_TRIGGER_DELAY | float | `TriggerDelay` = value | value = `TriggerDelay` | +| cv2.CAP_PROP_BACKLIGHT | bool | if value == `True` <br> `DeviceIndicatorMode` = `Active` <br> else <br> `DeviceIndicatorMode` = `Inactive` | if device_indicator_mode == `Active` <br> value = `True` <br> elif device_indicator_mode == `Inactive` <br> value = `False` | +| cv2.CAP_PROP_AUTO_WB | bool | if value == `True` <br> `BalanceWhiteAuto` = `Continuous` <br> else <br> `BalanceWhiteAuto` = `Off` | if balance_white_auto == `Continuous` <br> value = `True` <br> elif balance_white_auto == `Off` <br> 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` <br> `AcquisitionFrameRate` = value | value = `AcquisitionResultingFrameRate`| +| cv2.CAP_PROP_BRIGHTNESS | float | `AutoExposureEVCompensation` = value | value = `AutoExposureEVCompensation` | +| cv2.CAP_PROP_GAIN | float | if value != -1 <br> `GainAuto` = `Off` <br> `Gain` = value <br> else <br> `GainAuto` = `Continuous` | value = `Gain` | +| cv2.CAP_PROP_EXPOSURE | float | if value != -1 <br> `ExposureAuto` = `Off` <br> `ExposureTime` = value <br> else <br> `ExposureAuto` = `Continuous` | value = `ExposureTime` | +| cv2.CAP_PROP_GAMMA | float | `GammaEnable` = `True` <br> `Gamma` = value | value = `Gamma` | +| cv2.CAP_PROP_TEMPERATURE | float | | value = `DeviceTemperature` | +| cv2.CAP_PROP_TRIGGER | bool | if value == `True` <br> `TriggerMode` = `On` <br> else <br> `TriggerMode` = `Off` | if trigger_mode == `On` <br> value = `True` <br> elif trigger_mode == `Off` <br> value = `False` | +| cv2.CAP_PROP_TRIGGER_DELAY | float | `TriggerDelay` = value | value = `TriggerDelay` | +| cv2.CAP_PROP_BACKLIGHT | bool | if value == `True` <br> `DeviceIndicatorMode` = `Active` <br> else <br> `DeviceIndicatorMode` = `Inactive` | if device_indicator_mode == `Active` <br> value = `True` <br> elif device_indicator_mode == `Inactive` <br> value = `False` | +| cv2.CAP_PROP_AUTO_WB | bool | if value == `True` <br> `BalanceWhiteAuto` = `Continuous` <br> else <br> `BalanceWhiteAuto` = `Off` | if balance_white_auto == `Continuous` <br> value = `True` <br> elif balance_white_auto == `Off` <br> 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 <Python_Bot@openeuler.org> - 2.0.1-1 +- Package Spec generated @@ -0,0 +1 @@ +5031142b17d7aa1b2e0d7e035d02a2a6 EasyPySpin-2.0.1.tar.gz |