楽しい画像処理入門講座

盧 存偉


第一章 ジタル画像技術基礎

1.1 従来式の画像技術

    銀塩式の写真技術(フィルム式カメラ)

 フィルム(ハロゲン化銀による感光物より)=>感光=>記録=>現像=>定着=>印刷
 ハロゲン化銀(AgX)は、銀とハロゲン族元素の化合物で、塩化銀(AgCI)・臭化銀(AgBr)・ヨウ化銀(AgI)が使われている。

 これらのハロゲン化銀結晶をフィルムや印画紙のゼラチン層に分散して感光層(乳剤)を作っている。光が当たると、この層のハロゲン化銀結晶が反応してその光量によって潜像が形成される。これを現像によってハロゲン化銀の還元、銀画像を形成し、酸により現像を停止し、定着液により、ハロゲン化銀を溶解して除去すれば安定した銀画像になるというわけです。


1.2 デジタル画像技術(デジタルカメラ)

 CCDなど素子=>感光(光―電気)=>ADC=>保存=>出力

 画像を1つ1つの小さな点の集まり(画素/Pixelと呼ばれる)で,この1つ1つの点の色の情報(通常輝度で表す) が数値化され、記録されたものである。



 上記の画像では、幅Mピクセルで、高さNピクセルである。このようなデータは、通常M×Nの配列で表示する。

I[0,0]

I[1,0]

......

I[M-2,0]

I[M-1,0]

I[0,1]

I[1,1]

......

I[M-2,1]

I[M-1,1]

......

......

......

......

......

I[0,N-2]

I[1,N-2]

......

I[M-2,N-2]

I[M-1,N-2]

I[0,N-1]

I[1,N-1]

......

I[M-2,N-1]

I[M-1,N-1]


 任意のピクセルに対して、通常I[i,j] で表す。


1.3 白黒画像とカラー画像

