画像の補間について考えたい
今回は画像の補間(Interpolation)の話。
拡大・縮小、回転等の画像処理を行うときに、元々の画素とはずれた位置の画素値を求める必要がありますが、それらをどう埋める(補間する)のかといったものです。
基本的な話は昔に自分が書いた記事(↓)を参照してもらうとして、
もう少し踏み込んだ話を。
上の記事でも述べていますが、画像の補間として使われるのは
・ニアレストネイバー法(Nearest Neighbor, 最近傍補間)
・バイリニア法(Bilinear, 線形補間)
・バイキュービック法(Bicubic)
・ランツォシュ法(Lanczos)
の4つが主となっています。
これらはどれもシンプルな手法ではあるのですが、その分一長一短で、汎用的に使えるものではなく、結果も必ずしもよいとは言えません。
そこでもっと調査・考察を重ねて、優れた方法を見つけて実装したいという考え。
調べたい内容は例えばこんな感じ。
・もっと汎用的に使える手法はないのか?
・補間式を求める範囲は固定ではなく変更できるほうがいいのでは?
・原理的に範囲外(オーバーシュート、アンダーシュート)にならない手法はないのか?
・画素を点ではなく面として考えるとどうなる?
アジェンダ案としては以下の通り。予定は未定ですが。
アジェンダ案
・バイキュービック法の考察・一般化
・他の手法(面積平均法、B-Spline, Bessel, Mitchellなど?)について
・重みの補間ではなく画素値をそのまま補間する手法(スプライン補間?)について
・最新の論文を読み解く(Rapid, Detail-Preserving Image Downscalingなど?)
・DeepLearningを使った超解像について
とりあえず、ある程度考察済みのバイキュービック法について次以降の記事で紹介しようと思います。