シグモイド関数を使った色調変換処理

色調変換(sigmoid)を追加
ソースは右クリックで見れます。


まず、シグモイド関数とは

という式で表される。
この関数を色調変換に用いると、画像の明暗がハッキリする。


プログラム中では上の式を変形して

(f(x):変換後の画素値, x:元の画素値, M:255, a:パラメータ)
を使っている。
aはパラメータでこの値が大きければコントラストがより強調されて
小さければ逆に強調されなくなります。


コードはこんな感じで書いています。

for(var i:uint = 0; i < 256; i++){
	a = (Number(i - 128) / 255.0) * gamma;
	color_tbl[i] = int(255.0/(1.0 + Math.exp(-a)));
	if(color_tbl[i] > 255) color_tbl[i] = 255;
}


変換した例


元画像


a = 10


a = 150



あとついでに、jpegで保存する機能と
Ctrl_Zで一つ前の画像の状態に戻す機能を付けました。