第9回CADセミナー@岐阜 演習A/CADの前処理

CADなどの高度な画像処理では,処理をひとまとめに考えず,

  1. 前処理
  2. 中間処理
  3. 後処理
と,複数の段階にわけて構成する事が一般的です.

これは,複数の処理を一度に考案しても,その整理や機能の説明が困難になったり,効率のよい修正や改造が行なえなくなったりするからです.また,それぞれの中でもできるだけ機能が分かりやすい単位で処理を構成する事が重要といえます.これは,C言語の中では関数という単位で処理を構築する事と非常によく似ています. もちろん,処理の内容によってはその処理の種類が前処理や中間処理などと明確に区別ができるものではありません.しかし,これからつくる処理がどの段階の処理にあるのか理解する事は非常に重要です.

CADのプログラムにおいては,

  1. 前処理:画像の転送,入力,解像度の変更,濃度分解能の変更,ノイズ除去処理など
  2. 中間処理:候補の検出処理,偽陽性削除処理
  3. 後処理:検出結果の表示処理
などがあげられます.


CADの前処理

この演習では,前処理として,以下の手順で処理を行なうプログラムを構築します. もちいる原画像は,サンプリング間隔0.2mm,濃度分解能8ビットの画像です.
  1. 画像の読み込み(演習1
  2. ノイズ除去(3x3画素の平滑化)(演習4
  3. 画像の解像度の変更(サンプリング間隔0.2mmから0.4mmの画像へ)
  4. 縮小画像のファイルへの保存(演習1

プログラムの例
メイン関数:main.c 平滑化関数:convolve.c 再サンプリング関数:resampling.c

コンパイル方法
Makefileを用意してあるので,単に「make」と入力するだけで可能です.

実行方法
proc mammo01.raw 1024 1024 mammo01s.raw procが実行ファイル名
mammo01.rawが入力画像のファイル名
1024 1024は幅と高さ
mammo01s.rawは出力のファイル名.

処理前の画像表示
x8view mammo01 1024 1024

処理後の画像表示
x8view mammo01.04.raw 512 512


演習A−1
平滑化を5x5に変更してみましょう.

演習A−2
すべての画像をサンプリング間隔0.4mmに変更しましょう.

演習A−3
シェルを使って,作業を自動化してみましょう.