1.画像のディジタル化

【概要】

 医用画像には,CTやMRIのようなディジタル撮影装置を利用して撮影されるディジタル画像と,X線フィルムに代表されるアナログ画像がある.アナログ画像をコンピュータで解析するためにはディジタル化(=A/D変換:Analog-to-Digital conversion)を行わなければならない.

 ディジタル化の基本原理は,”標本化”と量子化”で成りなっている.最初に標本化を行い,その後に量子化を行う.この順番を入れ替えることはできない.画像においては標本化は空間分解能を,量子化は濃度分解能を決定する.

図1に,アナログ信号をディジタル化する方法の概要を,一次元的に簡単に示す.

 

図1 アナログ信号のディジタル化概要. 

a:原信号,b:標本化操作,c:標本化後の”半ディジタル信号”.横軸方向はディジタルであるが,縦軸方向はアナログの状態.d:量子化操作,e:ディジタル化の結果.

 

 まず,原信号aをある一定間隔(サンプリング間隔)ごとに標本化を行う(b,c).これは,信号の横軸方向(位置情報)のディジタル化の操作である.次にその高さ(振幅情報)を量子化する(d).これは連続値である原信号の振幅値(画像においては濃度値,輝度値に相当)を整数値(画素値に相当)に変換することである.そして,最終的にその値を保存して,ディジタルのデータを得る(e).

 

 図2に,二次元画像のディジタル化の概要を示す.

図2 二次元画像のディジタル化の概要

a:原画像,b:垂直方向(ここでは,x方向)のディジタル化,c:ある水平方向(ここでは,における方向)のディジタル化,d:cの結果
b〜dの操作を繰り返すことによって,画像のディジタル化が実行される.

 

 二次元信号である画像をディジタル化するには,まず垂直方向と水平方向の2方向について標本化を行い,その後に量子化を行う.原画像aを垂直方向(軸)にまず標本化し,その濃度を軸方向の高さで表した結果がbである.たくさんの水平方向のプロファイルで画像表現されていることがわかる.cは,その水平方向のプロファイルのひとつ[y(xn)]を抽出して表示したものである.このプロファイルに対し図1で示した標本化と量子化を行うことで,dに示すような整数値を得ることが出きる.この操作を垂直方向に繰り返し行うことによって,画像全体をディジタル化することができる.

 dにおいて,整数値が入っている四角のそれぞれを画素(ピクセル)と言い,その値を画素値(ピクセル値)と言う.その総数を画素数と言い,これは原画像サンプリング間隔と原画像の大きさによって決定する.また,画素数はディジタル画像のデータ量に比例する.

 

【標本化】

 標本化処理では,被写体情報をどの程度の細かさでディジタル化するかが重要となる.サンプリング間隔を小さくすれば小さい対象までディジタル化することができるが,画素数が多くなるためデータ量は増加する.

 一般的には,サンプリング間隔の大きさは,フィルム上でどのくらいの大きさの微小な四角形の領域をディジタル画像の1画素にしたかというピクセル寸法(画素寸法)で表す.例えば「1ピクセル0.2mmでスキャンした画像」などと表現される.また,このサンプリング間隔は,空間周波数(以下,単に周波数」としても表現することができる.「1ピクセル0.2mm」は,周波数では,その逆数で計算される5cycles/mmと表され,サンプリング周波数と呼ばれる.これは1mm間を5等分して標本化するということを意味している.

 

演習1-1: サンプリング間隔の違いによって,ディジタル化された胸部X線画像がどのように変化するのか見てみよう!

使用する画像: 胸部X線画像(chest.tif,512×512画素,8ビット,Tif形式)

方法:

1.使用する画像(以下,原画像)をダウンロードし,各自のhome Samba Serverフォルダ内の適当な個所に保存する.(例:home Samba Serverフォルダ内に”enshu1”というフォルダを作成し,その中に保存する)

2.Scion Imageを起動後,メニュー「Special」 の「Load Macros」を選択し,Macrosフォルダ中の”sampling”を開く.

 ⇒sampling.txtをダウンロード後,Macrosフォルダ内に置く.
   (通常は,C:\Program Files\Scion Corporation\Scion Image\Macros)

  *)sampling.txtはこの実験用に作成したマクロファイルであるため,標準では添付されていない.

