4.画像処理

 Scion Imageにおける画像処理は,メニュー「Process」から実行される.図4−1にそのメニューの内容と処理の結果を示す.図に示す原画像は,ディジタル化した胸部X線写真の一部を,処理の比較のために切り出した画像である.なお,このメニューのいくつかは,3×3画素のカーネルのたたみ込みで実行される.たたみ込みとは,画像処理において最も頻繁に用いられる数学的な演算である.

                        図4−1 画像処理メニュー「Process」とその処理例

 

A. Smooth(平滑化)

 「Smooth」は画像を平滑化する処理であり,ノイズ除去処理などに用いられる.通常は図4−2に示すカーネル(荷重マトリックスとも呼ばれる)がたたみ込まれる.

図4−2 「Smooth」による平滑化に用いられるカーネル

 

B. Sharpen(鮮鋭化)

 「Sharpen」は画像を鮮鋭化する処理である.Sharpenの実行によって,画像の2階微分を行うラプラシアン(Laplacian)フィルタによる処理結果を原画像に加算した処理画像が表示される.図4−3に示すカーネルがたたみ込まれる.なお,画像の2階微分は画素値の分布の傾きの変化量を求める操作である.均等に変化する分布に対しては出力は低いが,不均等に変化する場合には大きな値が出力されるため,エッジ検出に用いられることが多い.

図4−3 「Sharpen」による鮮鋭化に用いられるカーネル

 

C. Shadow(影付け)

 「Shadow」では画像の1階微分を行うソーベル(Sobel)オペレータにより作られる画像を原画像に加算した処理画像が表示される.ここでは,図4−4−aに示すような光源の方向(Direction)を指定することによって,画像に影をつけるような処理を行うことができる.bに,「N」(North:北)を指定したときたたみ込まれるカーネルを示す.これによって,南から光が当たって,北側に影ができるような画像が作成される.なお,画像の1階微分は画素値の分布の傾きを求める操作である.ある特定の方向のエッジを強調したい場合に用いられる.また,縦方向と横方向の微分値の出力を組み合わせて特定の画素値の方向を求めることも可能である.

図4−4 「Shadow」による影付けにおける光源方向の選択とカーネル

 

D. Find Edges(エッジ検出)

 「Find Edges」では,画像の縦方向と横方向のそれぞれの1階部分の画像から出力される値の2乗和を表示する.このときたたみ込まれるカーネルを図4−5に示す.aが縦方向,bが横方向の1階微分のためにたたみ込まれるカーネルである.

図4−5 「Finde Edges」によるエッジ検出に用いられるカーネル

 

E. Rank Filters(順位)

 「Rank Filters」では,3×3画素における領域内の画素値に順位をつけることによって,さまざまな処理を行う.「Rank Filters」を選択すると,図4−6に示すウィンドウが開き,実行する処理をボタンで選択する.

               

図4−6 「Rank Filtes」で選択できる5つの処理          図4−7 「Rank Filtes」の「Median」によるスパイクノイズの除去

 Median(Reduce Noise)はいわゆる中央値フィルタであり,領域内の画素値を大小順に並べたときの中央値を中心の画素値に置き換えるものである.この処理は画像のスパイク(穴空き)ノイズの除去に有効である.図4−7にスパイクノイズを含む画像aと,処理後の画像bを示す.いくらか画像がボケるが,スパイクのいずはすべて除去されていることがわかる.

 Minimum(Erode)とMaximum(Dilate)では,それぞれの領域内の最小値と最大値を中心の画素値に置き換える処理を行う.

 Openingは,Minimum(Erode)を実行した後にMaximum(Dilate)を実行し,Closingはその逆を実行する.これらの処理は,それぞれ膨張処理,収縮処理とも呼ばれる.

 Iterationsでは,選択された処理を連続して実行する回数を指定する.

 

F. Dither(ディザ)

 「Dither」は,濃淡画像を白黒のビットパターンで表すとき用いる.これは図4−8に示すように2×2画素の領域を考えると,5つの濃度を表すパターンが考えられる.この原理を利用して,濃淡画像をビットパターンで表現するものである.

    図4−8 「Dither」のビットパターンの例

 

G. Convolve(たたみ込み)

 「Convolve」は表示している画像に対して任意のカーネルのたたみ込みを実行する.ただし,カーネルの大きさは,3×3画素以上,63×63画素以下の正方形で与える必要がある.このカーネルは,メモ帳などのアプリケーションを用いて,TEXT形式のファイルで作成すればよい.このとき数字と数字の間は”タブコード”(Tabキーを押す)でなければならない.

 

H. Binary(2値化)

 「Binary」は,9つのサブメニューに分かれており,2値画像についての処理を行う.図4−9はメニューの内容と実行回数を10回に指定したときの結果である.

            図4−9 画像処理メニュー「Process」と「Binary」の各処理の例

-> Make Binary(2値化の実行)

 画像の2値化(画像を白と黒の2つの値で表す)を実行する.ただし,この処理の前に,メニュー「Options」の「Threshold」か「Density Slice」を用いて,前処理を行う必要がある.

-> Erode(黒い画素の収縮処理)

 2値画像における黒い画素の収縮処理を行う.注目点を中心とした3×3画素に,「Set Count」で指定した値以上の白い画素があれば,中心を白とする.

