マルチメディア基礎
(第 8 回 )
西 宏之
授業計画 ( シラバスより )
① オリエンテーションにより,メディアの種類と概念を学ぶ→【復習】プログラミング環境 (Visual Studio Comunity) を各自 インストール
② 色情報がコンピュータ上でどのように表現されているかを学び,色情報を加工するための基礎知識を身に付ける.光の三原 色,えのぐの三原色の関係を理解する.
③ 上記の理解度小テスト1を実施する. Visual Studio Community のインストール方と使い方を学ぶ.→【復習】講義中に作 成開始した簡単な画像表示プログラムを完成
④ 理解度小テストの復習・振り返りを行うとともに,写真表示プログラムの練習問題を完成させる. →【復習】講義中に作 成開始した簡単な画像切り替え表示プログラムを完成
⑤ Visual Basic の基本的文法を学ぶ.繰り返し処理,判断分岐,ピクセル情報の読み込み,書き出し方法を学ぶ. その知識 を基に,カラー画像をモノクロ化する手法を学ぶ.→【復習】講義中に作成開始したモノクロ化プログラムを完成させるこ と
⑥ モノクロ化プログラムを作成する.→【復習】講義中に作成開始したモノクロ化プログラムを完成
⑦ ネガポジ反転処理およびしきい値処理による,二値化画像作成処理を学ぶ.ネガポジ,二値化プログラムを作成する.→
【復習】二値化プログラムの完成.
⑧ 色画像情報を加工して,色合いや画像の雰囲気を変更・加工するアイデアを考案する.それに基づく,プログラムを企画す る.→【復習】これまでに学んだ知識を組合せ,さらにアイデアを盛り込んだ画像処理プログラムを考案し,プログラム作 成を開始する.
⑨ これまでに学んだ,画像処理および独自のアイデアを盛り込んだ画像処理プログラムを完成させる.→画像処理プログラム
「レポート1」提出
⑩ ゲームプログラミングの構成と考え方を学ぶ.→【復習】各自,自分が知っているゲームがどのような計算機能を行ってい るかを分析しておくこと.
⑪ ゲーム処理に必要なタイマー管理とそのプログラミング作法を学ぶ.→【復習】タイマー管理技法を応用して,「ストップ ウオッチ」プログラムを作成
⑫ ゲーム処理に必要な乱数発生とそのプログラミング作法を学ぶ.→【復習】乱数発生技法を応用して,「ビンゴ」プログラ ムを作成
⑬ ゲーム処理に必要なサウンド再生機能とそのプログラミング作法を学ぶ.→【復習】サウンド再生機能を応用して,音楽プ レーヤーアプリを作成
⑭ これまでに学んだ,技法を応用したモグラたたきゲームプログラムを作成する.→これまでの理解度小テスト2を行う
⑮ モグラたたきゲームに,ハイスコア表示など独自の機能を付け加える企画を行い,そのプログラム作成を開始する.→【復 習】独自機能を追加したモグラたたきゲームを作成する.
⑯ 企画した独自機能付きモグラたたきゲームプログラムを完成する.→【復習】継続して独自機能を追加したモグラたたき ゲームを作成し, 「レポート2」提出
レポート 1 の課題
プログラムは AI オセロと同じ班で、協力して一つのソフトを作る
.
レポートも AI オセロの班で協力して、班で 1 つのレポートを提出
する
基本部分として次のようなプログラムを作成しなさい
左画面には元画像を表示
画像ファイルは,読み込みボタンによりユーザが指定する.練習問題と同じ ように, jpeg , bmp , gif ファイルのフィルターを用いること
右画面には処理後の画像を表示
モノクロ化,ネガポジ, 2 値化を各々対応するボタンクリックを契機として 処理すること
2 値化のしきい値はテキストボックスからユーザが指定すること
処理後の画像は保存ボタンで画像ファイルとして保存されること
さらに新規機能を追加しなさい
第 4 ,第 5... の画像処理を自分達で考え, FOR 文の中にプログラムせ よ.アイデアの内容と完成度により得点が加算される.
新しいボタンの文字を,処理内容がわかるタイトルにせよ.
他のコントロール ( テキストボックス,ボリュームバー等 ) を併用して もよい.
初期画面例
下記のように立ち上がる
マルチメディア基礎レポート1
第 1 班 ○山△夫、□田■子、・・・
「読み込み」後の表示例
マルチメディア基礎レポート1
第 1 班 ○山△夫、□田■子、・・・
右画面表示例~ネガポジ処理の場
合
マルチメディア基礎レポート1
第 1 班 ○山△夫、□田■子、・・・
第 4 、第 5 の処理ボタンを押す
と...例えば、、、
マルチメディア基礎レポート1
第 1 班 ○山△夫、□田■子、・・・
新規機能のボタンには、内容をよく表すタイトルを入れる こと
新規機能のボタンのソースコード
例
' ① まず,宣言
Dim bmpa As Bitmap = PictureBox1.Image
Dim bmpb As Bitmap = New Bitmap(PictureBox1.Width, PictureBox1.Height) Dim iroa, irob As Color
Dim heikin, i, j As Integer
' ② 繰り返し処理は FOR NEXT 文で回す For i = 0 To PictureBox1.Width - 1 For j = 0 To PictureBox1.Height - 1 iroa = bmpa.GetPixel(i, j)
' ~元画像の 1 つの点の色情報を取得する.
irob = Color.FromArgb(255 - Val(iroa.R), 255 - Val(iroa.G), 255 - Val(iroa.B))
bmpb.SetPixel(i, j, irob)
' ~それを返還先のビットマップオブジェクトにセットする Next
Next
PictureBox2.Image = bmpb
' ~最後にビットマップをピクチャーボックスに貼付る
この行を考えることが課題です
レポートの作成と提出方法
提出期限は6月 14 日 ( 水 ) 講義終了時とする.
次の内容からなるレポートを班で 1 通提出すること
ワードで作成し、プリントアウトしたものを提出
「マルチメディア基礎レポート1」というタイトルの下に、班番号、学生 番号、氏名のリストを記入 ( 氏名の横に自署サインを入れること )
デザイン画面をキャプチャーしたもの
新規機能のボタンをクリックしたときの処理内容を示すソースコード
新規機能のボタンをクリック ( 実行 ) したときの結果画面をキャプチャー したもの
各自の分担内容の一覧 ( 一人一人、貢献した内容がわかるように文章で記 述 )
A4 裏表で 3 枚 6 ページ (3 枚に入りきらない場合は最大4枚まで可 ) ホッ チキス止めすること
宇宙航空学科の受講者は宇宙航空学科で一つの班 (20 班 ) とする。
再履修の受講生は個人で作成し、個人で提出してください。ただし、班に 入っている人は班の中に入っても良いです。
30点満点で評価
授業で習った3つの機能が出来ていれば、 10 点 ( 班内で共通 )
新規追加機能のアイデアの質と完成度で 10 点 ( 班内で共通 )
分担内容によって、貢献度に応じて一人あたり最大 10 点 ( 一人一人異な る得点 )
禁止事項
あくまで, RGB の値を操作するプログラミ
ングコードを書くこと
ネットから得た画像処理のメソッドを使っ
ただけのものは採点しない.
注意
実行時にファイルのダイアローグで,「キャン
セルボタン」をクリックした際にエラーとなる
のは気にしなくてよい.
読み込む画像は特に指定しないので、各自適当
なものを用意すること.ピクチャーボックスよ
り少し大きめの画像がよい.
自分で画像を用意できない者は,講義録サイト
の「サンプル画像」を使ってください.
画面のキャプチャー方法 → PRT スクリーン
(PrtSc)
特定の Window だけキャプチャー → Alt + PrtSc