{ "info": { "author": "Laurent Thomas", "author_email": "laurent132.thomas@laposte.net", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Science/Research", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Topic :: Scientific/Engineering :: Image Recognition" ], "description": "\u00ef\u00bb\u00bf# Multi-Template-Matching\nMulti-Template-Matching is a package to perform object-recognition in images using one or several smaller template images. \nThe template and images should have the same bitdepth (8,16,32-bit) and number of channels (single/Grayscale or RGB). \nThe main function `MTM.matchTemplates` returns the best predicted locations provided either a score_threshold and/or the expected number of objects in the image. \n\n# Installation\nUsing pip in a python environment, `pip install Multi-Template-Matching` \nOnce installed, `import MTM`should work. \nExample jupyter notebooks can be downloaded from the tutorial folder of the github repository and executed in the newly configured python environement. \n\n# Documentation\nThe package MTM contains mostly 2 important functions: \n\n## matchTemplates \n`matchTemplates(listTemplates, image, method=cv2.TM_CCOEFF_NORMED, N_object=float(\"inf\"), score_threshold=0.5, maxOverlap=0.25, searchBox=None)` \n\nThis function searches each template in the image, and return the best N_object location which offer the best scores and which do not overlap above the `maxOverlap` threshold. \n\n__Parameters__\n- _listTemplates_: \n list of tuples (LabelString, Grayscale or RGB numpy array) templates to search in each image, associated to a label \n\n- _image_ : Grayscale or RGB numpy array \n image in which to perform the search, it should be the same bitDepth and number of channels than the templates\n\n- _method_ : int \n one of OpenCV template matching method (0 to 5), default 5=0-mean cross-correlation\n\n- _N_object_: int \n expected number of objects in the image\n\n- score_threshold: float in range [0,1] \n if N>1, returns local minima/maxima respectively below/above the score_threshold\n\n- _maxOverlap_: float in range [0,1] \n This is the maximal value for the ratio of the Intersection Over Union (IoU) area between a pair of bounding boxes.\n If the ratio is over the maxOverlap, the lower score bounding box is discarded.\n\n- _searchBox_ : tuple (X, Y, Width, Height) in pixel unit \n optional rectangular search region as a tuple\n\n__Returns__\n- Pandas DataFrame with 1 row per hit and column \"TemplateName\"(string), \"BBox\":(X, Y, Width, Height), \"Score\":float \n - if N=1, return the best match independently of the score_threshold \n - if N \n\n# Funding\nThis project has received funding from the European Union\u00e2\u20ac\u2122s Horizon 2020 research and innovation program under the Marie Sklodowska-Curie grant agreement No 721537 ImageInLife. \n\n

\n\"ImageInLife\"\n\"MarieCurie\"\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/multi-template-matching/MultiTemplateMatching-Python", "keywords": "object-recognition object-localization", "license": "", "maintainer": "", "maintainer_email": "", "name": "Multi-Template-Matching", "package_url": "https://pypi.org/project/Multi-Template-Matching/", "platform": "", "project_url": "https://pypi.org/project/Multi-Template-Matching/", "project_urls": { "Homepage": "https://github.com/multi-template-matching/MultiTemplateMatching-Python" }, "release_url": "https://pypi.org/project/Multi-Template-Matching/1.5.1/", "requires_dist": [ "numpy", "opencv-python-headless (==4.1.0.25)", "scikit-image", "scipy", "pandas" ], "requires_python": "", "summary": "Object-recognition in images using multiple templates", "version": "1.5.1" }, "last_serial": 5955713, "releases": { "1.2": [ { "comment_text": "", "digests": { "md5": "0e455abffdae0cddf9306e7d1b9890c1", "sha256": "4b04b084514ddc148136dafdbfea95ffd71d9e1b209fef537eec31a9235c148f" }, "downloads": -1, "filename": "Multi_Template_Matching-1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "0e455abffdae0cddf9306e7d1b9890c1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 21283, "upload_time": "2019-07-16T14:49:29", "url": "https://files.pythonhosted.org/packages/e9/d9/02ebf4adcde4ab9db466528cc2057aa702d64f469cbe66b46fa022caeb9a/Multi_Template_Matching-1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b466eb8c5d8d2d97cc42ab4058b04e77", "sha256": "d33ae5462edf164f66b750bb4f5c6df547966340c009c91af0acdfe928d14c48" }, "downloads": -1, "filename": "Multi-Template-Matching-1.2.tar.gz", "has_sig": false, "md5_digest": "b466eb8c5d8d2d97cc42ab4058b04e77", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8131, "upload_time": "2019-07-16T14:49:31", "url": "https://files.pythonhosted.org/packages/8d/f4/05c74e61a7dfc11bdfa499ec2f2391e0d43a36037caaf9dfa4da660c2985/Multi-Template-Matching-1.2.tar.gz" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "5ac2bfc40ad0d5a0d96cb349a0745bdc", "sha256": "ed3c618e22f0a07313c0edd285c6ffb6480dbb66971a842b7e5ab5724c88379e" }, "downloads": -1, "filename": "Multi_Template_Matching-1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "5ac2bfc40ad0d5a0d96cb349a0745bdc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 23118, "upload_time": "2019-07-18T09:40:11", "url": "https://files.pythonhosted.org/packages/5a/75/7dfdfcc965822733c2c6c00e1a688edc460e795d7ca69a7ec33c3ac5cc92/Multi_Template_Matching-1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "48dc69fa342a8dc5859901319a576b1a", "sha256": "acd910af260fbba15320a1193baef78157c82444d650f762f30f1a911c6707b3" }, "downloads": -1, "filename": "Multi-Template-Matching-1.3.tar.gz", "has_sig": false, "md5_digest": "48dc69fa342a8dc5859901319a576b1a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9544, "upload_time": "2019-07-18T09:40:13", "url": "https://files.pythonhosted.org/packages/54/44/e0c412d9c4fc84f3d82082a7bbf82de4110ae9009bd90d5946fbb7265ba6/Multi-Template-Matching-1.3.tar.gz" } ], "1.4": [ { "comment_text": "", "digests": { "md5": "66ad33661ff43710c71faa699d04c497", "sha256": "28de5ad1044f909b0815035fd3fa32cabf8430c752330f7821774d4f6bec7aea" }, "downloads": -1, "filename": "Multi_Template_Matching-1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "66ad33661ff43710c71faa699d04c497", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 23443, "upload_time": "2019-07-23T15:00:02", "url": "https://files.pythonhosted.org/packages/a4/8a/c5832e7257f4d7c5c5bcfba1f5316e5d5960ece9c20d9d6878d24d69cbdc/Multi_Template_Matching-1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e5d6dc2e9296e5305eb5982fcbc142f7", "sha256": "fdf31c4dc8285d5eaba990a8bd5edca9f4f9e3e16b336822dac3694d6a32ed7c" }, "downloads": -1, "filename": "Multi-Template-Matching-1.4.tar.gz", "has_sig": false, "md5_digest": "e5d6dc2e9296e5305eb5982fcbc142f7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9869, "upload_time": "2019-07-23T15:00:03", "url": "https://files.pythonhosted.org/packages/88/41/c9f0bd6922689451bbae0c2b7fb153934f05e51c08bd74157afd31296555/Multi-Template-Matching-1.4.tar.gz" } ], "1.5.1": [ { "comment_text": "", "digests": { "md5": "31b141e39e8fabbc8d96aea6f9e4a200", "sha256": "9780fb05e7dfbf46801027517ac32eea982834992815efa2c05698783422e702" }, "downloads": -1, "filename": "Multi_Template_Matching-1.5.1-py3-none-any.whl", "has_sig": false, "md5_digest": "31b141e39e8fabbc8d96aea6f9e4a200", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 23748, "upload_time": "2019-10-10T15:57:56", "url": "https://files.pythonhosted.org/packages/0b/fb/02a0df672f527c74435e386fcb469e132571627281a6d0a0b8d58aa82b38/Multi_Template_Matching-1.5.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cfc9a6dfd987e60f54509e99bb8002f9", "sha256": "769e9cffdaad51bb0ed4a6ccd5048d79eaafb417de54616cf2f36b556e9b3739" }, "downloads": -1, "filename": "Multi-Template-Matching-1.5.1.tar.gz", "has_sig": false, "md5_digest": "cfc9a6dfd987e60f54509e99bb8002f9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10073, "upload_time": "2019-10-10T15:57:57", "url": "https://files.pythonhosted.org/packages/19/6c/142b2b91a6300d10aecd721e1e7a4a9f1e555afd9eb40c384e91bac268e2/Multi-Template-Matching-1.5.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "31b141e39e8fabbc8d96aea6f9e4a200", "sha256": "9780fb05e7dfbf46801027517ac32eea982834992815efa2c05698783422e702" }, "downloads": -1, "filename": "Multi_Template_Matching-1.5.1-py3-none-any.whl", "has_sig": false, "md5_digest": "31b141e39e8fabbc8d96aea6f9e4a200", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 23748, "upload_time": "2019-10-10T15:57:56", "url": "https://files.pythonhosted.org/packages/0b/fb/02a0df672f527c74435e386fcb469e132571627281a6d0a0b8d58aa82b38/Multi_Template_Matching-1.5.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cfc9a6dfd987e60f54509e99bb8002f9", "sha256": "769e9cffdaad51bb0ed4a6ccd5048d79eaafb417de54616cf2f36b556e9b3739" }, "downloads": -1, "filename": "Multi-Template-Matching-1.5.1.tar.gz", "has_sig": false, "md5_digest": "cfc9a6dfd987e60f54509e99bb8002f9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10073, "upload_time": "2019-10-10T15:57:57", "url": "https://files.pythonhosted.org/packages/19/6c/142b2b91a6300d10aecd721e1e7a4a9f1e555afd9eb40c384e91bac268e2/Multi-Template-Matching-1.5.1.tar.gz" } ] }