画像情報処理特論①

1.2K Views

December 09, 23

スライド概要

第1回  Java開発環境の構築

画像処理の理論と汎用的なプログラム実装技術の習得を目指す「画像情報処理特論」。Javaを用いた画像情報処理技術に加え、前処理技術や後処理技術などについても学びます。また、Javaの文法をしっかり学び、アルゴリズムの知識を身に着け、プログラムが動くことに楽しみを見出せるようになることを目指します。

profile-image

大学教員です。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

2018/04/12 画像情報処理特論 第1回 Java開発環境の構築 東京工科大学 助教 加納 徹

2.

自己紹介 氏名: 加納 徹 (Toru, KANO) 専門: 画像計測、医用画像処理、X線CT プログラミング言語: C, Java 2

3.

研究テーマ CT画像に含まれる各種アーチファクトの低減 処理前 3 処理後

4.

本講義の概要 ① 計測画像には 不要な情報 が多く含まれる 画像情報処理技術 前処理技術 濃度変換、フィルタ処理、ノイズ除去 後処理技術 特徴抽出・解析、定量評価 Java を用いて実装 4

5.

本講義の概要 ② 到達目標: 画像処理の理論と汎用的なプログラム実装技術の習得 ラーニングアウトカム重点項目: 「実学に基づく専門能力」「理論的な思考力」 履修に必要なもの: ノートパソコン、数学・プログラミングの基礎知識 成績評価方法・基準: 演習50点、レポート課題50点、60点以上で合格 5

6.

本講義のもう一つのねらい ⚫ Javaの文法をしっかり学ぶ ⚫ アルゴリズムの知識を身に付ける ⚫ プログラムが動くのを楽しむ ⚫ ソフトウェア開発を身近に感じる 6 作る楽しさを知れば、学ぶのが楽しくなる!

7.

授業計画 第1回:ガイダンス、Java開発環境の構築 第2回:GUIアプリケーション開発、画像データの入出力 第3回:前処理(1)(濃度変換、モルフォロジー演算) 第4回:前処理(2)(平滑化、先鋭化) 第5回:画像のセグメンテーション 第6回:画像の特徴抽出・特徴解析 第7回:画像の定量評価(MSE、PSNR、CNR) 第8回:コンピュータ診断支援への展開、まとめ 7

8.

Java開発環境の構築

9.

Javaの開発環境 1. JDK (Java SE Development Kit) ⚫ Javaのプログラミングに必要な基本道具セット 2. NetBeans ⚫ Java公式の統合開発環境(IDE) ⚫ 優れたGUIエディタを搭載 3. Javaドキュメント ⚫ Javaの便利な取扱説明書 英語版のJavaドキュメントは最初から入っているみたい 9

10.

JDK/NetBeansのインストール① 1. http://www.oracle.com/technetwork/java /javase/downloads/index.html にアクセス 2. 「NetBeans with JDK 8」をクリック 10

11.

JDK/NetBeansのインストール② 3. 「Accept License Agreement」をチェック 4. 各自の環境に合ったものをダウンロード 11

12.

JDK/NetBeansのインストール③ 1. 「次へ」を押す 2. 「次へ」を押す 3. 「次へ」を押す 6. 「データ提供」のチェックを 外して「終了」を押す 5. しばらく待つ 4. 「更新の確認」のチェックを 外して「インストール」を押す

13.

Javaの特徴 ⚫ 世界で最も使われているプログラミング言語 ⚫ C言語から派生(文法が似てる) ⚫ GUIソフトウェアが作りやすい 13 CUI GUI Character User Interface Graphical User Interface

14.

Javaの特徴 ⚫ 世界で最も使われているプログラミング言語 ⚫ C言語から派生(文法が似てる) ⚫ GUIソフトウェアが作りやすい ⚫ マルチプラットフォーム(どんなPCでも動く) ⚫ ライブラリが豊富(便利な道具がいっぱい) ⚫ オブジェクト指向(効率的で安全) 14 ⚫ だいたい何でもできる

15.

Javaの使い道 ⚫ 電気製品(携帯電話、電子レンジ) ⚫ 業務/研究アプリケーション ⚫ Webアプリケーション ⚫ スーパーコンピュータ 15 Java無しではもう生きていけない

16.

基本的な用語の説明 ⚫ 変数 ⚫ 数値や文字などを入れておく入れ物 ⚫ メソッド ⚫ 一連の処理のまとまり (C言語の関数に相当) ⚫ プログラムはmainメソッドから始まる (C言語のmain関数に相当) ⚫ クラス ⚫ 変数やメソッドのまとまり ⚫ プログラムには必ずmainクラスが一つ存在する ⚫ プログラムはmainクラスのmainメソッドから始まる 16 全ての変数とメソッドは、必ずクラスに属している

17.

NetBeansの起動 1. アイコンをクリック 3. データ提供は「いいえ」を選択 4. NetBeansの起動! 2. 少し待つ 17

18.

Javaドキュメントのダウンロード 18 1. http://www.oracle.com/technetwork/jp/java/java-sun1440465-ja.html にアクセス 2. 最新バージョンのファイルをダウンロード 3. そのまま「C://Program Files/Java/」等の場所に入れる

19.

Javaドキュメントの組み込み 4. [ツール] ⇨ [Javaプラットフォーム] と進む 19

20.

Javaドキュメントの組み込み 5. [Javadoc] タブを選択し、 [ZIP/フォルダの追加] ボタンを押す 20

21.

Javaドキュメントの組み込み 6. [上へ移動] ボタンを押して、 一番上まで移動させる 21

22.

基本的なプログラミング

