pyidi


Namepyidi JSON
Version 0.30.2 PyPI version JSON
download
home_pageNone
SummaryPython Image Displacement Identification.
upload_time2024-05-20 09:21:52
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseNone
keywords computer vision dic displacement identification gradient-based
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI
coveralls test coverage No coveralls.
            [![Documentation Status](https://readthedocs.org/projects/pyidi/badge/?version=latest)](https://pyidi.readthedocs.io/en/latest/?badge=latest)
![example workflow](https://github.com/ladisk/pyidi/actions/workflows/python_package_testing.yaml/badge.svg)

# pyidi
Image-based Displacement Identification (IDI) implementation in python.

See the [documentation](https://pyidi.readthedocs.io/en/latest/index.html) for `pyIDI`.

### Use Napari UI for quick displacement identification:
<img src="docs/source/quick_start/gifs/napari_full_sof.gif" width="800" />


# BASIC USAGE:
Create an instance:
```
video = pyidi.pyIDI(input_file='video.cih')
```

The `pyIDI` method works with various formats: `.cih`, `.cihx`, `.png`, `.avi` etc. Additionally, it can also work with `numpy.ndarray` as input.
If an array is passed, it must have a shape of: ``(n time points, image height, image width)``.

Set the points where displacements will be determined:
```
p = np.array([[0, 1], [1, 1], [2, 1]]) # example of points
video.set_points(points=p)
```
Or use point selection UI to set individual points or grid inside selected area. For more information about UI see [documentation](https://pyidi.readthedocs.io/en/quick_start/napari.html). Launch viewer with:

```
video.gui()
```

The method of identification has to be specified:
```
video.set_method(method='sof', **method_kwargs)
```
After points are set, displacements can be calculated (using method, set in `set_method`):
```
displacements = video.get_displacements()
```
Multiprocessing can also be used by passing the `processes` argument:
```
displacements = video.get_displacements(processes=4)
```

# DEVELOPER GUIDELINES:
* Add _name_of_method.py with class that inherits after `IDIMethods`
* This class must have methods:
	* `calculate_displacements` with attribute `displacements`
	* `get_points` (static method - sets attribute video.points)
* In `pyIDI` add a new method of identification in `avaliable_methods` dictionary.

# Citing
If you are using the `pyIDI` package for your research, consider citing our articles:
- Čufar, K., Slavič, J., & Boltežar, M. (2024). **Mode-shape magnification in high-speed camera measurements**. Mechanical Systems and Signal Processing, 213, 111336. https://doi.org/10.1016/J.YMSSP.2024.111336
- Zaletelj, K., Gorjup, D., Slavič, J., & Boltežar, M. (2023). **Multi-level curvature-based parametrization and model updating using a 3D full-field response**. Mechanical Systems and Signal Processing, 187, 109927. https://doi.org/10.1016/j.ymssp.2022.109927
- Zaletelj, K., Slavič, J., & Boltežar, M. (2022). **Full-field DIC-based model updating for localized parameter identification**. Mechanical Systems and Signal Processing, 164. https://doi.org/10.1016/j.ymssp.2021.108287
- Gorjup, D., Slavič, J., & Boltežar, M. (2019). **Frequency domain triangulation for full-field 3D operating-deflection-shape identification**. Mechanical Systems and Signal Processing, 133. https://doi.org/10.1016/j.ymssp.2019.106287

[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.4017153.svg)](https://doi.org/10.5281/zenodo.4017153)
[![Build Status](https://travis-ci.com/ladisk/pyidi.svg?branch=master)](https://travis-ci.com/ladisk/pyidi)


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "pyidi",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": "\"Klemen Zaletelj, Domen Gorjup, Janko Slavi\u010d et al.\" <janko.slavic@fs.uni-lj.si>",
    "keywords": "computer vision, dic, displacement identification, gradient-based",
    "author": null,
    "author_email": "\"Klemen Zaletelj, Domen Gorjup, Janko Slavi\u010d et al.\" <janko.slavic@fs.uni-lj.si>",
    "download_url": "https://files.pythonhosted.org/packages/d9/af/6d90d9e83b45dbd738cdba0cf071abdbe2e19ab49d5f645e93e6d14b26bc/pyidi-0.30.2.tar.gz",
    "platform": null,
    "description": "[![Documentation Status](https://readthedocs.org/projects/pyidi/badge/?version=latest)](https://pyidi.readthedocs.io/en/latest/?badge=latest)\n![example workflow](https://github.com/ladisk/pyidi/actions/workflows/python_package_testing.yaml/badge.svg)\n\n# pyidi\nImage-based Displacement Identification (IDI) implementation in python.\n\nSee the [documentation](https://pyidi.readthedocs.io/en/latest/index.html) for `pyIDI`.\n\n### Use Napari UI for quick displacement identification:\n<img src=\"docs/source/quick_start/gifs/napari_full_sof.gif\" width=\"800\" />\n\n\n# BASIC USAGE:\nCreate an instance:\n```\nvideo = pyidi.pyIDI(input_file='video.cih')\n```\n\nThe `pyIDI` method works with various formats: `.cih`, `.cihx`, `.png`, `.avi` etc. Additionally, it can also work with `numpy.ndarray` as input.\nIf an array is passed, it must have a shape of: ``(n time points, image height, image width)``.\n\nSet the points where displacements will be determined:\n```\np = np.array([[0, 1], [1, 1], [2, 1]]) # example of points\nvideo.set_points(points=p)\n```\nOr use point selection UI to set individual points or grid inside selected area. For more information about UI see [documentation](https://pyidi.readthedocs.io/en/quick_start/napari.html). Launch viewer with:\n\n```\nvideo.gui()\n```\n\nThe method of identification has to be specified:\n```\nvideo.set_method(method='sof', **method_kwargs)\n```\nAfter points are set, displacements can be calculated (using method, set in `set_method`):\n```\ndisplacements = video.get_displacements()\n```\nMultiprocessing can also be used by passing the `processes` argument:\n```\ndisplacements = video.get_displacements(processes=4)\n```\n\n# DEVELOPER GUIDELINES:\n* Add _name_of_method.py with class that inherits after `IDIMethods`\n* This class must have methods:\n\t* `calculate_displacements` with attribute `displacements`\n\t* `get_points` (static method - sets attribute video.points)\n* In `pyIDI` add a new method of identification in `avaliable_methods` dictionary.\n\n# Citing\nIf you are using the `pyIDI` package for your research, consider citing our articles:\n- \u010cufar, K., Slavi\u010d, J., & Bolte\u017ear, M. (2024). **Mode-shape magnification in high-speed camera measurements**. Mechanical Systems and Signal Processing, 213, 111336. https://doi.org/10.1016/J.YMSSP.2024.111336\n- Zaletelj, K., Gorjup, D., Slavi\u010d, J., & Bolte\u017ear, M. (2023). **Multi-level curvature-based parametrization and model updating using a 3D full-field response**. Mechanical Systems and Signal Processing, 187, 109927. https://doi.org/10.1016/j.ymssp.2022.109927\n- Zaletelj, K., Slavi\u010d, J., & Bolte\u017ear, M. (2022). **Full-field DIC-based model updating for localized parameter identification**. Mechanical Systems and Signal Processing, 164. https://doi.org/10.1016/j.ymssp.2021.108287\n- Gorjup, D., Slavi\u010d, J., & Bolte\u017ear, M. (2019). **Frequency domain triangulation for full-field 3D operating-deflection-shape identification**. Mechanical Systems and Signal Processing, 133. https://doi.org/10.1016/j.ymssp.2019.106287\n\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.4017153.svg)](https://doi.org/10.5281/zenodo.4017153)\n[![Build Status](https://travis-ci.com/ladisk/pyidi.svg?branch=master)](https://travis-ci.com/ladisk/pyidi)\n\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Python Image Displacement Identification.",
    "version": "0.30.2",
    "project_urls": {
        "documentation": "https://pyidi.readthedocs.io/en/latest/",
        "homepage": "https://github.com/ladisk/pyidi",
        "source": "https://github.com/ladisk/pyidi"
    },
    "split_keywords": [
        "computer vision",
        " dic",
        " displacement identification",
        " gradient-based"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "093fb4f1cf779f9578c7da065bd12112689d7937cb37cfacdd8cef4cc53b06e7",
                "md5": "070342131f7ed844a521411cd47a9362",
                "sha256": "079c823972cd9031dfa0e09043c079da62df791c549932de51266b9912bbe579"
            },
            "downloads": -1,
            "filename": "pyidi-0.30.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "070342131f7ed844a521411cd47a9362",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 53251,
            "upload_time": "2024-05-20T09:21:50",
            "upload_time_iso_8601": "2024-05-20T09:21:50.346727Z",
            "url": "https://files.pythonhosted.org/packages/09/3f/b4f1cf779f9578c7da065bd12112689d7937cb37cfacdd8cef4cc53b06e7/pyidi-0.30.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d9af6d90d9e83b45dbd738cdba0cf071abdbe2e19ab49d5f645e93e6d14b26bc",
                "md5": "5e835bc885c77cae697cda2d17495769",
                "sha256": "6e79c01c2236c5279d693120af740fcee2abd19dd5f4db87418c5d30ba512b35"
            },
            "downloads": -1,
            "filename": "pyidi-0.30.2.tar.gz",
            "has_sig": false,
            "md5_digest": "5e835bc885c77cae697cda2d17495769",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 42370,
            "upload_time": "2024-05-20T09:21:52",
            "upload_time_iso_8601": "2024-05-20T09:21:52.311478Z",
            "url": "https://files.pythonhosted.org/packages/d9/af/6d90d9e83b45dbd738cdba0cf071abdbe2e19ab49d5f645e93e6d14b26bc/pyidi-0.30.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-05-20 09:21:52",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "ladisk",
    "github_project": "pyidi",
    "travis_ci": true,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "pyidi"
}
        
Elapsed time: 1.76440s