私は、画像からNxNパッチで独立成分分析(ICA)を使用して、画像信号内の成分を分離するプロジェクトに取り組んでいます。得られたM×N ^ 2アンミキシング行列の各列は、独立成分を含むN×Nフィルタに再整形されます。私のプロジェクトでは、このフィルタは特徴抽出のために新しい画像と畳み込まれています。
私の質問は、どのようにICAの結果であるこれらのNxNフィルタのDCオフセットを取り除くのですか?つまり、(MATLABの場合) sum(sum(filter))== 0 が 1 を返すようにするにはどうすればいいですか?各コンポーネントからフィルタの合計を差し引くだけでよいのでしょうか、それともフィルタの応答に影響しますか?
sum(sum(filter))== 0
1
フィルタの値がゼロ以外の値Xになる場合は、各フィルタ係数から X/number_of_coefficients を減算するのが適切ですか?
X/number_of_coefficients
線形フィルタから平均値(和ではなく)を除去すると、DCを除去するフィルタが得られます。
例えば:
N = 10; h = [0.5 1 0.5]; conv(ones(N,1), h, 'valid')
2になる。
N=10 h = [0.5 1 0.5]; h_high=h-mean(h); conv(ones(N,1), h_high, 'valid')
ゼロにつながります。
また、ハイパスフィルターを使用することもできます。