mirror of
https://github.com/opencv/opencv.git
synced 2026-09-11 12:52:33 -05:00
objdetect: do not modify the input features in FaceRecognizerSF::match - #29804 `FaceRecognizerSF::match()` normalizes its two `InputArray` features in place, writing through to the caller's buffers, and returns a wrong score when the two overlap. ### Fix Normalize both features into their own destinations. This yields bit-exact the same values as the in-place form, checked across a range of shapes and depths including a non-continuous ROI, so scores for non-overlapping inputs do not move. ### Pull Request Readiness Checklist - [x] I agree to contribute to the project under Apache 2 License. - [x] To the best of my knowledge, the proposed patch is not based on a code under GPL or another license that is incompatible with OpenCV - [x] The PR is proposed to the proper branch - [ ] There is a reference to the original bug report and related work (no issue reports this; #7298 is the related RFC) - [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable (accuracy test added in-repo; it reuses the existing model, so there is no opencv_extra patch) - [ ] The feature is well documented and sample code can be built with the project CMake (n/a — bug fix, no API, sample or documentation change)