Presentation is loading. Please wait.

Presentation is loading. Please wait.

臨床画像技術学Ⅱ http://chtgkato.com/  臨床画像技術学Ⅱ   http://chtgkato.com/ 北大病院核医学診療科 加藤千恵次.

Similar presentations


Presentation on theme: "臨床画像技術学Ⅱ http://chtgkato.com/  臨床画像技術学Ⅱ   http://chtgkato.com/ 北大病院核医学診療科 加藤千恵次."— Presentation transcript:

1 臨床画像技術学Ⅱ http://chtgkato.com/
 臨床画像技術学Ⅱ   北大病院核医学診療科 加藤千恵次

2

3 講義スライド、サンプルデータ、プログラムなどを
ダウンロードできる ホームページ。

4 本講義の目的 医用画像処理の原理、技術を サンプルデータとプログラムを用いて 理解する。 教科書の数式や図表では難解に思われる 画像処理技術でも、 実際のデータを処理するプログラムを 作成することで、容易に理解できる。   

5 講義内容 1.C言語による簡単なプログラム作成法の習得。 2.画像を表示する方法の習得。 3.画像の実空間フィルタ処理法。 4.周波数空間処理。高速フーリエ変換(FFT)。 5.断層画像再構成法の理解。(CTの原理) 画像処理技術と平行してC言語文法を学習する。

6 さらに高度な画像技術習得を希望する人は 保健科学院への進学を志して下さい。  DICOM画像ファイルの取扱い法  コンパートメントモデル解析  医用画像から病態生理情報(病変の  血流量や酸素消費量)を計算する技術。  (微分方程式の解法)(非線形最小二乗法)  3次元表示法(シェーディング)(OpenGL) 逐次近似画像再構成法(OSEM)  など

7 画像処理プログラムを作成する技術を 習得すると、 研究や診療業務の中で思いついた 自分のアイデアを、具体的な研究テーマへ 自力で発展させることができる。 今後の研究発表、学会、論文作成等の 作業における強力な武器となる。

8 画像描画プログラムの実行結果 核医学画像ファイル bone が表示される。 (患者情報を削除した医用画像データファイルを用意。)

9 画像に 中央値フィルタ処理(median)を行う フィルタ処理プログラムを各自作成して、 実際の医用画像で効果を確認する演習。
median filter は smoothing filter より輪郭が保たれる。 median filter は、微細なノイズを除去する効果がある。

10 画像を フーリエ変換(周波数変換)する演習。  

11 Original Image Frequency spectrum
space filtering FFT Filtered Frequency spectrum Filtered Image 実際の医用データを 使った周波数空間 フィルタの演習問題。 IFFT

12 脳のポジトロンCTデータを用いて CTの原理を理解する演習。

13 どの言語を習得すればよいか 今までは UNIX、Linuxで動作する、標準的な 文法のC言語、C++言語が主流であった。 現在では Windowsでの Visual C++、Visual C#、Visual BASIC およびJava などが主流であるが非常に癖のある言語が多く学習が困難。 基本となる言語は CまたはC++言語であるが、Windowsで文字と画像を標準的な文法で扱うC言語開発ツールを探すのは困難。

14 C や C++言語で主なOS (Windows、UNIX など) が作られている。 すなわち現代社会で最も重要な言語である。 まず基本となる普通の CまたはC++言語の 文法(ANSI規格)を知ることは、 将来 Visual C# や Visual C++ を使う必要が生じた場合にも必ず役立つ知識となる。 いきなり Microsoft が決めた文法に従って Cプログラムを作るのは大変苦労する。

15 Windows上で標準的なC言語を使って 画像を扱うプログラムを作成する方法 OSは Windows 2000、XP 、Vista(32bit) コンパイラ (プログラムから実行ファイル(.exeファイル)を作るソフトウェア) Visual C Express (無料) Visual Studio .Net (端末室のPCに入っている)

16 Visual C++ 2008 express の入手方法 Microsoft の Webから無料インストール
express edition を選択。

17 Visual C++ 2008 express の入手HP
Visual Studio 2008 Express Editions

