2012-04-02 6 views
1

イメージを拡大するためにバイリニアフィルタを使用する場合(非整数の係数によって)、そのプロセスはロスレスですか?つまり、オリジナルの解像度、アップスケールされた画像、使用された正確なアルゴリズムがわかっていて、アップスケーリング(丸め誤差なし)の精度が損なわれない限り、元の画像を計算する方法はありますか?双線形フィルタリングは可逆ですか?

私の推測はそうだと思いますが、それはナプキンの1次元のケースのみに関するいくつかの計算に基づいています。

答えて

1

簡略化として1Dの場合を取る。各出力点は、入力点、すなわちのうちの2つの線形結合として表すことができる。

y_n = k_n * x_m + (1-k_n) * x_{m+1} 

次のようにベクトル表記で表すことができるこれらの方程式のセット全体、有する:

Y = K * X 

X入力ポイントの長さ - Mベクトルであり、Y出力ポイントの長さ - Nベクトル、Kkの(既知の)値を含む疎行列(サイズNxM)です。

補間を可逆にするには、Kは可逆行列でなければなりません。つまり、少なくともMの線形独立の行が必要です。これは、入力ポイントの各ペアの間に少なくとも1つの出力ポイントがある場合にのみ、真です。

+0

これは正確に私のナプキンの計算でしたが、私はそれが2Dの場合にも当てはまるかどうか疑問に思っていました:)入力ポイントの各ペアの間に1つの出力ポイントの条件は論理的であり、右? – lxgr

+0

@lxgr:同様のロジックが2Dに適用されると思いますが、今はそれを証明できません。 –

+0

@OliCharlesworth:フィルタリングは畳み込みと記述できます。フィルタカーネルが非周期的である場合、プロセスを逆にすることができます。狂った興味深いものを「デコンボリューション」という言葉で見てください。一般に、畳み込みカーネルを知っていて、十分なデータポイントを持っているならば、プロセスを元に戻すことができます。つまり、画像に非周期的なぼかしフィルタを適用し、エッジでデータを捨てず、解像度を下げない場合は、プロセスを元に戻すことができます。 – datenwolf