[[ゼミ資料(Colloquium Material)※ICL限定]]


*プログラミング課題1[#w751818f]
 更新日 : 2011-04-09 (土) 14:03:45&br;


**問題1 モノクローム画像における統計量の測定[#w7563351]

***1. 輝度分布[#g137291c]
 モノクローム画像 home, barbara, harbor の輝度分布を測定するプログラムを作成し,輝度分布のグラフを作成しなさい.ただし,輝度分布のグラフはX軸を輝度値とし,Y軸を出現頻度としてgnuplotを用いて作成しなさい.&br;

***2. 輝度の平均値,最大値,最小値,分散,電力,中央値および最頻値[#q8ab1d60]
 モノクローム画像 home, barbara, harbor における輝度の平均値,最大値,最小値,分散,電力,中央値および最頻値を測定するプログラムを作成しなさい.&br;&br;

|CENTER: 平均値 '''μ''' |CENTER: 最大値 '''Max''' |CENTER: 最小値 '''Min''' |CENTER: 分散 '''σ'''^2 |
|CENTER:BGCOLOR(white):#ref(mean.png)|CENTER:BGCOLOR(white):#ref(max.png)|CENTER:BGCOLOR(white):#ref(min.png)|CENTER:BGCOLOR(white):#ref(var.png)|
|CENTER: 電力 '''P''' |CENTER: 中央値 |CENTER: 最頻値 |CENTER: |
|CENTER:BGCOLOR(white):#ref(pow.png)|CENTER:BGCOLOR(white): 昇順 ('''MN'''+1)/2 番目の輝度値 ('''MN''' : 奇数) &br; 昇順 '''MN'''/2 番目の輝度値    ('''MN''' : 偶数) |CENTER:BGCOLOR(white): 輝度分布において最も多く出現する輝度値 |CENTER:BGCOLOR(white): |

CENTER:※'''I''' : 画像信号, '''x'''&size(6){'''i''','''j'''}; : 輝度値, '''M''' : 画像の水平方向サイズ, '''N''' : 画像の垂直方向サイズ&br;

***3. 1次元自己相関係数[#t17ab490]
 モノクローム画像 home, barbara, harbor における水平方向および垂直方向の自己相関係数を測定するプログラムを作成し,自己相関係数のグラフを作成しなさい.ただし,自己相関係数の計算において,画像外に相当する画素を使用する際,0として扱う場合と定義できる範囲内で計算する場合の2種類が考えられるので,両者の場合についてそれぞれ測定を行い,両者の結果を比較して考察を述べなさい.また,自己相関係数のグラフはX軸を画素間距離(0~20)とし,Y軸を自己相関係数としてgnuplotを用いて作成しなさい.&br;&br;

|CENTER: 1次元自己相関関数 |CENTER: 1次元自己相関係数 |
|CENTER:BGCOLOR(white):#ref(rff1.png)|CENTER:BGCOLOR(white):#ref(ro1.png)|

CENTER:※'''j''' : 画素間距離, '''I''' : 画像信号, '''x'''&size(6){'''i'''};, '''x'''&size(6){'''i'''+'''j'''}; : 輝度値, '''N''' : 画素数&br;

***4. 1次元自己共分散[#a97ab1af]
 モノクローム画像 home, barbara, harbor における水平方向および垂直方向の自己共分散を測定するプログラムを作成し,自己共分散のグラフを作成しなさい.ただし,自己共分散の計算において,画像外に相当する画素を使用する際,0として扱う場合と定義できる範囲内で計算する場合の2種類が考えられるので,両者の場合についてそれぞれ測定を行いなさい.また,自己共分散のグラフはX軸を画素間距離(0~20)とし,Y軸を自己共分散としてgnuplotを用いて作成しなさい.さらに,自己共分散関数と自己相関関数との関係式を確認し,それに対する考察を述べなさい.&br;&br;

|CENTER: 1次元自己共分散関数 |
|CENTER:BGCOLOR(white):#ref(cff1.png)|

CENTER:※'''j''' : 画素間距離, '''I''' : 画像信号, '''x'''&size(6){'''i'''};, '''x'''&size(6){'''i'''+'''j'''}; : 輝度値, '''N''' : 画素数, '''μ''' : 輝度の平均値&br;

***5. 2次元自己相関係数[#ae8b87b8]
 モノクローム画像 home, barbara, harbor における2次元自己相関係数を測定するプログラムを作成し,自己相関係数のグラフを作成しなさい.ただし,自己相関係数の計算において,画像外に相当する画素を使用する際,0として扱う場合と定義できる範囲内で計算する場合の2種類が考えられるので,両者の場合についてそれぞれ測定を行いなさい.また,自己相関係数のグラフはX軸を水平方向の画素間距離(0~8)とし,Y軸を垂直方向の画素間距離(0~8)とし,Z軸を自己相関係数としてgnuplotを用いて作成しなさい.&br;&br;

|CENTER: 2次元自己相関関数 |CENTER: 2次元自己相関係数 |
|CENTER:BGCOLOR(white):#ref(rff2.png)|CENTER:BGCOLOR(white):#ref(ro2.png)|

CENTER:※'''k''' : 水平方向の画素間距離, '''l''' : 垂直方向の画素間距離, '''I''' : 画像信号, '''x'''&size(6){'''i''','''j'''};, '''x'''&size(6){'''i'''+'''k''','''j'''+'''l'''}; : 輝度値, '''M''' : 画像の水平方向サイズ, '''N''' : 画像の垂直方向サイズ&br;

#br

**問題2 カラー画像における統計量の測定[#ebc0f9cb]
 カラー画像 home, barbara に対してR-G間およびG-B間の2次元相互相関係数を測定するプログラムを作成し,相互相関係数のグラフを作成しなさい.ただし,2次元相互相関係数の計算において,画像外に相当する画素を使用する際,0として扱う場合と定義できる範囲内で計算する場合の2種類が考えられるので,両者の場合についてそれぞれ測定を行いなさい.また,相互相関係数のグラフはX軸を水平方向の画素間距離(0~8)とし,Y軸を垂直方向の画素間距離(0~8)とし,Z軸を相互相関係数としてgnuplotを用いて作成しなさい.&br;&br;

|CENTER: 2次元相互相関関数 |CENTER: 2次元相互相関係数 |
|CENTER:BGCOLOR(white):#ref(rfg2.png)|CENTER:BGCOLOR(white):#ref(r2.png)|

CENTER:※'''k''' : 水平方向の画素間距離, '''l''' : 垂直方向の画素間距離, '''I'''&size(6){1}; : 画像信号1, '''I'''&size(6){2}; : 画像信号2, '''x'''&size(6){'''i''','''j'''};, '''y'''&size(6){'''i'''+'''k''','''j'''+'''l'''}; : 輝度値, '''M''' : 画像の水平方向サイズ, '''N''' : 画像の垂直方向サイズ, '''P'''&size(6){1}; : '''I'''&size(6){1}; の電力, '''P'''&size(6){2}; : '''I'''&size(6){2}; の電力&br;

#br

**問題3 Y,Cb,Cr 変換[#wd8e47ff]

***1. R,G,B → Y,Cb,Cr[#u665623f]
 カラー画像 home に対して R,G,B 成分を Y,Cb,Cr 信号に変換するプログラムを作成しなさい.&br;&br;

|CENTER: R,G,B → Y,Cb,Cr &br; (Y,Cb,Cr 変換) |CENTER: Y,Cb,Cr → R',G',B' &br; (Y,Cb,Cr 逆変換) |
|BGCOLOR(white):#ref(ycbcr.png)|BGCOLOR(white):#ref(rgb.png)|
#br

***2. Y,Cb,Cr 信号の確認[#g724b2db]
 上記の1で作成した Y,Cb,Cr 信号が正しい値であるかを確認するために,下記を実行しなさい.&br;&br;

(1)各 Y,Cb,Cr 信号をモノクローム画像としてディスプレイに表示させなさい.ただし,信号値をディスプレイに表示する際,ダイナミックレンジが0から255となるように変換しなさい.&br;
(2)Y,Cb,Cr 信号を R,G,B 成分に逆変換するプログラムと画像間の PSNR を測定するプログラムを作成し,原画像と逆変換後の画像との PSNR を測定しなさい.このとき,原画像または原画像に近い輝度値に戻るかどうか確認しなさい.&br;
(3)原画像と逆変換後の画像が完全に一致しない場合があるが,なぜそれが起こるのかを考察しなさい.また,原画像と逆変換後の画像が完全に一致しない場合,初めて不一致が発生した画素位置とその位置から4×4画素分の R,G,B 成分値,Y,Cb,Cr 信号値および逆変換後の R,G,B 成分値を出力しなさい.&br;&br;

|CENTER: PSNR |
|CENTER:BGCOLOR(white):#ref(psnr.png)|

CENTER:※'''I'''&size(6){1}; : 画像信号1, '''I'''&size(6){2}; : 画像信号2, '''x'''&size(6){'''i''','''j'''};, '''y'''&size(6){'''i''','''j'''}; : 輝度値, '''M''' : 画像の水平方向サイズ, '''N''' : 画像の垂直方向サイズ, '''x'''&size(6){max}; : '''I'''&size(6){1}; におけるダイナミックレンジの最大値&br;

***3. R,G,B → Y,Cb,Cr (JPEG 2000 の可逆コンポーネント変換)[#z32d317a]
 カラー画像 home に対して JPEG 2000 の可逆コンポーネント変換を行うプログラムを作成しなさい.&br;

|CENTER: R,G,B → Y,Cb,Cr &br; (JPEG 2000 の可逆コンポーネント変換) |CENTER: Y,Cb,Cr → R',G',B' &br; (JPEG 2000 の可逆コンポーネント逆変換) |
|CENTER:BGCOLOR(white):#ref(ycbcr_jpeg2000.png)|CENTER:BGCOLOR(white):#ref(rgb_jpeg2000.png)|

***4. Y,Cb,Cr 信号の確認 (JPEG 2000 の可逆コンポーネント変換)[#v64eac9f]
 上記の3で作成した Y,Cb,Cr 信号に対して,上記の2.(1),(2)と同様のことを実行し,上記1の場合と比較して考察を述べなさい.&br;

#br
----
#br


*注意事項[#bed1b938]
 プログラミング課題は各自,独力で作成し,記述言語はCまたはC++とすること.これ以外の言語で課題に取り組みたい場合はレポートチェック担当者の承諾を得ること.また,課題の分からない箇所は他人に相談してもよいが,他人のプログラムをコピーしないこと.また,レポートはプログラミング演習のレポート形式に従って作成するため,レポートには以下の項目をすべて含むことを条件とする.ただし,サンプルソースに記述してあるデータ構造および関数の説明は不要である.&br;&br;

 レポート必須項目&br;
 ・課題概要&br;
 ・ソースリスト&br;
 ・データ構造の説明&br;
  ・定数宣言 (マクロ,const)&br;
  ・構造体 (typedef,struct)&br;
  ・グローバル変数&br;
 ・関数&br;
  ・関数の説明&br;
  ・引数&br;
  ・戻り値&br;
 ・実行結果&br;
 ・考察&br;

#br
----
#br


*使用画像[#td738aca]
 課題で使用する画像は共有サーバ prost にあるので,各自入手すること.&br;

 URL : \\prost\共有フォルダ3\ICL\平成23年度\プログラミング課題\画像\ProKadai1-image.zip&br;&br;

|CENTER: 画像名 |CENTER: 画像サイズ &br; (水平×垂直) |CENTER: 画像種別 |CENTER: 階調数 |
|CENTER:BGCOLOR(white): home.256 |CENTER:BGCOLOR(white): 512×512 |CENTER:BGCOLOR(white): モノクローム画像 |CENTER:BGCOLOR(white): 256 level (8bit/pel) |
|CENTER:BGCOLOR(white): barbara.256 |CENTER:BGCOLOR(white): 512×480 |~|~|
|CENTER:BGCOLOR(white): harbor.256 |CENTER:BGCOLOR(white): 4096×3072 |~|~|
|CENTER:BGCOLOR(white): home.rgb |CENTER:BGCOLOR(white): 512×512 |CENTER:BGCOLOR(white): カラー画像 |CENTER:BGCOLOR(white): RGB 各256 level (8bit/pel) |
|CENTER:BGCOLOR(white): barbara.rgb |CENTER:BGCOLOR(white): 512×480 |~|~|

#br
----
#br


*サンプルソース[#aeb697ac]
 サンプルソースは共有サーバ prost にあるので,自由に使用してよい.また,サンプルソースを使用せず,一から作成してもよい.&br;

 URL : \\prost\共有フォルダ3\ICL\平成23年度\プログラミング課題\サンプルソース\ProKadai1-sample.zip&br;

#br
----
#br


*提出先および提出期限[#o610d318]
 問題ごとにレポートを作成し,レポートが完成したら,以下の提出先に提出してからレポートチェック担当者にメールを出してレポートチェックを受けること.なお,レポートチェックを受けている間にも別の問題に取り組み,なるべく早めに課題を完了させること.また,レポートのファイル名は "[名前]_kadai1-['''n''']" とし,"doc" または "docx" 形式で提出すること.&br;
 また,修正版のファイル名は "[名前]_kadai1-['''n''']_修正版" とし,再提出版のファイル名は "[名前]_kadai1-['''n''']_再提出版" とし,"doc" または "docx" 形式で提出すること.&br;

 ※[名前] : 自分の名字を日本語で記入 (LE君は英語で構いません)&br;
 ※['''n'''] : 問題番号を半角英数字で記入&br;

 問題1の提出先 : \\prost\共有フォルダ3\ICL\平成23年度\プログラミング課題\プログラミング課題1\問題1\&br;
 問題2の提出先 : \\prost\共有フォルダ3\ICL\平成23年度\プログラミング課題\プログラミング課題1\問題2\&br;
 問題3の提出先 : \\prost\共有フォルダ3\ICL\平成23年度\プログラミング課題\プログラミング課題1\問題3\&br;

 &color(red){問題1の提出期限 : 2011/04/18(月) 17:00 時間厳守};&br;
 &color(red){問題2の提出期限 : 2011/04/22(金) 17:00 時間厳守};&br;
 &color(red){問題3の提出期限 : 2011/04/27(水) 17:00 時間厳守};&br;
 &color(red){問題1,2,3(修正版)の提出期限 : 2011/05/02(月) 17:00 時間厳守};&br;

#br
----
#br


Top   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS