7
1 16 8 9 画像処理マニュアル 大学 1. 位を す。 1ボクセル 150mm/512 ピクセル 0.293mm 1ポイント 1/72 インチ=25.4mm/72 0.352mm Twip 1/20 ポイント 1mm=72*20/25.4=56.7Twip 1ピクセル 15Twip 1 ドット 300dpi 300dot per inch 118 ドット/cm 2. ように 512× 512 ボクセル されている。 binary コード ある ために るこ が、ダンプリストを るこ によ ける。 1)ダンプリスト C>dump ファイル > ダンプリスト C>dump img0001 > img0001.dmp img0001.dmp よう られ、 16 F800 10 63,488 る。 こ データ ように Z している。 2)ファイル C>fc ファイル 1 ファイル 2 > ファイル C>fc img0001 img0011 > check img0001 img0011 較した check いうファイル る。 し、違いが けれ check [FC: 違い つかりません した] される。 これ データだけ く、他 データ プログラム 違い きる。 3)リネーム データ img0001 一された にファイル を変 する がある。 img0001img0050 X CT 50 する すれ C>rename ファイル ファイル C>rename img init 50ファイル 00?? する。 により、img0001img0050 ファイル init0001init0050 にファイル が変 される。 Dump Version 2.01 << img0001 >> 00000000 F8 00 F8 00 F8 00 F8 00-F8 00 F8 00 F8 00 F8 00 : ................ 00000010 F8 00 F8 00 F8 00 F8 00-F8 00 F8 00 F8 00 F8 00 : ................ 00000020 F8 00 F8 00 F8 00 F8 00-F8 00 F8 00 F8 00 F8 00 : ................ 00000030 F8 00 F8 00 F8 00 F8 00-F8 00 F8 00 F8 00 F8 00 : ................ 00000040 F8 00 F8 00 F8 00 F8 00-F8 00 F8 00 F8 00 F8 00 : ................ 00000050 F8 00 F8 00 F8 00 F8 00-F8 00 F8 00 F8 00 F8 00 : ................ 00000060 F8 00 F8 00 F8 00 F8 00-F8 00 F8 00 F8 00 F8 00 : ................ 00000070 F8 00 F8 00 F8 00 F8 00-F8 00 F8 00 F8 00 F8 00 : ................ 00000080 F8 00 F8 00 F8 00 F8 00-F8 00 F8 00 F8 00 F8 00 : ................ 512 512

画像処理マニュアル・0008:Bit Per Pixcel .1:モノクロ,4:16色,8:256色,16:フルカラー ・00000000:圧縮形式.0:圧縮無し、1:RLE8、2:RLE4 88.3N

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 画像処理マニュアル・0008:Bit Per Pixcel .1:モノクロ,4:16色,8:256色,16:フルカラー ・00000000:圧縮形式.0:圧縮無し、1:RLE8、2:RLE4 88.3N

1

平成 16年 8月 9日

画像処理マニュアル 熊本大学工学部 地盤工学研究室

1.画像処理の単位 画像関係の基本単位を示す。

単 位 変 換 値 1ボクセル 150mm/512 ピクセル 0.293mm 1ポイント 1/72 インチ=25.4mm/72 0.352mm 1Twip 1/20 ポイント 1mm=72*20/25.4=56.7Twip 1ピクセル 15Twip 1 ドット

300dpi 300dot per inch 約 118 ドット/cm 2.原画像の基礎 原画像は右図のように 512×512 のボクセルで構成されている。 画像の中味は binary コードであるために直接見ることはできないが、ダンプリストを取ることにより覗ける。

1)ダンプリスト C>dump 画像ファイル > ダンプリスト名 C>dump img0001 > img0001.dmp img0001.dmp の中味は右図のような結果が得られ、16進F800は 10進数で 63,488となる。 このデータは上図のように Z方向に配置している。

2)ファイルの比較 C>fc ファイル 1 ファイル 2 > 比較結果ファイル C>fc img0001 img0011 > check img0001 と img0011 を比較した結果が check というファイル名に入る。 もし、違いがなければ