-> Dilate(黒い画素の膨張処理)

 2値画像における黒い画素の膨張処理を行う.注目点を中心とした3×3画素に,「Set Count」で指定した値以上の黒い画素があれば,中心を黒とする.

-> Opne(オープン)

 「Erode」,「Dilate」の順で処理を行う.

-> Close(クローズ)

 「Dilate」,「Erode」の順で処理を行う.

-> Set Count(画素数の設定)

 「Erode」と「Dilate」において,注目領域における画素数の指定をする.

-> Set Iterations(回数の設定)

 連続して処理を行うときの処理の回数を指定する.「Open」,「Close」では,ここでの指定回数をとするとき,それぞれ「Erode」を回,「Dilate」を回,またはその逆を行う.

-> Outline

 領域の輪郭部を抽出する.

-> Skeletonize

 画像の骨格成分を抽出する.

 

I. Arithmetic(数値演算)

 「Arithmetic」は,現在表示している画像の画素値についての演算を行う(図4−10).「Add」,「Sbutract」,「Multiply」,「Divide」では,Calibrateというチェックボックスがり,画素値を保存されている画素値の持つ範囲ではなく,実数の範囲で処理するためのオプションである.これにより,計算結果の桁あふれを防ぐことができる.ただし,実行時に必要なメモリ容量が増加する.

                     

図4−10 「Arithmetic」による画像値に対する各種演算     図4−11 「Arithmetic」の「Add」による実数の範囲における計算の指定

-> Add(加算)

 画素値に一定値を加える(図4−11)

-> Subtract(減算)

 画素値から一定値を減ずる.

-> Multiply(積算)

 画素値に一定値を掛ける.

-> Divide(除算)

 画素値を一定値で割る.

-> AND(論理積)

 画素値をビットパターンに展開し,指定した値のビットパターンにおける各桁の論理積を出力する.図4−12に2進数の演算例を示す.aでは画素値153と,指定した値240との論理積を示す.論理積では,どちらかかに0があれば出力は0となるため,240との論理積は画像を16階調に変換することになる.なお,2入力についてのAND,OR,XORの結果を図4−12−bに示す.

 図4−12 「Arithmetic」の「AND,OR,XOR」による2進数の演算

-> OR(論理和)

 画素値と指定値の論理和を出力する.

-> XOR(排他的論理和)

 画素値と指定値の排他的論理和を出力する.

-> Log(対数)

 画素値をログスケールに変換する.

 

J. Image Math(画像間の演算)

 「Image Math」はポップアップメニューで指定した2枚の画像に対して,いくつかの演算を実行する(図4−13).その内容は,「Arithmetic」と同じであるが,2つの画像間で演算を行う点が異なっている.なお,ここではReal Mathを指定しておくと,実数の範囲で演算できる.

図4−13 「Image Math」による2つの画像間の演算

 

K. FFT(高速フーリエ変換)

 「FFT(fast Fourier transform)」は図4−14に示すようなサブメニューからなり,離散的フーリエ変換,フーリエ逆変換を実行し,パワースペクトルを表示する.ただし,高速フーリエ変換を利用しているため,画素数が2のべき乗の積(128×128など)で表されている必要がある.

離散的フーリエ変換: フーリエ変換はアナログ関数についての定義されているが,それをディジタル信号のような離散的な信号に対して処理を行うための計算方法.

パワースペクトル: フーリエ変換後の信号は実数と虚数からなる複素数で表されるが,それぞれの2乗の和のことをパワースペクトルと呼ぶ.

高速フーリエ変換: 離散的フーリエ変換を高速に計算するための計算法のほとる.

図4−14 「FFT(高速フーリエ変換)」のサブメニュー

-> FFT

 フーリエ変換を実行し,パワースペクトルを表示する.画像のフーリエ変換の結果は,二次元平面状の複素数として表され,その実数部と虚数部はそれぞれ,振幅スペクトルと位相スペクトルと呼ばれる.パワースペクトルは,その実数部の2乗で表されるものである.

-> Inverse FFT

 フーリエ逆変換を実行し,周波数空間のスペクトルを実空間の画像に変換する.

-> Redisplay Power Spectrum

 パワースペクトルの再計算を行う.

-> Swap Quadrants

 スペクトル面の4象限を交換する.FFTの性質により,計算後の結果においては,スペクトルの本来の中心部は画像の角に分散しており,第1象限と第2象限をそれぞれ第3象限と第4象限とに交換することで,望ましいスペクトルを得ることができる.なお,Scion Imageでは,自動的に象限の交換を行っているため,ここでは特に気にする必要はない.

 

L. その他

 画像処理にはA〜K項に述べたほかに,「Subtract Background」,「Apply LUT」,「Enhance Contrast」,「Equalize」,「Fix Colors」がある.ここでは,それらのなかで2つについて説明する.

-> Subtract Background(背景の除去)

 これは,画像の背景成分を補正する処理である.その方法には,一次元的な補正方法(水平方向,または垂直方向)と,球面を背景として補正する二次元的な補正方法,および水平・垂直の補正方法を組み合わせた方法がある.

-> Equalize(ヒストグラムの平滑化)

 画像のヒストグラムが平坦になるような処理である.すなわち,すべての画素値(濃度値)において,ヒストグラムの高さ(密度)が同じになるような濃度変換をするものである.これによって,コントラストを強調できる.