カメラで撮影したデータに応じて様々な情報を抽出し、画像処理を行う事は 広く応用が進んでいる。そこで、携帯やデジカメで撮影した JPEG 画像を、 GDというライブラリを用いて読み込み、その画像に対して様々な処理を行う プログラムを作成する。 色情報の抽出・ノイズ除去、輪郭線抽出などのアルゴリズムのテーマを決めて プログラムを作成する。
GDライブラリの操作に慣れるために、 以下のプログラムを実行し、動作を確認せよ。 プログラムに必要な基礎的な説明は、 プログラム(imagetest.cxx)のコメントを参照せよ。
利用法が理解できたら、簡単な改造を加え動作を確認せよ。
プログラムは、編集などの作業を Windows 環境を用い、 プログラムのコンパイル・動作を、unix 上のサーバで行う。
情報処理演習室では、unix 環境のホームディレクトリが、 Windows 端末の Z:ドライブで共有されている。
上記ファイル(Makefile,imagetest.cxx)をファイル共有された Z:ドライブに保存せよ。
ファイルをWindowsのエディタで開く場合には、 説明(コメント)の日本語文章が EUC コードなので、 秀丸エディタなどで、エンコーディングに EUC を指定し、読み込む事。
cygwin や DOS窓 のコマンドプロンプトを用いて、 unix 環境に login し、以下のように実行し、動作を確認せよ。
$ telnet maisy Login: ゲストアカウント Password: パスワード guest$ cd ディレクトリ guest$ make guest$ ./imagetest 元画像ファイル 処理結果ファイル guest$ time 命令 # プログラムの実行速度を計測
以下に示す3つのテーマの中から1つを選んで、プログラムを作成せよ。
目標を明記する事。
概要では、 自分の課題で利用している画像処理の基本テクニックを 簡単に説明していること。(微分フィルタや HSV 等)
実験では、自分が作成したプログラムリストと、 処理の内容を説明し、示すこと。
実験結果として、出来上がった画像ファイルなどを示すこと。
考察では、プログラムの動作条件を変化させた場合の結果を データを示しながら比較し、自分の取り組んだ課題から 理解できる、画像処理について説明を行う事。
画像処理は基本的に計算量が多く、処理時間の高速化が求められる。 自分のプログラムの処理速度を(timeコマンド等を使って)計測したり、 プログラムの高速化にどの様な手法が有効であるか、考察すること。
// 単純な輝度変換 // (緑が暗く、青が明るくなる不自然なグレー画像になりやすい) Y = (R + G + B) / 3 ; // NTSC 加重平均法 // (人間の目の RGB の感覚に近い変換) Y = 0.298912×R + 0.586611×G + 0.114477×B ;
Y = 0.299×R + 0.5867×G + 0.114×B ; U = -0.169×R - 0.3316×G + 0.500×B ; V = 0.500×R - 0.4186×G - 0.0813×B ;Last modified: Tue Oct 25 11:36:24 JST 2005