18 下のほうに、Visual C++ 2008 express を ダウンロードするバナーがある。
Visual Studio 2008 Express Editions HPの 下のほうに、Visual C express を ダウンロードするバナーがある。

19 Visual C++ 2008 Express Editionを
ダウンロード (数十分要する)

20 Visual C++ 2008 Express Edition の
インストールが完了 すると、 すべてのプログラム 一覧の中に Microsoft Visual C++ Express Edition が 登録される。 このショートカットを デスクトップにコピー すると便利。

21 右クリックで ショートカット作成の メニューが現れる。

22 Visual Studio 2008 Express Editions を
起動すると、この画面が現れる。

23 ファイル ー 新規作成 - プロジェクト を選択。

24 新しいプロジェクト のダイアログが現れる。
新しいプロジェクト のダイアログが現れる。 Win32を選択 Win32プロジェクトを選択 参照ボタンを押して、プロジェクトを保存するディレクトリを作成。任意のプロジェクト名(プログラム名)を入力。 ソリューションのディレクトリを作成 のチェックを外す。

25 Win32アプリケーションウィザード のダイアログが現れる。 次へ を左クリック。

26 Windowsアプリケーション を選択。 空のプロジェクト にチェックを入れる。

27 メイン画面に program0 プロジェクト が現れる。

28 プロパティをクリック。

29 文字セット - マルチバイト文字セットを使用 を選択。
(これを行わないと日本語仕様のWindowsでは、 作成したプログラムで文字化けが生じる)

30 C言語プログラムの記述。 ソースファイルを右クリック。 追加 - 新しい項目 を選択。

31 新しい項目の追加 のダイアログが現れる。 C++ファイル を選択 プログラムのファイル名を入力
新しい項目の追加 のダイアログが現れる。 C++ファイル を選択 プログラムのファイル名を入力 (プロジェクト名と同じ名前にすると混乱しにくい) 拡張子を .c にする。 (ここでは program0.c )

32 この空白に program0.c のプログラムコードを記述する。

33 C言語の記述。 画面に Hello, C language. を表示する

34 端末室の Visual Studio .Net の場合は 異なる画面になっているが、機能は同じ。
プロジェクトの種類は Visual C++ プロジェクトの Win32 を選択。 Win32 プロジェクト を選択。 端末室PCでは、自分のUSBメモリ等の中のフォルダを選択する。

35 Visual Studio .Net の場合 アプリケーションの種類は Windows アプリケーション を選択。 空のプロジェクト

36 // program0.c #include <stdio.h> #include "HU.h" void Main(void) { TextWindow( 0, 0, 200, 100 ); printf(" Hello, C language. "); }

37 // Program0.c とは、ただの注釈文。プログラムではない。 //(ダブルスラッシュ)を書くと、そこから右側の文字はプログラムから無視される。 (rem文という) Cコンパイラは、rem文を緑色で表示する。 注釈文を適宜プログラムに入れることで、 プログラムを理解しやすくなることが多い。日本語もOK.

38 #include < > とは、 プログラムにヘッダファイルを合体させることを示す。Cコンパイラでは青色で表示される。 #include <stdio.h> 通常のC言語の最初の文。  C言語が、キーボード、マウス、ディスプレイ などの、コンピュータの基本入出力装置を 使えるように、あらかじめMicrosoftが用意してくれたプログラム(ヘッダファイル)を合体させることを示す。  stdio.h = Standard Input Output header

39 ヘッダファイル 関数の実体(中身)を記述したファイル。 例えば、画面に画像を表示するウィンドウを 作成するだけでも多くのWindowsを操作する関数を使って複雑なプログラムを記述する  必要が生じるが、その過程を1つの関数 GraphicWindow で済むように あらかじめ面倒なプログラムが   既に書き込まれているファイル。

40 ヘッダファイル HU.h #include “ HU.h “ Visual Studio .net 等の C言語で
ウィンドウや文字、画像の表示を行うには、 ものすごく面倒な関数を使わなくてはならない。 そこで、面倒な関数によるプログラムを既に 書いてあるヘッダファイルが HU.h #include < HU.h > と書くことで面倒な関数の 記述がすでに完了したことになり、 プログラム作成作業が大幅に簡略化される。

