iOS アプリケーションの特定の写真効果にガウス方程式を使用しています。
私が使う:
double sigmaX = ...; //some value here
for(int i=0;i<height;i++)
{
double F = 0;
double step = -(pos)*width/20;
/*height,width,pos - all predefined, no problem there*/
for(int j=0;j<4*width;j+=4)
{
F = (double) ((1/1)*exp(-sigmaX*(pow((step++)/1, 2.0)))) ;
//do some operation here...
}
}
F の値は、他の場所で使用される特定の強度を決定するために使用されます。
ここまでは順調です.... F は、予想どおり典型的なベル カーブです。
しかし、問題は、ユーザー入力に従ってこの曲線の標準偏差をスケーリングしたいということです。
たとえば、次の画像では、曲線を緑から赤の線 (青は中間かもしれません) に、できれば線形のステップでシフトしたいと思います。
ここで、次の標準表記が与えられます。
それを自分のコードに実装した方法と比較すると、1/sqrt(sigmaX) を変化させてスケール/SD を変更するというアイデアが浮かびました。線形ステップで 1/sqrt(sigmaX) をインクリメントして (線形インクリメントを取得するため)、または x^n でインクリメントして SD の n 乗インクリメントを取得しようとしましたが、どれも機能しませんでした。
私はコンセプトに少しこだわっています。
定義済みの比率で標準偏差をスケーリングする方法を教えてください。つまり、元の SD の 1.34 倍または 3.78 倍にすることができ、それに応じて +3sigma を -3sigma スパンにスケールアップします。