以下の記事は,バイリニア補間に関するニッチだけど重要な内容です.周辺記事も読むことで,バイリニア補間を再考する機会が得られました.感謝です.
記事の内容をものすごく簡単にまとめると以下の通り.
- 画像を縮小・拡大するときにサブピクセル分ずれる現象がなぜ発生するのか
- 以下のGIF画像は先の記事より
- 解決するために正規化された座標値を使う
- 本投稿の最後にコードあり
お手製の画像ピラミッドを作っている時に,ピラミッドレベルによって画像がサブピクセル分ずれていることに気が付き,上記の記事に行き着いたという話です.
ということで,実際にOpenCV (C++) で実装してみました.BilinearScaling
関数が,記事で紹介されている最終的な方法に近いと思います.