check には[FC:違いは見つかりませんでした]と出力される。 これは画像データだけでなく、他のデータやプログラム等の違いも比較できる。

3)リネーム 画像データは、img0001等の統一された名前が付くので差画像を取る際には一気にファイル名を変更する必要がある。 既に img0001~img0050までX線CT画像が 50枚存在するとすれば

C>rename 旧ファイル名 新ファイル名 枚数 C>rename img init 50 ※ ファイル名 00?? は省略する。 により、img0001~img0050の画像ファイルは init0001~init0050にファイル名が変更される。

Dump Version 2.01 << img0001 >> 00000000 F8 00 F8 00 F8 00 F8 00-F8 00 F8 00 F8 00 F8 00 : ................ 00000010 F8 00 F8 00 F8 00 F8 00-F8 00 F8 00 F8 00 F8 00 : ................ 00000020 F8 00 F8 00 F8 00 F8 00-F8 00 F8 00 F8 00 F8 00 : ................ 00000030 F8 00 F8 00 F8 00 F8 00-F8 00 F8 00 F8 00 F8 00 : ................ 00000040 F8 00 F8 00 F8 00 F8 00-F8 00 F8 00 F8 00 F8 00 : ................ 00000050 F8 00 F8 00 F8 00 F8 00-F8 00 F8 00 F8 00 F8 00 : ................ 00000060 F8 00 F8 00 F8 00 F8 00-F8 00 F8 00 F8 00 F8 00 : ................ 00000070 F8 00 F8 00 F8 00 F8 00-F8 00 F8 00 F8 00 F8 00 : ................ 00000080 F8 00 F8 00 F8 00 F8 00-F8 00 F8 00 F8 00 F8 00 : ................

512

512

Page 2: 画像処理マニュアル・0008:Bit Per Pixcel .1:モノクロ,4:16色,8:256色,16:フルカラー ・00000000:圧縮形式.0:圧縮無し、1:RLE8、2:RLE4 88.3N

2

3.スムージング X線 CT画像の違いを鮮明にするために、局所単純平滑化を行う必要がある。 下図は原画像にスムージングを施した結果である。 実際の処理では、枚数が 50枚と多くなれば時間が掛かるので一気に処理する必要がある。

1)局所単純平滑化 C>autoimg ファイル名 枚数 C>autoimg img 50 とすることで、img0001~img0050の画像ファイルが上図のように局所単純平滑化される。 ・img00?? - autoimg - temp ・temp - imgout - img00??.out ・img00??.out - backimg - img00?? 実際の処理は上記のように 3段階に分けて行う。 これはXtensionを利用する際の名残である。 ここで注意したいのは、原画像の img00??に局所単純平滑化が上書きされるので、別のフォルダからコピーして利用しなければ、原画像が無くなってしまう。

今まで連続処理について述べてきたが、単独のスムージングとして次のものがある。 C>smooth ファイル名 フィルタ数 C>smooth img0001 ?? ??が 5であれば 5×5のフィルタ、11であれば 11×11(局所単純平滑化)になる。??を任意に与えることで、いろんなフィルタが可能となる。 右図はそれぞれ左から原画像、5×5 フィルタ、局所単純平滑化に対応している。 ボケ効果が見て取れる。

・img00?? - smooth - temp ・temp - smoout - img00??.out ・img00??.out - backimg - img00?? 2)エッジ保存平滑化 先ほどの 5×5のフィルタに対して、境界を鮮明にする方法としてエッジ保存平滑化がある。 これは 5×5の要素で 9ケースについて平均値および分散を求め、一番分散が小さいところの平均値をその点の ct値としている。

Page 3: 画像処理マニュアル・0008:Bit Per Pixcel .1:モノクロ,4:16色,8:256色,16:フルカラー ・00000000:圧縮形式.0:圧縮無し、1:RLE8、2:RLE4 88.3N

3

C>datacnv img0001 ・img0001 - datacnv - temp

・temp - edgekeep - img0001.out ・img0001.out - backimg - img0001 smoothや edgekeepも先ほどと同様に、上書きするので注意する必要がある。 4.画像回転 局所単純平滑化したX線CT画像を回転することにより、以降の 3D画像や ct値へと展開する。 C>autorot ファイル名 枚数 C>autorot img 50 一気に img0001~img0050の画像ファイルに画像回転を行う。 実際の処理は、下記の手順により行なっている。

