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

Slides:



Advertisements
Similar presentations
第5章 JMPのインストールと基本操作 廣野元久
Advertisements

目次(電子納品 操作手順) ※ページはスライド番号
情報基礎演習I(プログラミング) 第9回 6月22日 水曜5限 江草由佳
プログラミングとは Q.プログラムとは何か? A.コンピュータを制御するための,コンピュータに対する命令(指示)の集まり.
TeX で数式を書くための PowerPoint アドイン Ver (2011/06/26) Ver. 0.1 (2007/5/30)
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第3回 配列(1) 情報・知能工学系 山本一公
Microsoft PowerPoint98 Netscape Communicator 4.06[ja]
2014年度 プログラミングⅡ ~ Cプログラミングやってみよう ~.
2015年度 プログラミングⅡ ~ Cプログラミングやってみよう ~.
プログラミング入門 電卓番外編 ~エクセルで関数表示~.
Java I 第2回 (4/18)
コマンドプロンプトの起動と終了 最初に覚えるコマンド ディレクトリ構造とパス 各種コマンドの練習 Cコンパイルとプログラムの実行
2013年度 プログラミングⅡ ~ Cプログラミングやってみよう ~.
デスクトップを画像として保存する(1) ① デスクトップの画像をクリップボードへコピーする。
ファイルやフォルダを検索する ①「スタート」→「検索」→「ファイルとフォルダ」とクリックする。
PCの情報を得る - 「システム情報」 ①「スタート」→「すべてのプログラム」→「アクセサリ」→「システム ツール」→「システム情報」とクリックする。 ②左欄の項目を選択すると、右欄に情報が表示される。
第2章 数値の入力と変数 scanfと変数をやります.
TeX で数式を書くための PowerPoint アドイン Ver. 0.1 (2007/5/30)
「RnR FixLinks Pro」解説(一般公開用・無償版)
デスクトップを画像として保存する(1) ① デスクトップの画像をクリップボードへコピーする。
エクスプローラ ● エクスプローラ: ファイルやフォルダを階層構造で表示してあり、これらを操作するのに便利。
Al-Mailのインストールと使い方 インストール –1 (pop-authの設定、Al-Mailのインストール用ファイルをダウンロード)
プログラミングとは Q.プログラムとは何か? A.コンピュータを制御するための,コンピュータに対する命令(指示)の集まり.
chtgkato.com から 本実習用HPへ 毎回出席カードを配ります。 レポート作成日(R)は出席を取りませんが、 振替実習を実施した場合は出席カードを提出して下さい。 実習を欠席した場合は、レポート作成日(R)に単独で実施するか、 該当実習を行っているグループに加わる。
湘南工科大学 2013年4月23日 プロジェクト実習A アドベンチャーゲームを作ろう 第3回 湘南工科大学情報工学科 准教授 小林 学.
情報工学科 二宮 洋・鈴木 誠 小林 学・高畠俊徳 火曜日 1コマ目
初年次セミナー 第2回 文字の出力.
情報処理基礎 2006年 6月 22日.
10 Microsoft Word(1) 10.1 Microsoft Word v.Xの概要 起動 終了
情報工学科 3年生対象 専門科目 システムプログラミング 第5回、第6回 ヒアドキュメント レポート課題 情報工学科 篠埜 功.
プロジェクト演習Ⅱ インタラクティブゲーム制作 イントロダクション2
Microsoft Visual Studio 2005 の使い方
Office IME 2010 を使う.
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也.
C言語講習 第0章 Hello, world!.
プログラミング応用 printfと変数.
VBA ( Visual BASIC for Application) を使えるようにする方法
コマンドプロンプトの起動と終了 最初に覚えるコマンド ディレクトリ構造とパス 各種コマンドの練習 Cコンパイルとプログラムの実行
単語登録(1) ◎MS-IMEの「単語登録」に、単語、語句、記号など自分がよく使うものを登録しておくと、便利である。
湘南工科大学 2013年10月8日 プログラミング基礎1 湘南工科大学情報工学科 准教授 小林 学.
ゲームプログラミング講習  第3章 ゲーム作成 ブロック崩しを作ります ゲームプログラミング講習 第3章 ゲーム作成.
0.2 プロジェクトの準備 DXライブラリを使うための準備.
Windows XP  ウィルスバスターインストール方法.
デジタル画像とC言語.
インタラクティブ・ゲーム制作 プログラミングコース 補足資料
地域情報学 C言語プログラミング 第1回 導入、変数、型変換、printf関数 2016年11月11日
2013年度 プログラミングⅡ ~ はじめてのプログラミング ~.
コンピュータ プレゼンテーション.
2017年度 プログラミングⅡ ~ はじめてのプログラミング ~.
2014年度 プログラミングⅡ ~ はじめてのプログラミング ~.
情報基礎演習I(プログラミング) 第11回 7月12日 水曜5限 江草由佳
C言語 はじめに 2016年 吉田研究室.
ファイルやフォルダを検索する ①「スタート」→「検索」とクリックする。 ②「表示項目」から適当なものを選択する。
高度プログラミング演習 (01).
第1章 いよいよプログラミング!! ~文章の表示 printf~
地域情報学 C言語プログラミング 第1回 導入、標準出力、変数 2017年10月13日
TeX で数式を書くための PowerPoint アドイン Ver. 0.1 (2007/5/30)
プログラミング入門 電卓を作ろう・パートI!!.
情報基礎演習I(プログラミング) 第8回 6月8日 水曜5限 江草由佳
TeX で数式を書くための PowerPoint アドイン Ver. 0.1 (2007/5/30)
vc-1. Visual Studio C++ の基本操作 (Visual Studio C++ の実用知識を学ぶシリーズ)
C言語講習 第0章 Hello, world!.
標準入出力、変数、演算子、エスケープシーケンス
Visual Studio 2013 の起動と プロジェクトの新規作成 (C プログラミング演習,Visual Studio 2019 対応) 金子邦彦.
エクスプローラ ● エクスプローラ: ファイルやフォルダを階層構造で表示してあり、これらを操作するのに便利。
Cp-1. Microsoft Visual Studio 2019 C++ の使い方 (C プログラミング演習,Visual Studio 2019 対応) 金子邦彦.
単語登録(1) ◎MS-IMEの「単語登録」に、単語、語句、記号など自分がよく使うものを登録しておくと、便利である。
printf・scanf・変数・四則演算
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
第1章 文字の表示と計算 printfと演算子をやります.
Presentation transcript:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

プロパティをクリック。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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."); と記述しても同じ。 セミコロンで文の終点が明示してあれば 全く同じプログラムとして正常に動く。

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

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

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

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

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

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

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