Hatena::ブログ(Diary)

Every day is Carnival このページをアンテナに追加 RSSフィード

2009-06-25

[][][]シグモイド関数を使った色調変換処理 07:24 シグモイド関数を使った色調変換処理を含むブックマーク シグモイド関数を使った色調変換処理のブックマークコメント

色調変換(sigmoid)を追加

ソースは右クリックで見れます。


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

f:id:matsu4512:20090624203933p:image

という式で表される。

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


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

f:id:matsu4512:20090624204535p:image

(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;
}


変換した例


元画像

f:id:matsu4512:20090624205141j:image


a = 10

f:id:matsu4512:20090624205136j:image


a = 150

f:id:matsu4512:20090624205130j:image



あとついでに、jpegで保存する機能と

Ctrl_Zで一つ前の画像の状態に戻す機能を付けました。

トラックバック - http://d.hatena.ne.jp/matsu4512/20090625/1245882295
Connection: close