白黒画像:各ピクセルの情報を輝度値(明るさ)だけで表す( I[I,j]

カラー画像:各ピクセルの情報をR,G,B三原色それぞれの輝度値で表す(IR[i,j], IG[i,j],IB[i,j])。
  RGB3チャンネルの輝度値をそれぞれ256階調(8ビットの二進数)で表すカラー画像がフルカラーと呼ばれている。

1.4 画像センサーとデジタルカメラ

・ CCDセンサ

 CCDイメージセンサ (Charge Coupled Device Image Sensor) は固体撮像素子のひとつで、ビデオカメラ、デジタルカメラなどに広く使用されている半導体素子である。単にCCDとも呼ばれることも多い。

 画像を電気信号に変換する際に、受光素子が光から発生した電荷を読み出すために電荷結合素子 (CCD: Charge Coupled Device) と呼ばれる回路素子を用いて転送を行うことからこう呼ばれる。

・ CMOSセンサ

 CMOS(シーモス、Complementary Metal Oxide Semiconductor)は相補形MOS(金属酸化膜半導体)のこと。

 CMOSイメージセンサ(シーモス-)はCMOS(相補性金属酸化膜半導体)を用いた固体撮像素子。CCDイメージセンサと同様に、フォトダイオード(PD)を使用するが、製造プロセスと信号の読み出し方法が異なる。

 CMOSイメージセンサの原理が考案されたのは1960年代後半と古いが、実用化されたのは半導体微細加工技術が高度化した1990年代以降である。

・ CCDセンサとCMOSセンサの比較

 CCD:感度が高く、ノイズが少ない。回路複雑、コストが高い。
 CMOS:簡単で安価でできる。低照度は不安定、ノイズが多い。

・ デジタルカメラ

 デジタルカメラ(Digital camera)とは、写真として撮影した画像をデジタルデータとして記録するカメラ装置である。

デジタルカメラ:デジタルスチルカメラ(Digital still camera)
        デジタルビデオカメラ(Digital video camera)
        双方の性能の向上も手伝って、その差異が徐々に無くなりつつある。


1.5 銀塩式写真技術とデジタル画像技術との比較

銀塩式(フィルム式):経済性、精密性(高品位画像)

デジタル式:
 便利性:液晶モニターに写る写真を見ながら撮影、フィルム交換・現像不要、自宅印刷
 精密性:昔は低い、現在は高い、将来はもっと高い
 調整性:パソコンで編集できる
 拡張性:パターン認識、3次元画像、マルチメディア
 経済性:昔は高かったが,現在は低い


第二章 画像圧縮と画像のフォーマット

 デジタル信号処理の講義で習ったように、画像のファイルサイズが大きいので、画像圧縮が必要である。よく使われている画像フォーマットは下記のようである。

形式

拡張子

特    徴

主な応用

BMP BMP, DIB, RLE Windowsの標準フォーマットである。OS付属の「ペイント」をはじめ、Windows上の画像 ソフトならまず対応しているので、交換用に便利である。しかし、基本的に無圧縮なのでサイズが大きく、インターネットにはあまり適用しない。 画像処理
DTP
JPEG JPG, JPEG, JPE, J6I 自然画の圧縮に有利な、国際標準(IS 10918-1/ITU - TT.81)の画像形式で、フルカラーの画像を記録するのにはもっともよく使われており、圧縮率も高いので、 交換、保存に便利である。グレイスケール画像は256色画像としてロードする。 一般のデジカメ
家庭での楽しみ
インターネット
GIF GIF CompuServe社の自社基準であるが、 現在インターネット上でよく使われている。 アニメーションにも対応する。
256色までの色数しか扱えないため、写真をスキャンした 画像データなどにはあまり向きません。
インターネット
ホームページ
PSD PSD Adobe PhotoShopで保存できるPSD形式です。 RGB及びCMYKフルカラー、グレイスケールに対応している。画像サイズが大きく、他の画像ソフトに対応しないなどの問題点があります。 Adobe PhotoShop
画像編集
画像処理
TIFF TIFF,TIF Aldus社(1994年Adobe社に買収される) が自社のDTPソフト、PageMakerのために1986年に制定したフォーマットで、現在非常に広い範囲の表現を許すフォーマットである。 画像処理
DTP
EPS EPS EPSはEPSFともいい、カプセルに入れられた PostScriptのファイルという意味です。主に画像の貼り込みに使いますが、画像(ビットマップデータ)だけでなく、フォントなどの配置も可能である。 DTP
RAW RAW 各メーカのオリジナル画像フォーマットで, Adobe Photoshopでは画像データをR,G,Bチャンネルの順番で並ぶ非圧縮データと成る. RAWフォーマットの画像を開くには,専用ののソフトが必要. 画像処理
高画質画像入力
動画ファイル MPG, MPEG, AVI, など 動画ファイルはカタログ表示で一覧表示できるほか、 ダブルクリックにより再生できる。縮小画像となる画像は、現在常に動画の中央から得るようになっている。

今年の実験にはMPEG式の動画フォーマットを使う。
家庭用
インターネット


課題1:

1.まず自分用のHD上に画像処理実験用のフォルダを作ってください.
2.Photoshop Elementsを用いて,自分自身の情報を表せる新規画像を作る.ただし,画像サイズは1024×768pixelとする.
3.作った画像をそれぞれBMP,JPG画質高,JPG画質低,GIF,PSD,TIFF,EPS,RAW方式で画像処理実験用のフォルダに保存する.
4.各方式に保存された画像の画質やファイルのデータ量などについて,比較してください.

注意:PhotoshopでRAW画像を開く際,画像サイズを正しく入力する必要がある.


第三章 簡単な画像処理技術

サンプルプログラムを活用して、画像処理をやってみよう。

3.1 サンプルプログラム

 (1) Cソースプログラム 1.BMPファイル適応   2.RAWファイル適応

 (2) サンプル元画像 1.BMPフォーマット   2.RAWフォーマット(幅200×高160 pixel, 24 bit)

 (3) FIT入れた画像 1.BMPフォーマット  2.RAWフォーマット(幅200×高160 pixel, 24 bit)

 (4) 白黒画像 1.三チャンネルBMP  2.単チャンネルRAW(幅200×高160 pixel, 8 bit)

 (5) 2値化画像 1.三チャンネルBMP  2.単チャンネルRAW(幅200×高160 pixel, 8 bit)


3.2 FITを画像に入れる
 画像において、各ピクセルの座標値は上図に示したようである。「F」という字を画像に入れたい場合は、まず「F」の位置座標を決めて、 その後、決まった座標範囲に、適当な色で塗ったら良い。例えば、「F」の一番上の横線の四角の座標は、図示のように、それぞれ、
(y1,x1), (y1,x2), (y2,x2), (y2,x1)である。上記の四角に赤色で抜けば、赤色の線が出てくる。

3.3 カラー画像を白黒画像へ変更

 カラー画像はRGB3チャンネルの画素強度値で表し、白黒画像は1チャンネルだけで、単一の強度値で画像を現す。
 カラー画像を下記の式を使って、白黒画像を変換できる。

I = 0.3IR + 0.59IG + 0.11IB

 ただし、I は白黒画像強度で、IR 、IG 、IB はそれぞれR,G,Bチャンネルの画像強度である。


3.4 白黒画像の2値化

 白黒画像の2値化とは、白黒画像元々の256レベル(0〜255)の画像強度値を0と255の2レベルに変換することである。通常、ある特定の閾値a を設けて、下記の式より、2値化画像の強度値IB を決める。


課題2:

1. 自分の名前のローマ字表示の頭文字をサンプル画像samp.bmpの上に載せ、**1.bmpのファイル名で出力なさい。
 (**は自分の学籍番号である)

2. 名前付画像**1.bmpのRチャンネルとBチャンネルの値を入れ替えて、**2.bmpのファイル名で出力なさい。

3. RBチャンネル交換した画像**2.bmpを白黒画像に変換し、>**3.bmpファイル名で出力なさい。
4. 白黒画像**3.bmpを下記の式で4レベル画像に変換し、**4.bmpファイル名で出力なさい。

  
5. 余裕があれば、下記のテーマをやってください。
 画像の上下反転、画像の左右反転、画像比較(差分)、特徴抽出

説明:課題はRAWフォーマットを使ってもかまわない.


ヒント:斜線の描き方


二次元座標系における二点(x1,y1)と(x2,y2)を通す直線方程式は下記の通りである。
(y-y1)(x2-x1) = (x-x1)(y2-y1)

この方程式の対応関係に満足する点を特別の色で表せれば、直線が描ける。
(x1,y1)と(x2,y2)の値を変えれば、直線の傾きを変える。

下記のサンプルプログラムは何でしょうか?

void makeSEN(int x1, int y1, int x2, int y2, unsigned char image_rgb[Y_SIZE][X_SIZE][3] )
{
  int i,j,l,x_min,x_max,y_min,y_max;

  if ( x1 < x2 ) {
    x_min=x1 ;
    x_max=x2;
  }
  else{
    x_min=x2;
    x_max=x1;
  }

  if ( y1 < y2 ) {
    y_min=y1 ;
    y_max=y2;
  }
  else{
    y_min=y2;
    y_max=y1;
  }
  for ( i=y_min; i<=y_max; i++){  
    for (j=x_min; j<=x_max; j++) {
      l = (y2-y1)*(j-x1)/(x2-x1)+y1 ;
      if ( (i-l) < 5 && (i-l) >-5 ) {
        image_rgb[i][j][0] = 255;
        image_rgb[i][j][1] = 255;
        image_rgb[i][j][2] = 0;
      }
    }
  }
}



発展課題

1.画像反転と回転

 左右反転:画像中心の縦軸を基準として,左側の画素と右側の画素をひっくり返す

 サンプル:左右反転(RAWフォーマット)
      Cソースファイル入力画像(幅200×高160 pixel, 24 bit)出力画像(幅200×高160 pixel, 24 bit)

 課題:上下反転,45度回転,任意角度回転



2.画像拡大と縮小

 サンプルプログラム及びサンプル画像を参考し,画像拡大,縮小のプログラム作成に挑戦してください.

 サンプル:左右反転(RAWフォーマット)
      Cソースファイル入力画像(幅200×高160 pixel, 24 bit)出力画像(幅200×高160 pixel, 24 bit)

 課題:3倍,1.5倍拡大



実験レポート


1.内容:

  課題別に、下記の内容についてレポートを書きなさい。

  実験目的、実験方法、プログラムのソース(特にサンプルプログラムより修正された部分)、必要なソースコードの説明、デバッグ方法、実行結果(出力画像)、考察、感想。

  他には、特に先生に伝いたいことがあれば書いてもかまわない。


2.提出方法:

 1組:
  MSワードでレポートを作ってから,On-Line提出。
  レポート提出用URL: http://inavi.ws.ipc.fit.ac.jp/inavi/
  ログイン:情報処理センターが保有する演習システムを利用する際のIDとPWでログイン.


 2組:指導先生の指示により

3.注意事項:

(1) 提出期限:実験終わってから一週間以内

(2) 提出期限を守ること.コンピュータが提出期限を管理しているので,一秒でも遅れたら提出ができなくなってしまうので,きちんと提出期限を守ってください.

(3) 取り消しできないこと.提出されたレポートの取り消しや添付ファイルの入れ替わりができないので,提出操作を慎重に行ってください.

(4) 再提出について:再提出許可をもらわないと,再提出ができない.また,再提出チャンスがが一回しかない.再提出ファイル名を「再***.***」にしてください.
  コンピュータが提出期限を管理しているので,一秒でも遅れたら提出ができなくなってしまうので,きちんと提出期限を守ってください.

(5) 成績について:提出されたレポートの成績はホームページ上で表示される.



付加説明:

 この講座はC言語を用いた画像処理の入門講座で、画像処理の勉強の目的であれば、何方もご自由に使えます。

 サンプルプログラムは、Microsoft Visual C++環境で検証されました。ご自由に使ってください。


 営利や配布など個人勉強以外目的の使用は厳禁します。


 お問い合わせは著者まで。


         福岡工業大学工学部電子情報工学科 盧研究室 lu@fit.ac.jp