In the bilinear and bicubic interpolators the ROI derived weights are simply reset to one after using them to check if the pixels are within ROI, resulting in pixels outside of the ROI participating the output and consequent generation of dark pixels around the ROI borders.
All examples are basically throwing away ROI info and just considering nodata instead, but the actual weights should be a combination of the two instead.
We should find all places where this is happening and fix accordingly (and then write tests, oh fun).
In the bilinear and bicubic interpolators the ROI derived weights are simply reset to one after using them to check if the pixels are within ROI, resulting in pixels outside of the ROI participating the output and consequent generation of dark pixels around the ROI borders.
Non exaustive examples:
All examples are basically throwing away ROI info and just considering nodata instead, but the actual weights should be a combination of the two instead.
We should find all places where this is happening and fix accordingly (and then write tests, oh fun).