{ "info": { "author": "NOhs, TobelRunner", "author_email": "", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: C++", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "Affine Transformation: C++17, OpenMP, Python\n============================================\n\n|travis| |appveyor| |codecov| |rtd| |pypi| |python_vers| |GCC| |license| |codacy| |black| |requirements|\n\n\n.. |travis| image:: https://travis-ci.org/NOhs/affine_transform_nd.svg?branch=master\n :target: https://travis-ci.org/NOhs/affine_transform_nd\n :alt: Travis Status\n.. |appveyor| image:: https://ci.appveyor.com/api/projects/status/bh3gsedf83576wus/branch/master?svg=true\n :target: https://ci.appveyor.com/project/NOhs/affine-transform-nd/branch/master\n :alt: AppVeyor Status\n.. |codecov| image:: https://codecov.io/gh/NOhs/affine_transform_nd/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/NOhs/affine_transform_nd\n :alt: Codecov Status\n.. |rtd| image:: https://readthedocs.org/projects/affine-transform-nd/badge/?version=latest\n :target: https://affine-transform-nd.readthedocs.io/en/latest/?badge=latest\n :alt: ReadTheDocs Status\n.. |pypi| image:: https://img.shields.io/pypi/v/affine_transform.svg?color=dark%20green\n :target: https://pypi.org/project/affine_transform\n :alt: PyPI\n.. |python_vers| image:: https://img.shields.io/pypi/pyversions/affine_transform \n :alt: PyPI - Python Version\n.. |GCC| image:: https://img.shields.io/badge/GCC-6%20%7C%207%20%7C%208%20%7C%209-blue\n :alt: Compiler Version\n.. |license| image:: https://img.shields.io/github/license/NOhs/affine_transform_nd.svg?color=blue\n :target: https://opensource.org/licenses/MIT\n :alt: license\n.. |codacy| image:: https://api.codacy.com/project/badge/Grade/e39c4c5b913d4237b77fa07f679ab521\n :target: https://www.codacy.com/app/NOhs/affine_transform_nd?utm_source=github.com&utm_medium=referral&utm_content=NOhs/affine_transform_nd&utm_campaign=Badge_Grade\n :alt: code quality\n.. |black| image:: https://img.shields.io/badge/code%20style-black-000000.svg\n :target: https://github.com/ambv/black\n :alt: code style\n.. |requirements| image:: https://requires.io/github/NOhs/affine_transform_nd/requirements.svg?branch=master\n :target: https://requires.io/github/NOhs/affine_transform_nd/requirements/?branch=master\n :alt: Requirements Status\n\n\nThis project explores how C++17 and OpenMP can be combined to write a\nsurprisingly compact implementation of n-dimensional parallel affine\ntransformations which are linked into Python via the ``affine_transform``\nmodule.\n\nWhile this project is still under development, the following features\nare supported:\n\n- Linear and cubic (without prefiltering) interpolation\n- Constant boundaries\n- Compiling code for arbitrarily dimensional data\n- Parallelism via OpenMP\n- Arbitrary shaped output arrays, allowing e.g. to only extract a transformed slice\n\nShort example usage\n-------------------\n\n.. code-block:: python\n\n import numpy as np\n\n from affine_transform import transform\n from mgen import rotation_from_angle\n\n import matplotlib.pyplot as plt\n\n\n # Create a simple white square in an image\n original = np.zeros((601, 401))\n original[100:300, 100:300] = 1\n\n # Rotate by 22.5\u00b0 (around the centre of the square (200,200))\n # and shift +200 in x and +100 in y\n transformed = transform(\n original, rotation_from_angle(np.pi / 8), np.array([200, 100]), origin=(200, 200)\n )", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/NOhs/affine_transform_nd", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "affine-transform", "package_url": "https://pypi.org/project/affine-transform/", "platform": "", "project_url": "https://pypi.org/project/affine-transform/", "project_urls": { "Homepage": "https://github.com/NOhs/affine_transform_nd" }, "release_url": "https://pypi.org/project/affine-transform/0.2.6/", "requires_dist": null, "requires_python": ">=3.6", "summary": "Easy to use multi-core affine transformations", "version": "0.2.6" }, "last_serial": 5887622, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "1354b465c990b23128c9e437fb71b6f9", "sha256": "3609dcdee83716283f5e8bb4d1562088546fe601b9371f603c9126b8069f1ec8" }, "downloads": -1, "filename": "affine_transform-0.1.0.tar.gz", "has_sig": false, "md5_digest": "1354b465c990b23128c9e437fb71b6f9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4328, "upload_time": "2019-07-22T16:38:00", "url": "https://files.pythonhosted.org/packages/53/6b/bd69418aff74dc3a68cbf5bdcfef376edacfed63d8b37f6deb46fb6988ac/affine_transform-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "dcaa84cb56568431adfb4ab9be073639", "sha256": "424a2cdd43989948d677571ee19669a6bbcedcc52a8dc6ea7fe720f9a8ee96c6" }, "downloads": -1, "filename": "affine_transform-0.2.0.tar.gz", "has_sig": false, "md5_digest": "dcaa84cb56568431adfb4ab9be073639", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5262, "upload_time": "2019-07-22T23:18:25", "url": "https://files.pythonhosted.org/packages/26/e6/9f071482621b917a5a61053489629905ca08465d6f8b9c0fce7fed2af1f9/affine_transform-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "f9681e9893b208959a1de4e1a8aa2462", "sha256": "3f5b267b733b1655f4d88ac55cee5cec0bbd3765249737b3a6f9bfcdf346dbb9" }, "downloads": -1, "filename": "affine_transform-0.2.1.tar.gz", "has_sig": false, "md5_digest": "f9681e9893b208959a1de4e1a8aa2462", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1055019, "upload_time": "2019-07-23T23:10:18", "url": "https://files.pythonhosted.org/packages/eb/66/77a9f6a19682485ef57ce178e8c6f95e37ebf358648daac4f752a859deaa/affine_transform-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "cd29ad38d09aed4f7be48ceb621eadfc", "sha256": "4a31482d48d0ac0b164d278587f0f75f9b75c3250c9b8e7ac12dd88e7679bb36" }, "downloads": -1, "filename": "affine_transform-0.2.2.tar.gz", "has_sig": false, "md5_digest": "cd29ad38d09aed4f7be48ceb621eadfc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1095899, "upload_time": "2019-07-23T23:50:08", "url": "https://files.pythonhosted.org/packages/24/30/fea820f5ea01abd5fd86f5075734a26ffa3b29c5c87956b16c73c8e49c16/affine_transform-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "5d40deb786d4421db00b9c8a3c7b8636", "sha256": "e2e4d489fc16681e6a62bc4f3ea58037942bcea2dbfa01cee9d85ed3a0c3ccf9" }, "downloads": -1, "filename": "affine_transform-0.2.3.tar.gz", "has_sig": false, "md5_digest": "5d40deb786d4421db00b9c8a3c7b8636", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1096212, "upload_time": "2019-08-20T22:26:08", "url": "https://files.pythonhosted.org/packages/fb/39/765a4e06c0d62d9f5e5c8968240add791c550b75039948394df78aca35e3/affine_transform-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "5c632c3d198cad2e3d686d32dc360d81", "sha256": "2b3a66fc414d4b6d6a9659dd8f1554d63d759c7c5e4343980840a3dd3f3723a9" }, "downloads": -1, "filename": "affine_transform-0.2.4.tar.gz", "has_sig": false, "md5_digest": "5c632c3d198cad2e3d686d32dc360d81", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.6", "size": 1096346, "upload_time": "2019-08-20T22:48:56", "url": "https://files.pythonhosted.org/packages/36/d8/1a3ed2d35a777488a861588784d22eff0433c09dcbba11d4c31cf8c53aea/affine_transform-0.2.4.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "e26beceec4cecab1160448513193bcff", "sha256": "251d99a5ba1a30eecc81411c19c98f387ca5274af93f618febcefc54390b4abc" }, "downloads": -1, "filename": "affine_transform-0.2.5.tar.gz", "has_sig": false, "md5_digest": "e26beceec4cecab1160448513193bcff", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.6", "size": 1096326, "upload_time": "2019-09-24T21:53:47", "url": "https://files.pythonhosted.org/packages/c8/7a/6834a9261b1c0cd646981fd433c1bf505efd772d6ae6501fc01276f12721/affine_transform-0.2.5.tar.gz" } ], "0.2.6": [ { "comment_text": "", "digests": { "md5": "45a19d541b914c26c32eda08a975af2b", "sha256": "5d123ef9b1a3974aa43e68d410812b06abe880e26a52c844086b5aa3fc819b28" }, "downloads": -1, "filename": "affine_transform-0.2.6.tar.gz", "has_sig": false, "md5_digest": "45a19d541b914c26c32eda08a975af2b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 1103504, "upload_time": "2019-09-25T23:31:46", "url": "https://files.pythonhosted.org/packages/3e/06/27aea07da0e1c3d441a2e4838548661f8f427577a96fdea39095c54a1255/affine_transform-0.2.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "45a19d541b914c26c32eda08a975af2b", "sha256": "5d123ef9b1a3974aa43e68d410812b06abe880e26a52c844086b5aa3fc819b28" }, "downloads": -1, "filename": "affine_transform-0.2.6.tar.gz", "has_sig": false, "md5_digest": "45a19d541b914c26c32eda08a975af2b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 1103504, "upload_time": "2019-09-25T23:31:46", "url": "https://files.pythonhosted.org/packages/3e/06/27aea07da0e1c3d441a2e4838548661f8f427577a96fdea39095c54a1255/affine_transform-0.2.6.tar.gz" } ] }