3.原画像を表示する.

⇒Tif形式の画像であるので,メニュー「File」→「Open」を選択し,表示する画像を選ぶ.

4.原画像に対し,メニュー「Special」の 「Change Sampling Pitch...」を選択する.

5.「Cell Size」を”4.00”,”8.00”,”16.00”,”32.00”,”64.00”に設定した画像を作成し,各画像を観察する.

⇒これはサンプリング間隔を原画像の4倍,8倍,16倍,32倍,64倍にすることを意味する.

考察: 

・サンプリング間隔の変化に伴い,それぞれの画像の画素数はどのように変化するか考えてみよう.

・各画像において同じ個所のプロファイルを見て,サンプリング間隔の違いによる画素値の変化を観察してみよう.

*)今回の実験では,擬似的にサンプリング間隔を変化させたため,実質的には画素数の変化はない.しかし,理論的にはサンプリング間隔が異なれば,画素数も異なってくる.ここでは,理論的な変化を考察してみよう.

 

 サンプリング間隔により,ディジタルで表現できる最小の大きさを決定することができるが,いざどのくらいのサンプリング間隔で標本化すれば,原信号の情報を損失なく表現できるだろうか.その答えは”標本化(サンプリング)定理”にある.

 標本化定理: 原信号をディジタルで完全に再現するためには,原信号の持つ最大の周波数の2倍以上の周波数で標本化する必要がある.

 標本化定理を式で表すと次のようになる.

  t ≦ 1/2fc     t :標本化間隔, fc :原信号の持つ最大周波数)

 上式で等号の成立する周波数(fn)を特にナイキスト周波数と呼ぶ.サンプリング定理から逆に考えると,アナログ信号をディジタル化する場合,サンプリング周波数の半分の周波数までしか再現できないことを意味する.

ここで,2つの異なった周期を持つ正弦波を3つの異なったサンプリング間隔でディジタル化した例を図3に示す.

図3 周波数の異なる正弦波のディジタル化(:サンプリングの数が100のときのサンプリング間隔)

 

 aは,bと比較して低周波な正弦波であるため,サンプル数を少なくしても,a-1の波形の形状をほぼ表している.しかし,bはサンプル数が少なくなるにつれて,b-1の形状から変化し,もとの信号にはない成分が現れてくる.特に,b-3ではb-1の形状を予測することはとてもできない.このように,サンプリング間隔を大きくしていくと,もとの信号にはない歪み(模様)が現れてくる.このような歪みをエイリアシングと呼ぶ.エイリアシングは,別の言い方をすると,高い周波数のものを低い周波数のものに見誤る現象である.例えば,車のタイヤや扇風機の羽が高速に回転(高い周波数)しているとき,回転方向とは逆方向にゆっくり回転(低い周波数)しているかのように見える現象も一種のエイリアシングである.同様の現象は画像のディジタル化においても確認できる.特に画像におけるエイリアシングは,モアレと呼ばれることもある.

 

演習1-2: サンプリング周波数を変えるとエイリアシングが現れることを確認してみよう!

使用する画像: 同心円チャート画像シーメンスチャート画像

方法: 演習1と同じ.

考察: 

・どのような模様のエイリアシングが生じるかを観察し,なぜそのような模様になるのか考えてみよう.

・演習1での結果をエイリアシングを念頭に入れて,もう一度眺めてみよう.

 

