[[ゼミ資料(Colloquium Material)※ICL限定]] *プログラミング練習1 [#w751818f] **課題1 [#w7563351] ***1.1. モノクローム画像 home, barbara, harbor の輝度分布を測定するプログラムを作成し,輝度分布のグラフを作成しなさい.[#g137291c] ※輝度分布のグラフはX軸を輝度値とし,Y軸を出現頻度としてgnuplotを用いて作成しなさい.&br; ***1.2. モノクローム画像 home, barbara, harbor に対して輝度の平均値,最大値,最小値,分散,電力,中央値および最頻値を測定しなさい.[#q8ab1d60] ***2. モノクローム画像 home, barbara, harbor に対して水平方向および垂直方向の自己相関係数を測定するプログラムを作成し,自己相関係数のグラフを作成しなさい.ただし,自己相関係数において,画像外に相当する画素を使用する際,0として扱う場合と定義できる範囲内で計算する場合の2種類について測定しなさい.また,両者の結果を比較し,考察を述べなさい.[#t8897705] ※画素間距離は0から20画素までとし,自己相関係数のグラフはX軸を画素間距離とし,Y軸を自己相関係数としてgnuplotを用いて作成すること.&br; ***3. モノクローム画像 home, barbara, harbor に対して水平方向および垂直方向の自己共分散を測定するプログラムを作成し,自己共分散のグラフを作成しなさい.ただし,自己共分散において,画像外に相当する画素を使用する際,0として扱う場合と定義できる範囲内で計算する場合の2種類について測定しなさい.また,自己共分散関数と自己相関関数との関係式を確認し,考察しなさい.[#a97ab1af] ※画素間距離は0から20画素までとし,自己共分散のグラフはX軸を画素間距離とし,Y軸を自己共分散としてgnuplotを用いて作成すること.&br; ***4. モノクローム画像 home, barbara, harbor に対して2次元自己相関係数を測定するプログラムを作成し,2次元自己相関係数のグラフを作成しなさい.ただし,2次元自己相関係数において,画像外に相当する画素を使用する際,0として扱う場合と定義できる範囲内で計算する場合の2種類について測定しなさい.[#ae8b87b8] ※画素間距離は8×8画素までとし,2次元自己相関係数のグラフはX軸を水平方向の画素間距離とし,Y軸を垂直方向の画素間距離とし,Z軸を2次元自己相関係数としてgnuplotを用いて作成しなさい.&br; | 画像名 | 画像サイズ(水平×垂直)| 階階調数 | | home.256 | 512×512 | 256 level (8bit/pel) | | barbara.256 | 512×480 | 256 level (8bit/pel) | | harbor_y.raw | 4096×3072 | 256 level (8bit/pel) | **課題2[#ebc0f9cb] カラー画像 home, barbara に対してR-G間およびG-B間の2次元相互相関係数を測定するプログラムを作成し,2次元相互相関係数のグラフを作成しなさい.ただし,2次元相互相関係数において,画像外に相当する画素を使用する際,0として扱う場合と定義できる範囲内で計算する場合の2種類について測定しなさい.&br; ※画素間距離は8×8画素までとし,2次元相互相関係数のグラフはX軸を水平方向の画素間距離とし,Y軸を垂直方向の画素間距離とし,Z軸を2次元相互相関係数としてgnuplotを用いて作成しなさい.&br; | 画像名 | 画像サイズ(水平×垂直)| 階調数 | |home.rgb | 512×512 | RGB各256 level (8bit/pel) | |barbara.rgb | 512×480 | RGB各256 level (8bit/pel) | **課題3 [#wd8e47ff] ***1. カラー画像 home に対してR,G,B成分をY,Cr,Cb信号に変換するプログラムを作成しなさい.[#u665623f] R,G,B → Y,Cr,Cb 変換&br; Y=0.299R+0.587G+0.114B&br; Cr=0.500R-0.419G-0.081B&br; Cb=-0.169R-0.331G+0.500B&br; Y,Cr,Cb → R,G,B 逆変換&br; R=Y+1.403Cr&br; G=Y-0.714Cr-0.344Cb&br; B=Y+1.773Cb&br; ***2. 上記の1で作成したY,Cr,Cb信号が正しい値であるかを確認するために,下記のことを実行しなさい.[#g724b2db] (1)Y,Cr,Cb信号をそれぞれモノクローム画像としてディスプレイに表示させなさい.ただし,信号値をディスプレイに表示する際,ダイナミックレンジが0から255となるように変換しなさい.&br; (2)Y,Cr,Cb信号をR,G,B成分に逆変換するプログラムを作成し,原画像と逆変換後の画像とのPSNRを測定しなさい.このとき,原画像または原画像に近い輝度値に戻るかどうか確認しなさい.&br; (3)原画像と逆変換後の画像が完全に一致しない場合もあるが,なぜそれが起こるのかを考察しなさい.また,原画像と逆変換後の画像が完全に一致しない場合,初めて不一致が発生した画素位置とその位置から4×4画素分のR,G,B成分値,Y,Cr,Cb信号値および逆変換後のR,G,B成分値を出力しなさい.&br; ***3. カラー画像 home に対してJPEG 2000の可逆コンポーネント変換を行うプログラムを作成しなさい.[#z32d317a] ***4. 上記の3で作成したY,Cr,Cb信号に対して,上記の2.(1),(2)と同様のことを実行し,上記1の場合と比較して考察しなさい.[#v64eac9f] JPEG 2000の可逆コンポーネント変換 R,G,B → Y,Cr,Cb 変換 :ページ下部の添付ファイル "ycrcb.bmp" 参照 Y,Cr,Cb → R,G,B 逆変換:ページ下部の添付ファイル "rgb.bmp" 参照 #br ---- #br *注意[#bed1b938] プログラミング課題は各自,独力で作成すること.課題の分からない箇所は他人またはM1に相談してもよいが,他人のプログラムをコピーしないこと.また,レポートはプログラミング演習のレポート形式に従って作成するため,以下の項目をすべて含むこと.ただし,サンプルソースに記述してあるデータ構造および関数の説明は不要である.&br; ・課題概要&br; ・ソースリスト&br; ・データ構造の説明&br; ・定数宣言 (マクロ,const)&br; ・構造体 (typedef,struct)&br; ・グローバル変数&br; ・関数&br; ・関数の説明&br; ・引数&br; ・戻り値&br; ・実行結果&br; ・考察&br; #br ---- #br *課題で使用する画像[#td738aca] 課題で使用する画像は共有サーバ prost にあるので,各自入手すること.&br; \\prost\共有フォルダ3\ICL\平成23年度\プログラミング課題\画像\&br; #br ---- #br *サンプルソース[#aeb697ac] サンプルソースは共有サーバ prost にあるので,自由に使用してよい.ただし,サンプルソースは課題1の前半までしかサポートしないので,それ以降の課題については各自でソースを作成すること.&br; \\prost\共有フォルダ3\ICL\平成23年度\プログラミング課題\サンプルソース\Sample-blank.zip&br; #br ---- #br *提出期限および提出先 [#o610d318] 課題ごとにレポートを作成し,レポートが完成したら,以下の提出先に提出してから担当の先輩にメールを出してレポートチェックを受けること.なお,レポートチェックを受けている間にも別の課題に取り組み,なるべく早めに課題を完了させること.レポートのファイル名は "[名前]_kadai[n]" とし,"doc" または "docx" 形式で提出すること.&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){最終期限 : 2011/05/02(月) 24:00 時間厳守}; #br ---- #br