・img00?? - autorot - temp ・temp - coordcnv - temp.out ・temp.out - backimg - img00??

そこで、coordcnv.datに回転角を設定する必要があり、その方法は次の 2通りである。 ① autorot img 1として temp ファイルを作成し、それに上述の coordcnv,backimgの順に処理し、フリーアプリのRISAで確認する。 更なる回転や微調整を設定し、回転角を決定する。

② smooth img00?? 11により temp ファイルを作成し、同様の処理を行う。 これで回転角が設定されれば、後は一気に任意の枚数だけ画像回転できる。

5.差画像 初期状態の X線 CT画像と実験後の X線 CT画像から差画像を求めるプログラムです。 このような差画像の処理にはAOIといった立派なフリーのアプリが存在するが、今回は 3次元画像を作成するために一気に数十枚の一括処理を試みた。 ファイル名は、例えば初期画像は renameにより init0001~ init0050とし、実験後の画像は aft0001~aft0050である。

C>simpsag 初期ファイル 後ファイル 枚数 C>simpsag init aft 50

- =

Page 4: 画像処理マニュアル・0008:Bit Per Pixcel .1:モノクロ,4:16色,8:256色,16:フルカラー ・00000000:圧縮形式.0:圧縮無し、1:RLE8、2:RLE4 88.3N

4

6.bmpファイルの構造(dump リスト) bmp(ビットマップ)ファイルは画像の細線化などで必要となり、その構造を知ることでいろいろな応用に発展できる。

7.細線化 X線CT画像を細線化することで市販のアプリ AVSを利用した 3D 画像へと展開される。 以下に手順を示す。 ① 局所単純平滑化した X線CT画像をRISAで bmpファイルとして保存する。 ② bmpファイルをペイント系のアプリにより、線の追加や不要な部分を削除する。 ③ 保存の際に「モノクロ保存」を選択し、データを 2値化する。 ④ 最後に細線化処理、チェイン処理を施す。

C>bmp-tran img0001 ・img0001.bmp - bmp-tran - img0001.dat ・img0001.dat - thinning - img0001.xy またファイル数が多いと RISA で一々bmp に変換するには時間が掛かるので、数十枚一気に変換する方法として、ct-bmpを作成した。 また、RISAでは ct値のWL(中心:閾値)およびWW(幅)はそれぞれ、100,1000が defaultであるが、任意の ct値が設定可能である。 WWを 2にすれば 2値化できる。

C>ct-bmp img ?? WL WW

・img00?? - ct-bmp - temp ・temp - reverse - temp.out ・temp.out - backbmp - img00??.bmp 8.AVSを利用した 3D画像 1)すべり面 細線化後のデータを用いて 3D化し、スベリ面を求めた。

・polygon.dat - pile - pile.mgf (左) ・polygon.dat - polygon - polygon.mgf (右) pile.mgf

000000000000

00000000000000000000000000000000

00000008000100000200000002000000

00280000043600000000000404364D42

000000000000

00000000000000000000000000000000

00000008000100000200000002000000

00280000043600000000000404364D42

・424D:asciiコードでBMに相当し、BMPファイルの意味 ・00040436:十進数に直すと263,222byteでファイルサイズ ・00000436:offset値です.データの開始が1,078byte目 ・00000028:情報ヘッダで、ここから最後の升目まで40byte ・00000200:横ピクセルと縦ピクセル.両方とも512ピクセル ・0008:Bit Per Pixcel.1:モノクロ,4:16色,8:256色,16:フルカラー ・00000000:圧縮形式.0:圧縮無し、1:RLE8、2:RLE4

88.3N

Page 5: 画像処理マニュアル・0008:Bit Per Pixcel .1:モノクロ,4:16色,8:256色,16:フルカラー ・00000000:圧縮形式.0:圧縮無し、1:RLE8、2:RLE4 88.3N

5