【量子化】

 量子化処理は,信号の振幅(画像においては”濃度”,”輝度”に相当)をディジタル化する処理である.量子化の程度を表す尺度を”量子化レベル数”(=グレイレベル数 or 階調数)という.量子化レベル数は,量子化の際に用いられるA/D変換器のビット数に依存する.8ビットの変換器を用いた場合,8ビット=256階調で量子化するため,量子化レベル数は256になる.一般的に,画像において階調数が2のG乗であるとき,Gビット量子化という.Gの値が大きい(量子化レベル数が大きい)ほど,濃度分解能が良くなる.

 量子化時に発生するアナログ信号とディジタル信号の差を”量子化誤差”と言う.一般的に,量子化レベル数を増加させると,量子化誤差は小さくなる.逆に量子化レベル数が小さくなると,量子化誤差が増加する.画像においては,量子化レベル数が極端に小さくなると,本来存在しない疑似輪郭が現れる.

 通常8ビット(256レベル)程度の階調数を用いれば人間の目には不自然さはないが,医用X線画像をディジタル化する場合は,量子化レベル数を10ビット(1024レベル)〜12ビット(4096)とすることがことがほとんどである.これは,フィルムの光学的濃度は0から4.0近くに及ぶことがあり,8ビット程度の情報量では不充分である場合が多いからである.

 

演習1-3: 量子化レベル数の違いが及ぼす画質への影響を確認してみよう!

使 用する画像: 演習1,2で使用した画像

方法:

1.Scion Imageを起動し,原画像を表示する.

2.メニュー「Options」の「LUT Options」を選択する.

3.「Colors/GrayScales(1-256)」を”128”,”64”,”32”,”16”,”8”,”4”,”2”に設定した画像を作成し,各画像を観察する.

⇒この操作は,表示に用いる色(濃淡)の数を変更することで,擬似的に量子化レベル数を変更している.

考察: 

・疑似輪郭を確認し,なぜ疑似輪郭が現れるのか考えてみよう.

 

【ディジタル画像のデータ量】

 ディジタル画像のデータ量は,標本化におけるサンプリング間隔と,量子化における量子化レベル数で決定される.胸部X線撮影で得られた10cm×10cmのフィルムをディジタル化することを例に,ディジタル画像のデータ量を計算してみよう.

 ディジタル化の条件は,@サンプリング間隔:0.1mm(10cycles/mm),A量子化レベル数:1024(10ビット)とする.まず,サンプリング間隔からディジタル画像の画素数(マトリックス数)が決定されるが,この場合は縦横とも10cmをサンプリング間隔0.1mmで標本化するため,縦横の画素数はそれぞれ1000画素になる.また,量子化レベル数が1024=10ビットであることから,1画素が10ビットのデータ量を持つため,画像全体では,

 1000×1000×10ビット=10000000ビット

となる.

これはおよそ1メガバイト(3.5インチフロッピーディスク1枚分)のデータ量である.しかしながら,コンピュータではデータの最小単位を8ビット=1バイトで扱われるため,この場合,量子化レベル数が10ビットであっても,1画素は2×8=16ビット必要となることに注意する必要がある.このことを考慮すると,この場合の画像データ量は,

 1000×1000×16ビット=16000000ビット=2000000バイト=1953.125キロバイト≒1.9メガバイト

となる.

 また,より高精細な画像を得ようと考え,サンプリング間隔を半分にしてディジタル化を行うと,画素数は2000×2000画素となり,データ量は,

 2000×2000×16ビット=64000000ビット=8000000バイト=7812.5キロバイト≒7.6メガバイト

となる.これは1000×1000の場合の4倍のデータ量である.データ量は,サンプリング間隔の逆2乗に比例して増加する

*) 1byte(バイト:B) = 8 bit(ビット), 1KB(キロバイト)= 1024B, 1MB(メガバイト)= 1024KB

 

チャレンジ:ディジタル画像のデータ量を計算してみよう!

問題1: 演習1で利用した胸部X線画像をRAW形式で保存したときのデータ量は何キロバイトか?   答え

問題2: 標本化後の画素数が1024×1024画素,量子化レベル数10ビットでディジタル化された胸部X線画像のデータ量は何メガバイトか?理論的なデータ量と実際のコンピュータ内でのデータ量を求め,比較してみよう.   答え

実験項目へ戻る