Closed hgaiser closed 6 months ago
According to provided log the difference is in the last or last two decimal digits. The difference may appear due to compiler optimization or slightly different operations order for floats/doubles. There is nothing to fix.
Thanks for your response, I was worried that'd be the case. Good to have verified though :+1:
System Information
OpenCV python version: 4.9.0 Operating System / Platform: ArchLinux and Docker container with Debian Bullseye on aarch64 Python version: 3.12.3 on ArchLinux, 3.9.16 on Debian
Detailed description
The function
findChessboardCorners
produces slightly different results on the same input, depending on which system it runs on. The two systems are:The difference in values are minimal, but it causes a slight inconvenience with unit testing, which should pass on both systems. The current workaround is to increase the tolerance, but ideally the values will be identical.
Steps to reproduce
On this image:
Produces this result on amd64:
And this result on aarch64:
For example the second to last row has values
[[ 44.67389 24.946123]]
on aarch64 and[[ 44.673893 24.946121]]
on amd64. These differences are minimal, but they affect downstream computations like intrinsic calibration, which exacerbates the effect.Issue submission checklist