Hi,
This code bilinear_inter.py · GitHub compares how linear interpolation is implemented in opencv, pytorch and simpleitk libraries.
The input array is:
[[1, 2],
[3, 4]]
The output of this script is the following:
cv2:
[[1.   1.25 1.75 2.  ]
[1.5  1.75 2.25 2.5 ]
[2.5  2.75 3.25 3.5 ]
[3.   3.25 3.75 4.  ]]
torch (no align corners):
tensor([[[[1.0000, 1.2500, 1.7500, 2.0000],
[1.5000, 1.7500, 2.2500, 2.5000],
[2.5000, 2.7500, 3.2500, 3.5000],
[3.0000, 3.2500, 3.7500, 4.0000]]]])
torch (align corners):
tensor([[[[1.0000, 1.3333, 1.6667, 2.0000],
[1.6667, 2.0000, 2.3333, 2.6667],
[2.3333, 2.6667, 3.0000, 3.3333],
[3.0000, 3.3333, 3.6667, 4.0000]]]])
sitk:
[[1.  1.5 2.  0. ]
[2.  2.5 3.  0. ]
[3.  3.5 4.  0. ]
[0.  0.  0.  0. ]]
cv2 does not align corners while pytorch gives the choice (align_corners parameter).
However, I don’t understand why SimpleITK gives such an output… I’d like to know what’s wrong in my code (bilinear_inter.py · GitHub).
Thanks