いぬおさんのおもしろ数学実験室

おいしい紅茶でも飲みながら数学、物理、工学、プログラミング、そして読書を楽しみましょう

画像処理(2)

 画像処理(1)につづき、もう少し紹介しましょう。PCで写真(画像データ)を処理し、埋もれてしまっていた情報を見やすくするなどします。

コントラストを変える
近い明るさのドットばかりが揃った画像は見づらくなります。コントラストが低い画像、と言います。ぼけて見づらいのではなく、異なる点の判別をしにくくて見づらくなるのです。コントラストを高くすれば見やすい画像になります。

f:id:Inuosann:20191121220649p:plain

コントラストの低い写真は、平たく言うとどこもかしこも近い明るさなのです。通常、画像の各点の明るさは0~255の整数値で表します。これを80~180に圧縮したのが2枚目です。例えば1枚目のある点が60の明るさだとしましょう。60/255=0.235なので、その点は2枚目では(180-80)×0.235+80=103.5の明るさになります(下の図を参照)。

f:id:Inuosann:20191121222441p:plain

一般に、1枚目で明るさx(0≦x≦255)の点をy(a≦y≦b)に変換するとき、yは次のような式で求められます。使っているのは単純な比例の計算です。

f:id:Inuosann:20191121222530p:plain

ネガ・ポジ変換
いわゆる「ネガ」画像を作ります。明るいドットは暗く、暗いドットは明るくして新しい画像を作ればよいのです。
ソラリゼーション
ネガ・ポジ変換の拡張と言えます。この明るさからこの明るさまでならこう変換する、と定義しておき、それに従って新しい画像をつくります。0~50の明るさは100~180に、50~100は0~50に、など変わった変換の仕方でもよいのです。

f:id:Inuosann:20191121220805p:plain

ポスタリゼーション
各点の明るさが本来256段階(0~255)なのを、0,60,120,180,240の5段階にしたもの。例えば134、156の明るさの点は同じ120にしています。アニメの色塗りみたいになります。
平滑化
あるドットを打つとき、周辺9ドット(3×3)の平均値を求めて色を決定します。本来その点だけの色で描くべき画像を周辺の点の色も考慮に入れるわけですから、エッジがきちんと出ない何となくぼやけた画像になります。これを用いるとゴマのようなノイズを消せます。

f:id:Inuosann:20191121220945p:plain

ソーベルフィルタ
ソーベルの考案したソーベルフィルタを使ってみます。エッジ(輪郭)を強調します。

先鋭化
ソーベルフィルタなどでエッジを検出し、ぼやけた画像の細部をはっきりさせる処理をしてみます。元の画像に、検出したエッジを付け加えて表示する感じです。毛並みまで見えます!

f:id:Inuosann:20191121221140p:plain

 こうした画像処理は、もちろん魔法ではありませんから画像にもとから含まれていない情報は引き出せません。例えばエッジを求めるのに必要な情報が含まれていないときはエッジはきちんとは求まらないのです。