Releases: multi-template-matching/MultiTemplateMatching-Python
Version 2.0.0
Major release, dropping the dependency on pandas.
The list of hit returned by matchTemplates (and consumed by other functions) is directly a list.
Also added extensive type hints to functions
Version 1.6.6
Changed licence to MIT for easier integration with other projects
Version 1.6.5 - Handle 0-width/height images
Minor version that throws a more explicit error message when providing 0-width or height image or template.
Also added pip install matplotlib
to tutorial notebooks since not an dependency of MTM.
Version 1.6.4
Provide faster search with mulitple templates by parallelizing the search -> PR by @bartleboeuf (thanks !)
Version 1.6.3 - Use latest OpenCV
Update internal NMS code to work with latest OpenCV, and force opencv version to min 4.5.4,
Fix #14
Version 1.6.2.post1 - Fix OpenCV dependency
The version fixes issue with the latest version of opencv (4.5.4, maybe before)), for which cv2.NMSBoxes
return an array of different shape.
Just by limiting the version of OpenCV to max 4.3.0.
Next release of MTM will be modified to use the latest version of OpenCV.
1.6.2 - Check templates sizes
As suggested in issue #11, the size of the template is checked before any computation to make sure they fit in the search region or image.
Also updated requirements and packaging (pyproject.toml)
Add support for mask with template
The comparison of the pixel values can be limited to a fraction of the template by providing an associated mask image, which should have the same dimension than the template.
To do so the tuple for a given template should be
("label", template_array, mask_array)
using a mask is only possible with method 0/TM_SQ_DIFF (not compatible with the Non-Maxima suppression though) and 3/TM_CCORR_NORMED
using a mask is optional (and not always beneficial)
the previous format
("label", template_array)
is still acceptable and within the list of templates, some can have a mask while other not.
See new tutorial with mask.
Fix issue when no detections
See release note for 1.5.3.post2
Fix issue when no detections
- Now findMatches return an empty dataFrame with proper column names if no object is found (prevent an issue with NMS then)
- better handle the different template matching method (method 0/SQDIFF is supported by some functions, but not
matchTemplates
)