23.

新規プロジェクト 「Workshop1」 を作ろう プロジェクトの作成 1. [新規プロジェクト...] ボタンを押す 3. プロジェクト名(Workshop1)をつけて、 [終了] ボタンを押す 2. そのまま [次へ] ボタンを押す

24.

プロジェクトの作成 24

25.

フォント変更のすすめ 1. [ツール] ⇨ [オプション] と進む 25 2. [フォントと色] タブでフォントを変更する

26.

フォント変更のすすめ 3. [その他] タブの [出力] タブでフォントを変更する 26

27.

プロジェクト作成のすすめ 時々左上にこんなものを表示します 27 新規プロジェクト 「Workshop1」 を作ろう 既存プロジェクト 「Workshop1」 を使おう 新しく作ったほうが 手っ取り早いとき あるものを使ったほうが 手っ取り早いとき 覚えたか?

28.

2.1 文字の出力

29.

既存プロジェクト 「Workshop1」 を使おう 29 Hello NetBeans! 「System.out.println(“Hello NetBeans!”);」と書いてみよう

30.

Hello NetBeans! 30 [Ctrl] + [スペース] で強制的に候補を出すこともできる

31.

Hello NetBeans! 31 出力ウィンドウにHello NetBeans! と表示されたら成功!

32.

2.2 変数

33.

データの入れ物「変数」 変数とは [ データ型 ] [ 変数名 ] ; の形で宣言される、数値や文字を入れておく入れ物です データ型 種類 サイズ 扱える範囲 short 整数 2バイト −32786~32767 int 整数 4バイト −2147483648~2147483647 long 整数 8バイト −9223372036854775808~9223372036854775807 float 浮動小数点数 4バイト 有効数字7桁 ±10−38 ~1038 double 浮動小数点数 8バイト 有効数字15桁 ±10−308 ~10308 char 文字定数 1バイト Unicode文字(一文字) String 文字列 不定 boolean 論理値 1バイト 大体どんだけでも true, false

34.

データの入れ物「変数」 変数とは [ データ型 ] [ 変数名 ] ; の形で宣言される、数値や文字を入れておく入れ物です データ型 34 種類 サイズ 扱える範囲 int 整数 4バイト −2147483648~2147483647 double 浮動小数点数 8バイト 有効数字15桁 ±10−308 ~10308 String 文字列 不定 boolean 論理値 1バイト 大体どんだけでも true, false これくらいなら、簡単に覚えられそうだね

35.

既存プロジェクト 「Workshop1」 を使おう 変数の使い方 public static void main(String[] args) { int a; double b; String s; a = 42; b = 3.1415926535; s = "Hello, NetBeans 8.1"; System.out.println("a の値は " + a); System.out.println("b の値は " + b); System.out.println("s の値は " + s); } 35 int a = 42; のように、宣言と代入は同時にできる

36.
[beta]
新規プロジェクト
「Workshop2」
を作ろう

色々な計算

public static void main(String[] args) {
int a = 16, b = 4;
double x = 2.5, y = 8.3;
// 四則演算
System.out.println("a = " + a + ", b = " + b);
System.out.println("a + b = " + (a + b));
System.out.println("a - b = " + (a - b));
System.out.println("a * b = " + (a * b));
System.out.println("a / b = " + (a / b));
System.out.println();
// Mathクラス
System.out.println("x = " + x + ", y = " + y);
System.out.println("x ^ y = " + Math.pow(x, y));
System.out.println(“sin(x - y) = " + Math.sin(x - y));
System.out.println("log(x + y) = " + Math.log(x + y));

}

36

「Math.」と打ち込んで候補を観察してみよう

37.

2.3 if文

38.

if文 if (評価式) { 処理 } の形で記述され、評価式の結果が正しければ処理が実行されます パターン1 if (評価式A) { 処理A ; } 38 パターン2 評価式A Yes 処理A No if (評価式A) { 処理A ; } else { 処理B ; } 評価式A No Yes 処理A プログラムの分岐を作る超重要な文法! 処理B

39.
[beta]
新規プロジェクト
「Workshop3」
を作ろう

if文
2つの値を比較するときは、比較演算子を用います

39

演算子

意味

==

等しい

!=

等しくない

>

より大きい

>=

以上

<

より小さい

<=

以下

public static void main(String[] args) {
int a = 0;
int b = 1;
if (a == b) {
System.out.println(“a と b は等しいよ");
} else {
System.out.println(“a と b は等しくないよ");
}
}

40.

2.4 for文

41.
[beta]
新規プロジェクト
「Workshop4」
を作ろう

for文

for (初期化 ; 評価式 ; 次の一歩) { 処理 }
の形で記述され、次の流れで実行されます
1. 初期化を行う

初期化

2. 評価式が正しければ、処理を実行する(違えば終了)
3. 処理が終わったら、次の一歩を行う
4. 手順2に戻る
public static void main(String[] args) {

評価式
Yes
処理

int sum = 0;
for (int n = 1; n <= 10; n++) {
sum = sum + n;
}

System.out.println("1から10までの和は, " + sum);
}

次の一歩

42.

新規プロジェクト 「Workshop5」 を作ろう 練習問題 for文とif文を使い、九九の表を出力しなさい 一桁の数字の前には 0 を挿入し、綺麗に揃えなさい 実行例 ヒント print()メソッドを使うと改行されない for文の中にfor文を入れることができる どこで改行を入れるかがミソ 数字が一桁かどうかはif文で判定する できるかな?

43.

NetBeansの便利な機能 テキストエディタのどこかで 右クリックしてみよう 43

44.

お疲れ様でした つづく