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

*プログラミング練習1 [#w751818f]

**課題1 [#w7563351]

***1. モノクローム画像 home, barbara, harborの輝度分布を測定するプログラムを作れ. [#g137291c]
***1.1. モノクローム画像 home, barbara, harbor の輝度分布を測定するプログラムを作成し,輝度分布のグラフを作成しなさい.[#g137291c]

※輝度分布のグラフは,gnuplotを用いて作成し,横軸を輝度値,縦軸を出現頻度とすること.&br;
※輝度分布のグラフはX軸を輝度値とし,Y軸を出現頻度としてgnuplotを用いて作成しなさい.&br;

また,画像 home, barbara, harborの平均輝度値,輝度の最大値,最小値,分散,電力,メディアン,モードも測定すること.&br;

***1.2. モノクローム画像 home, barbara, harbor に対して輝度の平均値,最大値,最小値,分散,電力,中央値および最頻値を測定しなさい.[#q8ab1d60]


***2. モノクローム画像 home, barbara, harborの水平方向および垂直方向の自己相関係数を測定するプログラムを作れ. [#t8897705]
***2. モノクローム画像 home, barbara, harbor に対して水平方向および垂直方向の自己相関係数を測定するプログラムを作成し,自己相関係数のグラフを作成しなさい.ただし,自己相関係数において,画像外に相当する画素を使用する際,0として扱う場合と定義できる範囲内で計算する場合の2種類について測定しなさい.また,両者の結果を比較し,考察を述べなさい.[#t8897705]

※グラフは,gnuplotを用いて作成し,横軸を画素間距離,縦軸を自己相関係数とすること.&br;
※画素間距離は0から20画素までとし,自己相関係数のグラフはX軸を画素間距離とし,Y軸を自己相関係数としてgnuplotを用いて作成すること.&br;

画像の外側に相当する画素を使う場合には0として扱う場合と,定義できる範囲内で計算する場合とがある.&br;

両者を測定し,結果について考察せよ.なお,画素間距離は20画素までとすること.&br;
***3. モノクローム画像 home, barbara, harbor に対して水平方向および垂直方向の自己共分散を測定するプログラムを作成し,自己共分散のグラフを作成しなさい.ただし,自己共分散において,画像外に相当する画素を使用する際,0として扱う場合と定義できる範囲内で計算する場合の2種類について測定しなさい.また,自己共分散関数と自己相関関数との関係式を確認し,考察しなさい.[#a97ab1af]

※画素間距離は0から20画素までとし,自己共分散のグラフはX軸を画素間距離とし,Y軸を自己共分散としてgnuplotを用いて作成すること.&br;


***3. モノクローム画像 home, barbara, harborの水平方向および垂直方向の共分散を測定せよ。 [#a97ab1af]
***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) |

***4. モノクローム画像 home, barbara, harborの二次元の自己相関係数を測定するプログラムを作れ. [#ae8b87b8]

※データが何を表しているかが分かるように,各自工夫してグラフ化すること.画素間距離は8×8画素までとすること.

**課題2[#ebc0f9cb]

カラー画像 home, barbara に対してR-G間およびG-B間の2次元相互相関係数を測定するプログラムを作成し,2次元相互相関係数のグラフを作成しなさい.ただし,2次元相互相関係数において,画像外に相当する画素を使用する際,0として扱う場合と定義できる範囲内で計算する場合の2種類について測定しなさい.&br;

| 画像名 | 画像サイズ(水平x垂直)| 階階調数 |
| home.256 | 512×512 | 256 level (8bit/pel) |
| barbara.256 | 512 x 480 | 256 level (8bit/pel) |
| harbor_y.raw | 4096 x 3072 | 256 level (8bit/pel) |
※画素間距離は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) |

**課題2 [#ebc0f9cb]

**課題3 [#wd8e47ff]

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

***1. カラー画像 home, barbaraのR-G間,G-B間の相互相関係数を測定するプログラムを作れ. [#yd21e53c]
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次元で画素間距離は8×8画素までとすること.

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

(1)Y,Cr,Cb信号をそれぞれモノクローム画像としてディスプレイに表示させなさい.ただし,信号値をディスプレイに表示する際,ダイナミックレンジが0から255となるように変換しなさい.&br;

| 画像名 | 画像サイズ(水平x垂直)| 階調数 |
|home.rgb | 512 x 512 | RGB各256 level (8bit/pel) |
|barbara.rgb | 512 x 480 | RGB各256 level (8bit/pel) |
(2)Y,Cr,Cb信号をR,G,B成分に逆変換するプログラムを作成し,原画像と逆変換後の画像とのPSNRを測定しなさい.このとき,原画像または原画像に近い輝度値に戻るかどうか確認しなさい.&br;

(3)原画像と逆変換後の画像が完全に一致しない場合もあるが,なぜそれが起こるのかを考察しなさい.また,原画像と逆変換後の画像が完全に一致しない場合,初めて不一致が発生した画素位置とその位置から4×4画素分のR,G,B成分値,Y,Cr,Cb信号値および逆変換後のR,G,B成分値を出力しなさい.&br;


**課題3 [#wd8e47ff]
***3. カラー画像 home に対してJPEG 2000の可逆コンポーネント変換を行うプログラムを作成しなさい.[#z32d317a]


***4. 上記の3で作成したY,Cr,Cb信号に対して,上記の2.(1),(2)と同様のことを実行し,上記1の場合と比較して考察しなさい.[#v64eac9f]

***1.  512×512画素、R,G,B各8ビット/画素の画像データからY,Cr,Cb信号を作成する。 [#u665623f]
JPEG 2000の可逆コンポーネント変換

R,G,B → Y,Cr,Cb 変換  :ページ下部の添付ファイル "ycrcb.bmp" 参照

Y,Cr,Cb → R,G,B 逆変換:ページ下部の添付ファイル "rgb.bmp" 参照

***2. 1.で作成したものに間違いがないかを確認するために、下記のことを行う。 [#g724b2db]
#br
----
#br

(1)Y,Cr,Cbそれぞれを白黒画像としてディスプレイに表示する。

※ダイナミックレンジの最小値を黒、最大値を白で表示する。&br;
*注意[#bed1b938]

(2)Y,Cr,CbからR,G,Bに逆変換するプログラムを作成し、原画像データにまたはそれに近い値に戻るかどうか確認する。&br;
プログラミング課題は各自,独力で作成すること.課題の分からない箇所は他人またはM1に相談してもよいが,他人のプログラムをコピーしないこと.また,レポートはプログラミング演習のレポート形式に従って作成するため,以下の項目をすべて含むこと.ただし,サンプルソースに記述してあるデータ構造および関数の説明は不要である.&br;

※原画像と逆変換後の画像とのSN比を測定すること。
・課題概要&br;
・ソースリスト&br;
・データ構造の説明&br;
 ・定数宣言 (マクロ,const)&br;
 ・構造体 (typedef,struct)&br;
 ・グローバル変数&br;
・関数&br;
 ・関数の説明&br;
 ・引数&br;
 ・戻り値&br;
・実行結果&br;
・考察&br;

(3)完全に元に戻らない場合もあるが、なぜそれが起こるのかを検討する。
#br
----
#br

※このとき、それが起こった画素位置、そのときのR,G,B,Y,Cr.CbR',G',B'の値を、最初に起こった画素位置から4×4画素分プリントアウトする。

*課題で使用する画像[#td738aca]

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

***3. 512×512画素、R,G,B各8ビット/画素の画像データに対して、JPEG2000で用いられている可逆コンポーネント変換を行う。 [#z32d317a]
\\prost\共有フォルダ3\ICL\平成23年度\プログラミング課題\画像\&br;

#br
----
#br


***4. 3.で作成した画像について、2(1)(2)と同様の事を調べ、1と比較する。 [#v64eac9f]
*サンプルソース[#aeb697ac]

サンプルソースは共有サーバ prost にあるので,自由に使用してよい.ただし,サンプルソースは課題1の前半までしかサポートしないので,それ以降の課題については各自でソースを作成すること.&br;

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

JPEG2000で用いられている可逆コンポーネント変換

R,G,B→Y,Cr,Cbへの変換:ページ下部、添付ファイルycrcb.bmp参照

Y,Cr,Cb→R,G,Bへの変換:ページ下部、添付ファイルrgb.bmp参照

#br
----
#br

*注意 [#bed1b938]

各自、独力で作成すること。わからないところは相談してもよいが、他人のプログラムをコピーしないこと。
*提出期限および提出先 [#o610d318]

サンプルプログラム
//http://160.12.164.67/pukiwiki/siryou/hist.c
//http://160.12.164.67/pukiwiki/siryou/英文訳.doc
課題ごとにレポートを作成し,レポートが完成したら,以下の提出先に提出してから担当の先輩にメールを出してレポートチェックを受けること.なお,レポートチェックを受けている間にも別の課題に取り組み,なるべく早めに課題を完了させること.レポートのファイル名は "[名前]_kadai[n]" とし,"doc" または "docx" 形式で提出すること.&br;

&color(red){期限 2010年4月30日(金)17:00 時間厳守};
※n : 課題番号&br;

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

¥¥Prost¥共有フォルダ3¥ICL¥平成22年度¥B4ゼミ¥レポート提出箱¥課題1
&color(red){最終提出期限 : 2011/05/02(月) 24:00 時間厳守};

上記ディレクトリの中に誰のものであるか分かるようなファイル名をつけて&color(red){レポート(doc or docx形式)};を提出すること.

#br
----
#br


*参考図書 [#scffe97a]

長尾 真 監訳 : ディジタル画像処理

吹抜 敬彦 著 : 画像のディジタル信号処理

参考資料

http://160.12.164.67/pukiwiki/image2/p1-1.png
http://160.12.164.67/pukiwiki/image2/p1-2.png
http://160.12.164.67/pukiwiki/image2/p1-3.png
http://160.12.164.67/pukiwiki/image2/p1-4.png
http://160.12.164.67/pukiwiki/image2/p1-5.png
http://160.12.164.67/pukiwiki/image2/p1-6.png


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