{
"info": {
"author": "Siavash Khallaghi",
"author_email": "siavashk@ece.ubc.ca",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 3 - Alpha",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3.4",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
"Topic :: Scientific/Engineering"
],
"description": "#############\nPython-CPD\n#############\n.. image:: https://travis-ci.com/siavashk/pycpd.svg?branch=master\n :target: https://travis-ci.com/siavashk/pycpd\n\nPure Numpy Implementation of the Coherent Point Drift Algorithm.\n\nMIT License.\n\n*************\nIntroduction\n*************\n\nThis is a pure numpy implementation of the coherent point drift `CPD `_ algorithm by Myronenko and Song. It provides three registration methods for point clouds: 1) Scale and rigid registration; 2) Affine registration; and 3) Gaussian regularized non-rigid registration.\n\nThe CPD algorithm is a registration method for aligning two point clouds. In this method, the moving point cloud is modelled as a Gaussian Mixture Model (GMM) and the fixed point cloud are treated as observations from the GMM. The optimal transformation parameters maximze the Maximum A Posteriori (MAP) estimation that the observed point cloud is drawn from the GMM.\n\nThe registration methods work for 2D and 3D point clouds. For more information, please refer to my `blog `_.\n\n*************\nPip Install\n*************\n.. code-block:: bash\n\n pip install pycpd\n\n************************\nInstallation From Source\n************************\n\nClone the repository to a location, referred to as the ``root`` folder. For example:\n\n.. code-block:: bash\n\n git clone https://github.com/siavashk/pycpd.git $HOME/pycpd\n\nInstall the package:\n\n.. code-block:: bash\n\n pip install .\n\nFor running sample registration examples under ``examples``, you will need ``matplotlib`` to visualize the registration. This can be downloaded by running:\n\n.. code-block:: bash\n\n pip install matplotlib\n\n*****\nUsage\n*****\n\nEach registration method is contained within a single class inside the ``pycpd`` subfolder. To try out the registration, you can simply run:\n\n.. code-block:: bash\n\n python examples/fish_{Transform}_{Dimension}.py\n\nwhere ``Transform`` is either ``rigid``, ``affine`` or ``deformable`` and ``Dimension`` is either ``2D`` or ``3D``. Note that examples are meant to be run from the ``root`` folder.\n\n\n",
"description_content_type": "",
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/siavashk/pycpd",
"keywords": "image processing,point cloud,registration,mesh,surface",
"license": "MIT",
"maintainer": "",
"maintainer_email": "",
"name": "pycpd",
"package_url": "https://pypi.org/project/pycpd/",
"platform": "",
"project_url": "https://pypi.org/project/pycpd/",
"project_urls": {
"Homepage": "https://github.com/siavashk/pycpd"
},
"release_url": "https://pypi.org/project/pycpd/1.0.5/",
"requires_dist": [
"numpy",
"future"
],
"requires_python": "",
"summary": "Pure Numpy Implementation of the Coherent Point Drift Algorithm",
"version": "1.0.5"
},
"last_serial": 4379231,
"releases": {
"0.0": [
{
"comment_text": "",
"digests": {
"md5": "9ce36649d7fb53ca11dc43b91add360d",
"sha256": "32962e2fd02a33577b470352edfd8697d28ac938248a98bc0e6376c8bd151d64"
},
"downloads": -1,
"filename": "pycpd-0.0.tar.gz",
"has_sig": false,
"md5_digest": "9ce36649d7fb53ca11dc43b91add360d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 2746,
"upload_time": "2017-03-15T20:13:15",
"url": "https://files.pythonhosted.org/packages/14/48/95d53a5e823196f3c02b4614e85d00852ce9ed4433a296d993a4099ba620/pycpd-0.0.tar.gz"
}
],
"0.1": [
{
"comment_text": "",
"digests": {
"md5": "e320d9a881be5b84bcc15f01c5987c61",
"sha256": "86f5335a1b9ad7d53bbd4e12c3f092f0006c59aef17fad28cf5e9f55de03d4bf"
},
"downloads": -1,
"filename": "pycpd-0.1-py2-none-any.whl",
"has_sig": false,
"md5_digest": "e320d9a881be5b84bcc15f01c5987c61",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 8169,
"upload_time": "2017-03-19T01:39:40",
"url": "https://files.pythonhosted.org/packages/8b/9d/b75eac4931b0041629787617323e97b6290755ec52d4277a95ec9fa5858e/pycpd-0.1-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "4a92dc1b1eb3cf9b6a90744141218f30",
"sha256": "3eb20cd152571c5100052fa50c101231a6400b148a27d263d9c05b4f2f7ee240"
},
"downloads": -1,
"filename": "pycpd-0.1.tar.gz",
"has_sig": false,
"md5_digest": "4a92dc1b1eb3cf9b6a90744141218f30",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 4096,
"upload_time": "2017-03-19T01:39:43",
"url": "https://files.pythonhosted.org/packages/3d/c8/ef2b519c67e4f9fa77e29d84144d2f67297d31066563ba404dd4cffeb199/pycpd-0.1.tar.gz"
}
],
"0.2": [
{
"comment_text": "",
"digests": {
"md5": "bf8a1bf66e558183172c51dec2c2e8a6",
"sha256": "578c202e7fda8d401c9c7b52166f330c8060e41c2f9903df0d9ee44d6e03876e"
},
"downloads": -1,
"filename": "pycpd-0.2-py2-none-any.whl",
"has_sig": false,
"md5_digest": "bf8a1bf66e558183172c51dec2c2e8a6",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 9053,
"upload_time": "2017-06-27T22:15:36",
"url": "https://files.pythonhosted.org/packages/7f/52/637b78a90dcfdc1fadf3c06bae8f64a84d1a43bcb258dd9e12012c1b67f0/pycpd-0.2-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "eb12575d3c2b94ec10289116366aa0f5",
"sha256": "47f416adb1bcdabf65f364e3a314cef76b23397e87f8817d321786edb096a83c"
},
"downloads": -1,
"filename": "pycpd-0.2-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "eb12575d3c2b94ec10289116366aa0f5",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 9055,
"upload_time": "2017-06-27T22:15:38",
"url": "https://files.pythonhosted.org/packages/cf/6f/179acae9a6e642bc1fd2d59233a035d7e7b0c389bc9db8ec07697a96f4c2/pycpd-0.2-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "9267a6a1bd11111a411dbfc619aff318",
"sha256": "4bfc0cd3fa2f6e17b32ddc25197dee200243d35c49aee08f70ccb0e07b6ff497"
},
"downloads": -1,
"filename": "pycpd-0.2.tar.gz",
"has_sig": false,
"md5_digest": "9267a6a1bd11111a411dbfc619aff318",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 4649,
"upload_time": "2017-06-27T22:15:39",
"url": "https://files.pythonhosted.org/packages/5f/04/491d67e68cab6df0fe1bc3728fe0120da904517210794a1351e69c6638c1/pycpd-0.2.tar.gz"
}
],
"0.3": [
{
"comment_text": "",
"digests": {
"md5": "e34a95e503f46b78d562d96d7e843020",
"sha256": "f2bb4f8659fd3b95c18baa9aec0d6e7486e7a175d2e068ca7f9c916ac9f621e7"
},
"downloads": -1,
"filename": "pycpd-0.3-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "e34a95e503f46b78d562d96d7e843020",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 9073,
"upload_time": "2017-07-12T01:56:12",
"url": "https://files.pythonhosted.org/packages/70/b4/f8ed1ea2e2fbb1d48df1036397ddbf45d13fcc88b63101f90d225ef52880/pycpd-0.3-py2.py3-none-any.whl"
}
],
"0.4": [
{
"comment_text": "",
"digests": {
"md5": "62da4c5e13910364a80c445eb9ae95c8",
"sha256": "103f3e7f4fc5e154441298f0c05d05b2197363a417d3d4f18ee35e8c1f800476"
},
"downloads": -1,
"filename": "pycpd-0.4-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "62da4c5e13910364a80c445eb9ae95c8",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 9108,
"upload_time": "2018-01-17T02:17:39",
"url": "https://files.pythonhosted.org/packages/e1/d2/f5e1ea951f67e5c316163286ab95ca1a6cefc40bda791a305cc14d42822c/pycpd-0.4-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "1e845d23bd3a592531c54139d1956776",
"sha256": "df2c629f9150a70146c5296a0634cc2f040bd30f7d0ca77c9cd60f98545ba392"
},
"downloads": -1,
"filename": "pycpd-0.4.tar.gz",
"has_sig": false,
"md5_digest": "1e845d23bd3a592531c54139d1956776",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 5027,
"upload_time": "2018-01-17T02:17:40",
"url": "https://files.pythonhosted.org/packages/ae/39/36bf0778d21c1363989df77bd213c104a2e84cc28ce9606e6c4354d76994/pycpd-0.4.tar.gz"
}
],
"1.0": [
{
"comment_text": "",
"digests": {
"md5": "b8292330640599c0b27100c85f2eb777",
"sha256": "30d624ee979f3d14514dfe71594cfa8a31d600e4a847aaf92bcee92499266953"
},
"downloads": -1,
"filename": "pycpd-1.0-py2-none-any.whl",
"has_sig": false,
"md5_digest": "b8292330640599c0b27100c85f2eb777",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 9006,
"upload_time": "2018-08-07T07:03:40",
"url": "https://files.pythonhosted.org/packages/3d/4e/89859375d236e4629ce6d17a348a05d5249dc177f1a1f6a315ca4d10ed85/pycpd-1.0-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "62bed3fa267788a918a9846728844401",
"sha256": "f2cfaa25a0be47fdafc3fd7a4030bbd0213782439e1c73abc7ead78a395f45a0"
},
"downloads": -1,
"filename": "pycpd-1.0.tar.gz",
"has_sig": false,
"md5_digest": "62bed3fa267788a918a9846728844401",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 5590,
"upload_time": "2018-08-07T07:03:42",
"url": "https://files.pythonhosted.org/packages/2f/0a/231bae604802f7226925cace4ecb4dd0788e2e57a846eb821299e42b3e54/pycpd-1.0.tar.gz"
}
],
"1.0.1": [
{
"comment_text": "",
"digests": {
"md5": "15f6bd9b631b3faa7db9d0160f292972",
"sha256": "b5f0b29f9c1732c11f5f8a23da1ea3935fd4e16d08fd267e3423d40bad412924"
},
"downloads": -1,
"filename": "pycpd-1.0.1-py2-none-any.whl",
"has_sig": false,
"md5_digest": "15f6bd9b631b3faa7db9d0160f292972",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 9029,
"upload_time": "2018-08-07T07:04:43",
"url": "https://files.pythonhosted.org/packages/71/2e/420507e9d9899157abfae7c3e24ba6fc5301484aa898731ea4f7cd07cdf2/pycpd-1.0.1-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "1953ed440bc8f6a1f2d3066c91c001c5",
"sha256": "2f11064955a3ad383001e75b1fb2280b3adca1039e5259ef94863a1490222d4a"
},
"downloads": -1,
"filename": "pycpd-1.0.1.tar.gz",
"has_sig": false,
"md5_digest": "1953ed440bc8f6a1f2d3066c91c001c5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 5591,
"upload_time": "2018-08-07T07:04:45",
"url": "https://files.pythonhosted.org/packages/60/5e/02284a15ce1143720694ec239297915302b32d582d071dff61268ca1ac98/pycpd-1.0.1.tar.gz"
}
],
"1.0.2": [
{
"comment_text": "",
"digests": {
"md5": "ea2824aee4a649187268c5cb83495a7a",
"sha256": "6ad224960e3f147f95c889dab5b317e24f8565b65d04992f0784bdf5232c3b98"
},
"downloads": -1,
"filename": "pycpd-1.0.2-py2-none-any.whl",
"has_sig": false,
"md5_digest": "ea2824aee4a649187268c5cb83495a7a",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 9122,
"upload_time": "2018-08-08T04:32:54",
"url": "https://files.pythonhosted.org/packages/07/08/b991035bf47c6e254a9fe4de6bac770219b3ed152a4d2658b3ffe2633668/pycpd-1.0.2-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "af59e031653a177424911cf51c39fa0b",
"sha256": "ceb5eb53b4b8f83161a11df2a61450d8aeffa77be7734ddd564e8125b7e841e6"
},
"downloads": -1,
"filename": "pycpd-1.0.2.tar.gz",
"has_sig": false,
"md5_digest": "af59e031653a177424911cf51c39fa0b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 5696,
"upload_time": "2018-08-08T04:32:55",
"url": "https://files.pythonhosted.org/packages/6e/8a/47bb92a886f8259e66b3602ef89110e99e8d68da9c2b30094d6099796d48/pycpd-1.0.2.tar.gz"
}
],
"1.0.3": [
{
"comment_text": "",
"digests": {
"md5": "ed2bc802236f97ebb2c016ec93614e52",
"sha256": "e750f7c09246f62232b882e3410206cf5d96214d26497d9f3b3a5513ae414b9e"
},
"downloads": -1,
"filename": "pycpd-1.0.3-py2-none-any.whl",
"has_sig": false,
"md5_digest": "ed2bc802236f97ebb2c016ec93614e52",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 9126,
"upload_time": "2018-08-08T05:32:20",
"url": "https://files.pythonhosted.org/packages/6e/a7/8af2ebb6ecaa4b379d07b374e25b3785d388fe339612d3845730caa4652e/pycpd-1.0.3-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "c79167bd7a63aa71f4cfd429b845efb1",
"sha256": "4d7253f9ce790bf3b10c23a411afd7e27de523c2e5e022ce55cc3ce116c92c37"
},
"downloads": -1,
"filename": "pycpd-1.0.3.tar.gz",
"has_sig": false,
"md5_digest": "c79167bd7a63aa71f4cfd429b845efb1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 5735,
"upload_time": "2018-08-08T05:32:21",
"url": "https://files.pythonhosted.org/packages/63/42/bf447fddc700eccf44b19f75c054282dc62924387fa521f1e28ed9d9bc42/pycpd-1.0.3.tar.gz"
}
],
"1.0.4": [
{
"comment_text": "",
"digests": {
"md5": "8f132531bf07dfa742fa245d7b57a030",
"sha256": "cceef365f0c2434036604e477477ac391197d5aaa7cbd21779b3faa86241294d"
},
"downloads": -1,
"filename": "pycpd-1.0.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8f132531bf07dfa742fa245d7b57a030",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 8039,
"upload_time": "2018-10-07T02:35:10",
"url": "https://files.pythonhosted.org/packages/3c/53/126c0f66a1f60fcc6f6d386b5cc178d45eec3243e3c7e3fb2d405fdfb479/pycpd-1.0.4-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "c4d07d1f335e63baf46a37e1810c79e9",
"sha256": "a68dc5de15a8f8e446b2b6496ac47010f39a5c1de4cacc3d05e2e05c26e9f8e4"
},
"downloads": -1,
"filename": "pycpd-1.0.4.tar.gz",
"has_sig": false,
"md5_digest": "c4d07d1f335e63baf46a37e1810c79e9",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 5632,
"upload_time": "2018-10-07T02:35:11",
"url": "https://files.pythonhosted.org/packages/fd/0a/15019c5d9c3aba2f5c9ad1a95c38b9f67e5d5a40a7256f10fea8377533ae/pycpd-1.0.4.tar.gz"
}
],
"1.0.5": [
{
"comment_text": "",
"digests": {
"md5": "957c6963f9631276eb2ccbb89b9dba83",
"sha256": "b68a122c6ca8048a4896eccf83c3b758af8a7bd5a22176e7b3d4365426ee40df"
},
"downloads": -1,
"filename": "pycpd-1.0.5-py2-none-any.whl",
"has_sig": false,
"md5_digest": "957c6963f9631276eb2ccbb89b9dba83",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 7192,
"upload_time": "2018-10-15T22:08:28",
"url": "https://files.pythonhosted.org/packages/dc/ff/4456e999c48ab823b0faffd50a9a5515346be52d8a820762dfff783ca35e/pycpd-1.0.5-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "e7efddfc32e5aa85ea39ee4e644d88d8",
"sha256": "8becbe7951df4607cd2c296db1087011325b1ec1cb05462bbe8003123b934da7"
},
"downloads": -1,
"filename": "pycpd-1.0.5.tar.gz",
"has_sig": false,
"md5_digest": "e7efddfc32e5aa85ea39ee4e644d88d8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 5243,
"upload_time": "2018-10-15T22:08:29",
"url": "https://files.pythonhosted.org/packages/a7/18/e7e8158bf336d8ef90545776d294f204a24bae7b3b78305219522565dbfc/pycpd-1.0.5.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "957c6963f9631276eb2ccbb89b9dba83",
"sha256": "b68a122c6ca8048a4896eccf83c3b758af8a7bd5a22176e7b3d4365426ee40df"
},
"downloads": -1,
"filename": "pycpd-1.0.5-py2-none-any.whl",
"has_sig": false,
"md5_digest": "957c6963f9631276eb2ccbb89b9dba83",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 7192,
"upload_time": "2018-10-15T22:08:28",
"url": "https://files.pythonhosted.org/packages/dc/ff/4456e999c48ab823b0faffd50a9a5515346be52d8a820762dfff783ca35e/pycpd-1.0.5-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "e7efddfc32e5aa85ea39ee4e644d88d8",
"sha256": "8becbe7951df4607cd2c296db1087011325b1ec1cb05462bbe8003123b934da7"
},
"downloads": -1,
"filename": "pycpd-1.0.5.tar.gz",
"has_sig": false,
"md5_digest": "e7efddfc32e5aa85ea39ee4e644d88d8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 5243,
"upload_time": "2018-10-15T22:08:29",
"url": "https://files.pythonhosted.org/packages/a7/18/e7e8158bf336d8ef90545776d294f204a24bae7b3b78305219522565dbfc/pycpd-1.0.5.tar.gz"
}
]
}