私の内側のループには、プロファイリングに問題があることが示されている計算が含まれています。
アイデアは、グレースケールピクセルx(0 <= x <= 1)を取り、「そのコントラストを上げる」ことです。私の要件はかなり緩く、次のとおりです。
- x <.5の場合、0 <= f(x)<x
- x> .5の場合、x <f(x)<= 1
- f(0)= 0
- f(x)= 1-f(1-x)、つまり「対称」である必要があります
- できれば、機能はスムーズでなければなりません。
したがって、グラフは次のようになります。
。
私には2つの実装があります(それらの結果は異なりますが、両方とも適合しています):
float cosContrastize(float i) {
return .5 - cos(x * pi) / 2;
}
float mulContrastize(float i) {
if (i < .5) return i * i * 2;
i = 1 - i;
return 1 - i * i * 2;
}
したがって、これらの実装の1つに対するマイクロ最適化、または独自のより高速な独自の式のいずれかを要求します。
たぶんあなたの一人はビットをいじることさえできます;)