41 #include “ “ とは、 プログラムに、プログラムと同じフォルダ内にある  (Visual C++ が標準装備していない)ヘッダファイルを合体させることを示す。 Windows上で文字や画像を表示するウィンドウを 作成するC言語を自力で記述するのは 大変面倒な作業である。 そこで、Windowsを操作する面倒で特殊な関数を 使わずに、標準的な文法のC言語、C++言語を記述するだけで、Windows上で文字や画像を扱うことが できるヘッダファイル HU.h を利用する。

42 ホームページから HU.h HU.h 説明書 をダウンロード。
ファイル名を右クリックして 対象をファイルに保存 を選択。

43 HU.h を プロジェクトフォルダ program0 内にコピー。

44 void Main(void) { }  とは、 普通のC言語では main() と書くが、 Main(void)と書くことで、HU.hに用意した 関数が使えるようになっている。 void とは、空っぽ の意味。

45 関数だから、何かを入力して、何かを出力するのだが、 メイン関数は、何もしない形式上の関数なので、main の右側のカッコ内に、本当は入力する変数を入れるところにvoidを記述する。
void Main(void) { }  の { と }の間にC言語プログラムを書く。

46 TextWindow(0,0,200,100);  とは、HU.hで定義した、文字表示用ウィンドウ (テキストウィンドウ)作成関数。 このウィンドウの中には画像は描けない。 (0,0,200,100) は、テキストウィンドウの位置、大きさ。左の0,0はウィンドウの左上座標。 次の200,100はウィンドウの右下座標。

47 TextWindow(0,0,200,100) ; の、右端の;(セミコロン)は、 C言語プログラム文の区切りを示す。 文の終わりには必ず ; を打つ。 ; の打ち忘れは、最もよくある  C言語プログラムミス(バグ)。

48 printf(“Hello, C language.”);
Printf() は、文字や数字をテキストウィンドウに表示する関数で、C言語で頻繁に使う関数。 記述したい文字を、カッコの中に “ 文字 ” と記述する。  (“”で挟んだ文字列を、文字列リテラル という。) 日本語などの2バイト文字もOK. TextWindow(0,0,200,100); と printf(“Hello, C language.”); を 1行につないで TextWindow(0,0,200,100); printf("Hello, Clanguage."); と記述しても同じ。 セミコロンで文の終点が明示してあれば 全く同じプログラムとして正常に動く。

49 program0 の実行   緑三角のデバッグボタンをクリック

50 program0 の実行結果 X ボタンをクリック するとプログラム終了 TextWindow関数が 作成したウィンドウ
printf関数が設定した 文字列の表示

51 program0 フォルダ内に Debug フォルダが作成され、program0.exe が完成した実行プログラム。
これをクリックすると同じ実行結果を得る。 詳細表示にする

52 エクスプローラで拡張子(.exe など)が表示されない場合は、エクスプローラのフォルダオプションで「拡張子は表示しない」のメニューのcheck をはずす。

53 program0 フォルダ内にプロジェクトファイル
program0.vcproj ファイルが作成される。 これをクリックすると Visual C++ が起動し、 プログラムの編集作業が可能となる。

54 課題 1 自分の名前を表示するCプログラムを書いて ホームページの課題提出ボタンから プログラムコードを今週中にメールで送って下さい。
メールの件名には、学生番号、氏名、課題番号を明記。 可能ならば実行ウィンドウを Winshotなどのフリーウェア等を使ってjpgファイル(300Kバイト以下)にして添付して 下さい。 さらに可能ならば、次回以降の講義スライドを見て プログラムを改造して下さい。

55 カーニハン・リッチー (K&R) C言語のバイブル C言語を作った人が書いた本 であり、最も明解な説明書。 ただし文章が長くてくどいので 読むには根性が必要。 その他、多数のC言語解説書、 C言語解説Website があるので 各自、お気に入りの参考書を 入手して下さい。 


Download ppt "臨床画像技術学Ⅱ http://chtgkato.com/  臨床画像技術学Ⅱ   http://chtgkato.com/ 北大病院核医学診療科 加藤千恵次."

Similar presentations


Ads by Google