濃度を変えてみる

page 画像処理の中で最も簡単で、且つ効果的な処理方法に濃度変換または階調変換と云う方法があります。
画像を平面的な画素の集合体で表現したとき、各画素はそれぞれに濃度レベルを持っており、 この濃度レベルを他のレベルに変えることによって様々な効果を出すことができます。
★ この濃度レベルは画像の光信号をデジタル信号に変換したときに決まってしまいますが、 ごく一般的な場合でいえば、RGB各色の1画素を8ビットのデジタル信号で取り込みます。
前のページと重複する部分もありますが、デジタルの最小単位をビットと呼んでいます。 1ビットは2の1乗、すなわち2通りの表現になり、 したがって、2の8乗は256通りの表現、つまり256階調まで表現できることになる訳です。
これがRGB各色毎にこれだけの表現を持つので合計で約1670万色の表現能力をもつことになります。  一般にフルカラーと云っているのはこの色数のことです。
★ しかし、これはあくまでもコンピュータの中での理論的な表現能力のことを云っているだけのことであり、 実際の一般画像の能力はそれよりかなり少ないのではないかと思われます。
これは画像の入力手段であるデジタルカメラや、カラースキャナーの性能で決まってしまいます。  あとはその濃度レベルの範囲で変換してみるだけになります
★ デジタルではビット単位で表現しますが、アナログではデシベル単位のエネルギーで表現します。  オーディオでS/Nが何Db (デシベル) あると云う言葉を聞きますが、 これはエネルギーレベルの表現であり、これをビットで比較すると1ビットは約6Dbに相当します。
画像がどれくらいまで階調表現できるかを示すのにダイナミックレンジと云う言葉を使い、 この画像のダイナミックレンジは何デシベル位あると云った表現をしますが、 これをデジタル表現で言い直すと、デシベルを6で割った値がビット数になります。

page 以上のような背景を承知した上で、いろんな濃度変換を試してみます。
下図左のグラフは横軸に原画像の濃度レベルを、縦軸に変換後の出力濃度レベルを示しています。  この例では変換曲線が直線と云うことは、 入力と出力レベルが1対1に対応しているので濃度変換しても原画像と同じ画像が出力されます。
Graph1.gif Graph2.gif
一方、上図右のグラフは原画像の濃度レベル64、128、192の点を固定化しておき、 0点の出力濃度レベルをRGBそれぞれに変え、255点の出力濃度レベルをRGB共に同じ値に変えてみた例です。
このグラフ特性で濃度変換すると出力画像は、ソラリゼーションと云うちょっとした特殊効果的な表現になります。
どんな画像になるか、実際の例は画像処理サンプルのページに掲載しています。
ここで、濃度変換特性は入力画像の濃度レベルに対して出力レベルをプロットしていけば、 それに従った曲線が描ける訳ですが、この例では折れ線グラフでなく二次Bスプライン関数と云う方法で曲線近似しています。
したがって、指定点に接することなく2点間を結ぶ直線に接触しながら近似するように描かれます。

page 上の濃度変換特性は単に一例であって他の利用例は沢山あります。
下の例は最も一般的な変換方法ですが、左が原画像で、ややメリハリがなくマゼンタ色が強いので、 変換特性曲線を緩いS字型にして更にマゼンタ成分を落として変換してみた例です。
左端の画像を右端の特性曲線を使って変換出力した画像を中央に示していますが、 簡単な処理ながらかなり見栄えのよい効果が出ていると思われます。
OrgImg1.gif nodoimg1.gif Graph3.gif

下のグラフは、上の原画像(左端)に対する濃度分布を、輝度、Y、M、C、R、G、Bの順に並べて示しています。
graphbw.gif graphy.gif graphm.gif graphc.gif

graphr.gif graphg.gif graphb.gif

この分布をみても分かるように濃度レベルが偏っています。  ここでは実際例を示していませんが、この濃度分布が濃度値0から255まで一様に分布するように変換すると、 これが一種の画像強調になり、これまで埋もれて見えなかった部分の画像が見えるようになってきます。
たとえば、写真のシャドー部 (暗い部分) が潰れてしまっていることがありますが、 この処理でその部分が見えるようになります。

cutgraph.gif cutimg.gif page 特に意味のあるものではありませんが、 右の例は濃度値の中央部分だけ通すような濃度特性にして変換したときの画像です。
このように、特定領域の濃度だけを通すような山を幾つか作って変換しそれを2値画像に直すと、 地図の等高線のような画像になるでしょう。