{ "info": { "author": "Se\u00e1n Hewitt", "author_email": "contact@2sh.me", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", "Operating System :: OS Independent", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Multimedia :: Graphics" ], "description": "# StereoscoPy\nThis is a Python script/library for\nconverting two images into a stereoscopic 3D image:\nanaglyph,\nside-by-side (cross-eye and parallel),\nover/under,\nwiggle GIF,\ninterlaced and\ncheckerboard.\n\n## Requirements\n* Python 3.4+ or Python 2.7+\n* Pillow\n* cv2 (optional for auto align)\n* numpy (optional for auto align)\n\n## Installation\nFrom the Python Package Index:\n```\npip install stereoscopy\n```\n\nWith the optional requirements for the auto align feature:\n```\npip install \"stereoscopy[auto_align]\"\n```\n\nOr download and run:\n```\npython setup.py install\n```\n\n## Command-Line\n### Help\n```\nStereoscoPy --help\n```\n\n### Cross-eyed (Right/Left)\nWith white 5px wide border and image division. Auto aligned, resized to be 450\npixels in width and shifted horizontally by 1 pixel.\n```\nStereoscoPy -A -R 400 0 -S 1 0 -x --div 5 --border 5 --bg 255 255 255 0 left.jpg right.jpg cross_eye.jpg\n```\n![](/example_images/cross_eye.jpg?raw=true \"Cross eyed\")\n\n### Anaglyph\nFor red-cyan glasses, there are various methods for creating anaglyphs available.\n```\nStereoscoPy -A -R 400 0 -S 1 0 -a left.jpg right.jpg anaglyph_wimmer.jpg\nStereoscoPy -A -R 400 0 -S 1 0 -am dubois left.jpg right.jpg anaglyph_dubois.jpg\nStereoscoPy -A -R 400 0 -S 1 0 -am gray left.jpg right.jpg anaglyph_gray.jpg\nStereoscoPy -A -R 400 0 -S 1 0 -am color left.jpg right.jpg anaglyph_color.jpg\nStereoscoPy -A -R 400 0 -S 1 0 -am half-color left.jpg right.jpg anaglyph_half_color.jpg\n```\n![](/example_images/anaglyph_wimmer.jpg?raw=true \"Wimmer anaglyph\") ![](/example_images/anaglyph_dubois.jpg?raw=true \"Dubois anaglyph\")\n![](/example_images/anaglyph_gray.jpg?raw=true \"Gray anaglyph\") ![](/example_images/anaglyph_color.jpg?raw=true \"Color anaglyph\")\n![](/example_images/anaglyph_half_color.jpg?raw=true \"Half-Color anaglyph\")\n\nThe Dubois anaglyph method for amber-blue glasses.\n```\nStereoscoPy -am dubois --cs amber-blue left.jpg right.jpg anaglyph_dubois_ab.jpg\n```\n\n### Wiggle GIF\nWithout alignment\n```\nStereoscoPy -R 400 0 -wt 400 left.jpg right.jpg simple.gif\n```\n![](/example_images/simple.gif?raw=true \"Simple\")\n\nShifting an image moves the right image in relation to the left image. An images can be shifted after the auto align to change its center.\n```\nStereoscoPy -A -R 400 0 -S 1 0 -wt 200 left.jpg right.jpg align_shift.gif\n```\n![](/example_images/align_shift.gif?raw=true \"Aligned and shifted\")\n\n### Squashed Parallel (Left/Right) and Top/Bottom for TVs\n```\nStereoscoPy -A -R 400 0 -S 1 0 -ps left.jpg right.jpg tv_left_right.jpg\nStereoscoPy -A -R 400 0 -S 1 0 -os left.jpg right.jpg tv_over_under.jpg\n```\n![](/example_images/tv_left_right.jpg?raw=true \"Top/Bottom\") ![](/example_images/tv_over_under.jpg?raw=true \"Left/Right\")\n\n### Two separate image outputs\nBefore converting to the stereoscopic outputs, I find this (or a slow wiggle GIF) to be a nice way to check for the correct dimensions, shift and rotation by switching between the two output images in an image viewer.\n```\nStereoscoPy --shift 19 30 --crop 20% 0 0 0 --resize 1920 1080 --offset 100% --parallel left.jpg right.jpg out1.jpg out2.jpg\n```\n\n### Misc\n20% cropped from the top, resized to 1920x1080 and offset to the right by 100%.\n```\nStereoscoPy --crop 20% 0 0 0 --resize 1920 1080 --offset 100% --cross-eye left.jpg right.jpg out.jpg\nStereoscoPy -C 20% 0 0 0 -R 1920 1080 -O 100% -x left.jpg right.jpg out.jpg\n```\n\n20% cropped from left and right and resized to be 1080 high and 0 width to preserve the aspect ratio.\n```\nStereoscoPy -R 0 1080 -C 0 20% 0 20% -o left.jpg right.jpg out.jpg\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/2sh/StereoscoPy", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "stereoscopy", "package_url": "https://pypi.org/project/stereoscopy/", "platform": "", "project_url": "https://pypi.org/project/stereoscopy/", "project_urls": { "Homepage": "https://github.com/2sh/StereoscoPy" }, "release_url": "https://pypi.org/project/stereoscopy/2.0.0/", "requires_dist": [ "Pillow", "opencv-python; extra == 'auto_align'", "numpy; extra == 'auto_align'" ], "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "summary": "StereoscoPy, stereoscopic 3D image creator", "version": "2.0.0" }, "last_serial": 4319925, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "73780cbdeca019a3d7d3bc18b79f8082", "sha256": "69a37c86336ab8c1c9ad0b965608010621c051991ca2861052ed406222272361" }, "downloads": -1, "filename": "stereoscopy-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "73780cbdeca019a3d7d3bc18b79f8082", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 11105, "upload_time": "2018-08-16T22:11:56", "url": "https://files.pythonhosted.org/packages/de/d0/1186f6c86889fc2a0afd87e2b66722ef72d62ec3082134aff18f1ac2db41/stereoscopy-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9558fe45cc1039cce3d25d39e240cb33", "sha256": "e6890bbf90fd67df5e5715f7a2e6a48e2c8fdf42d0e61d930d752e5acca970ef" }, "downloads": -1, "filename": "stereoscopy-1.0.0.tar.gz", "has_sig": false, "md5_digest": "9558fe45cc1039cce3d25d39e240cb33", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 10280, "upload_time": "2018-08-16T22:11:58", "url": "https://files.pythonhosted.org/packages/a7/f2/1af01d4de20c77f6f2cfb3adcf88c8563107d70097529ea74b00c811d00c/stereoscopy-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "f33ceb90b4aebba3ca9be571f335cf52", "sha256": "2295344f374eddfdd89b3dca3f8b4dd68be46a8cc19d4d5038f3ad06b14fdcae" }, "downloads": -1, "filename": "stereoscopy-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "f33ceb90b4aebba3ca9be571f335cf52", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 11059, "upload_time": "2018-08-16T22:50:52", "url": "https://files.pythonhosted.org/packages/c2/45/208fc49d5c1cbbe95f65af48b9a25d95f2859b35d58ca4297b90370501e9/stereoscopy-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "54c99605f0003ef06916d7b2f9d2e6e9", "sha256": "f411502297146d7d73badb362b1ff7780d5fbec065e26bbe9540a7a9e0359811" }, "downloads": -1, "filename": "stereoscopy-1.0.1.tar.gz", "has_sig": false, "md5_digest": "54c99605f0003ef06916d7b2f9d2e6e9", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 10244, "upload_time": "2018-08-16T22:50:53", "url": "https://files.pythonhosted.org/packages/09/66/0d1faf9d44e70fb51e7c0d151fcc62fa05cb91a9dbb5e70e93d8c6a64853/stereoscopy-1.0.1.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "3ab13c149ee6a3484a964581285235a2", "sha256": "20d9402476d935307de7651fed84adc071cba53c1662040e951769ac59fca807" }, "downloads": -1, "filename": "stereoscopy-1.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "3ab13c149ee6a3484a964581285235a2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 11383, "upload_time": "2018-08-22T12:42:20", "url": "https://files.pythonhosted.org/packages/9f/9a/1b481f39ad836d00f38201593430cda34b7fd5b779179560102eb52501bd/stereoscopy-1.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3277f1b4142f27e63f7df8c39cb81f3d", "sha256": "f1b091d4aa4fa443b00049f3134aa8bfebd09f7434462f34117c82e02d8d443d" }, "downloads": -1, "filename": "stereoscopy-1.2.0.tar.gz", "has_sig": false, "md5_digest": "3277f1b4142f27e63f7df8c39cb81f3d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 11165, "upload_time": "2018-08-22T12:42:21", "url": "https://files.pythonhosted.org/packages/fa/50/f92ddb4e985b9e79f1243918f186b7d450cad7b4a1535e3f5d5751b6cd86/stereoscopy-1.2.0.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "5b1b59c424651fb1cc0c3f14e46ac590", "sha256": "4e498035bcf9cbd48069f9e404540c24c02cdd6b637f1d427df546428d54e030" }, "downloads": -1, "filename": "stereoscopy-1.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "5b1b59c424651fb1cc0c3f14e46ac590", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 12588, "upload_time": "2018-08-23T00:51:27", "url": "https://files.pythonhosted.org/packages/08/ab/70ed4347686730e49fce4485793dd1e0c14ec1edc18cecf0ceea2a082a63/stereoscopy-1.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d93d0fdea5cf1641eb6053f682b33ab8", "sha256": "3ee4d7f2eb3855971a936f7f6b4d5d1cb70136da7deb422177103deaadfa01e0" }, "downloads": -1, "filename": "stereoscopy-1.3.0.tar.gz", "has_sig": false, "md5_digest": "d93d0fdea5cf1641eb6053f682b33ab8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 11829, "upload_time": "2018-08-23T00:51:29", "url": "https://files.pythonhosted.org/packages/43/70/aa84d9c232887725409ee61ea046af13d539379713ed28708eb7fc5be478/stereoscopy-1.3.0.tar.gz" } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "560b016281d35a35079000acc02f81e2", "sha256": "73e2398dd57040aa61ba6ec0689bfa56ea7b7d2750cbd404baaa644b71e129c5" }, "downloads": -1, "filename": "stereoscopy-1.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "560b016281d35a35079000acc02f81e2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 12587, "upload_time": "2018-08-23T19:38:34", "url": "https://files.pythonhosted.org/packages/b5/18/f101373957990357d1e222243992fb3d7cf89c2cca39d332faa1bc0d98bd/stereoscopy-1.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0a11e28adacdaa23ad24aea82ac31120", "sha256": "637a966752c367e2aad894434b900a116df4c4dea6ef65fbf1e5ececfbba1cd6" }, "downloads": -1, "filename": "stereoscopy-1.4.0.tar.gz", "has_sig": false, "md5_digest": "0a11e28adacdaa23ad24aea82ac31120", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 11828, "upload_time": "2018-08-23T19:38:35", "url": "https://files.pythonhosted.org/packages/d1/99/6ddb359f88463742d29e39cb79dbbd22e0c091ccfc2fde902cd6a1080e6e/stereoscopy-1.4.0.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "cd52e5d2759e07c2b8e6dcf44dd5c6f4", "sha256": "bab35154c41c0c80092be5450d44ffacc7cac8e8d7cda9b2e43cad0e609653fa" }, "downloads": -1, "filename": "stereoscopy-2.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "cd52e5d2759e07c2b8e6dcf44dd5c6f4", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "size": 15150, "upload_time": "2018-09-28T13:01:59", "url": "https://files.pythonhosted.org/packages/e2/2a/1a0a94d658e65337b2901f3da3bec160ac835a796c4027fec30d89420311/stereoscopy-2.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2ba14c550a6bf58786c9369223e7ae73", "sha256": "b870c2cbaae04ca302bd786d34e70627627a99e34df55ca27e973bb12915ab0f" }, "downloads": -1, "filename": "stereoscopy-2.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "2ba14c550a6bf58786c9369223e7ae73", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "size": 13021, "upload_time": "2018-09-28T13:01:07", "url": "https://files.pythonhosted.org/packages/2c/df/3f0f5d897ce22850b82da5fdc1e3c03920c6266efb5c7f1a257d392d5f3f/stereoscopy-2.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "93f6b0dfce8d1f7c6d42bc191c37950b", "sha256": "a7acb83eab561f4c23fe980fff3ebb475b262f7a9bb0ffeabbd6edd7a97bbe76" }, "downloads": -1, "filename": "stereoscopy-2.0.0.tar.gz", "has_sig": false, "md5_digest": "93f6b0dfce8d1f7c6d42bc191c37950b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "size": 13431, "upload_time": "2018-09-28T13:01:09", "url": "https://files.pythonhosted.org/packages/55/47/c3283e8cea47d96a8be55760074a8227a1c61799b0fcdee83c1d1e840e3b/stereoscopy-2.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "cd52e5d2759e07c2b8e6dcf44dd5c6f4", "sha256": "bab35154c41c0c80092be5450d44ffacc7cac8e8d7cda9b2e43cad0e609653fa" }, "downloads": -1, "filename": "stereoscopy-2.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "cd52e5d2759e07c2b8e6dcf44dd5c6f4", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "size": 15150, "upload_time": "2018-09-28T13:01:59", "url": "https://files.pythonhosted.org/packages/e2/2a/1a0a94d658e65337b2901f3da3bec160ac835a796c4027fec30d89420311/stereoscopy-2.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2ba14c550a6bf58786c9369223e7ae73", "sha256": "b870c2cbaae04ca302bd786d34e70627627a99e34df55ca27e973bb12915ab0f" }, "downloads": -1, "filename": "stereoscopy-2.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "2ba14c550a6bf58786c9369223e7ae73", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "size": 13021, "upload_time": "2018-09-28T13:01:07", "url": "https://files.pythonhosted.org/packages/2c/df/3f0f5d897ce22850b82da5fdc1e3c03920c6266efb5c7f1a257d392d5f3f/stereoscopy-2.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "93f6b0dfce8d1f7c6d42bc191c37950b", "sha256": "a7acb83eab561f4c23fe980fff3ebb475b262f7a9bb0ffeabbd6edd7a97bbe76" }, "downloads": -1, "filename": "stereoscopy-2.0.0.tar.gz", "has_sig": false, "md5_digest": "93f6b0dfce8d1f7c6d42bc191c37950b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "size": 13431, "upload_time": "2018-09-28T13:01:09", "url": "https://files.pythonhosted.org/packages/55/47/c3283e8cea47d96a8be55760074a8227a1c61799b0fcdee83c1d1e840e3b/stereoscopy-2.0.0.tar.gz" } ] }