Fix ElasticTransform displacement normalization for non-square images #9331
+4
−2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #9299
The displacement normalization was swapped -
dxwas divided by height anddyby width, but it should be the other way around since grid coordinates in_create_identity_gridare normalized by their respective dimensions (x by width, y by height).Tested on a 100x200 image with
alpha=[50, 50]:Equal alpha values should produce ~equal displacement in both directions. The current code gives 4x stronger horizontal displacement on a 2:1 image.
Square images are unaffected (both implementations identical), which explains why this wasn't caught before.
The failing CI is the v1 compatibility check - v1 has the same bug. Happy to fix v1 as well or skip the check for non-square images, whichever you prefer.