-
-
Notifications
You must be signed in to change notification settings - Fork 55.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
extra cast causes rounding problems for scale #26658
base: 4.x
Are you sure you want to change the base?
Conversation
Looks good and safe as other datatypes than float32 are handled separately in the else. I would have avoided the 2nd change around src.convertTo which is only adding { } but otherwise the code is identical also looks fine to be included. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good and safe as other datatypes than float32 are handled separately in the else. I would have avoided the 2nd change around src.convertTo which is only adding { } but otherwise the code is identical also looks fine to be included.
Looks like a unit test is failing now. I'll need to look into that |
float shift_float = (float)dmin - (float)(smin * scale); | ||
|
||
// check if a rounding error will occur, we want the values to be in [dmin, dmax] | ||
if (rounds_outside_interval(smin, smax, scale_float, shift_float, dmin, dmax)) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if anyone knows an analytical solution, please share.
Pull Request Readiness Checklist
See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request
Patch to opencv_extra has the same branch name.
Related to #26588