2)断面の 3D画像 X線CT画像に局所単純平滑化、画像回転を施した imgファイルを用いて 3D化した。1,2,4はそれぞれ円、半円、1/4円に対応している。 下図に 10枚を重ねたサンプルを示す。

C>win-3d ファイル名 枚数 1/2/4 C>win-3d img 10 1/2/4

9.線上および面上の ct値分布

1)RISAで確かめた直線上(始点:x1,y1~終点:x2,y2)の ct値分布を求めることができる。

C>ct-value img00?? s ※ sはスムージング ・img00?? - ct-value - temp ・temp - matsusta - ct-value.xy

2)面上(左上:x1,y1~右下:x2,y2)のボックス座標を与えることで、ct値の頻度分布が得られる。

C>datascii img00?? ・img00?? - datascii - temp ・temp - matsuota - ct-dist.xy

3)ctvデータを元の画像へ 以前 Xtensionで作成された ctvデータを画像データへ戻すことができる。

C>ctvasc ファイル名

・a1a01.ctv - ctvasc - a1a01.out ・a1a01.out - backimg - a1a01 10.パターン認識を用いた移動ベクトル 3軸圧縮試験等で、初期の状態から徐々に軸力を掛けていくとそれに伴って地盤の物性が変化していく。 それを X 線 CT で撮影するが実験後に物性マーカが移動した場合、その移動ベクトルを計測する必要がある。 今回は、パターン認識のテンプレートマッチングの技法を用いて、その画像の移動を検索するプログラムを作成した。 実験前の供試体 Boxおよび座標設定

Page 6: 画像処理マニュアル・0008:Bit Per Pixcel .1:モノクロ,4:16色,8:256色,16:フルカラー ・00000000:圧縮形式.0:圧縮無し、1:RLE8、2:RLE4 88.3N

6

移動ベクトル図

現在のところ9割強追跡可能ですが、画像マーカの移動範囲を設定すれば、100%追跡できる。 手順は 1)事前に、X線CT画像を bmp 画像に変換しておく。 また、CT 値により上部ペデスタルや下部の土台にヒットする確率が高いので、事前に実験後の画像を一部消去する。(右図)

2)実験前の画像に PAINT で座標には赤丸、Box には青丸(左上,右下)を設定し、16色ビットマップで仮に ini.bmp で新規保存する。

C> bmp-xy ini

・ini.bmp - bmp-xy - temp (画像を数値へ変換) ・temp - get-red - temp.out (青丸,赤丸のみの抽出) ・temp.out - chain - pattern.dat (青丸のBox座標と赤丸の要素数と重心計算)

3)実験前・後の bmp画像データを asciiデータへ変換 C> bmp-val 105ini / 105aft ・105ini.bmp - bmp-val - 105ini.dat

4) パターン認識による形状検索

C> pattern 105ini 105aft ・105ini.dat - pattern - temp.res

105aft.dat pattern.dat

5)最後に、移動ベクトルを図化するため適当なアプリケーションへデータ変換

C> pat-cnv ・pattern.dat - pat-cnv - vector.xy

temp.res opt-tri.dat tri-dis.dat

6)最適な三角形抽出のためのデータ編集

opt-tri.datに節点の activeと境界線分を追加する。

7)最適な三角形の抽出および FEMデータ構成 C>opt-tri ・opt-tri.dat - opt-tri - tri-fem.dat

tri-dis.dat tri-lin.xy

実験後の供試体

Page 7: 画像処理マニュアル・0008:Bit Per Pixcel .1:モノクロ,4:16色,8:256色,16:フルカラー ・00000000:圧縮形式.0:圧縮無し、1:RLE8、2:RLE4 88.3N

7

8)有限要素法(Bマトリックス)によるせん断ひずみの計算 C>st-tri ・tri-fem.dat - st-tri - st-tri.dat st-tri.inp

これで、実験後のマーカの移動量が抽出可能です。 上図のように実験後は、CT 値濃度も違ってくるのでヒットするのは難しいが、移動可能範囲を設定することで正しく図化することができた。 11.その他 トンネルのすべり面のデータについて、細線化処理後に AVS を利用して3D化していたが、右図のように線は見難いので、面として 3D表示できるように改良した。