画像情報処理論及び演習
I
第三回レポート「領域抽出:大津法・ラベリング・細線化」
名前:
大妻女子大学社会情報学部情報デザイン専攻 学籍番号:
画像情報処理論及び演習
I
Q1:「領域抽出とは
何 か 説 明 せ よ 」(4点)
Q2:「領域抽出がな
ぜ重要か具体的な 例を用いて説明せ よ」(10点)
Q3:「代表的な領域
抽出法を3つ挙げ そ れ ぞ れ 説 明 せ よ」(6点)
Q4:「クラス内分散
及びクラス間分散 とは何か、それぞ れ説明せよ」(6点)
.
Q5:「大津の二値化
法とは何か「分離 度」を用いて説明 せよ」(10点)
Q5のヒント: 講義スラ イドLec04.pdfの式を 使う.
Q6:「ラべリングと
は何か説明せよ」(4点)
Q7:「細線化とは何
か説明せよ」(5点)
Q8:「以下の5つの
場合に、連結数を8 連結 で計算せよ 、
ただし白を1、黒 を0とする事」
(5点)
Q8のヒント: 講義スラ イドLec05.pdfのN8を 計算.
Q9:「閾値を与えて
カラー画像を二値 化するプログラム を作成し、閾値が64、96、 128、160
、
192
の 場 合 の 実 行結果画像を載せ よ」- プロ グラム ソー ス フ ァ イ ル 名: Report03_Q9.cxx
- Report03_Q9.cxx も提出する事 .
- コンパイル: g++
Report03_Q9.cxx –lm
- 実行: ./a.out 入力 ファイル名 出力 ファイル名 閾値 - 上記の実行で入
力ppm画像ファ イルに対して出 力pgm画像を出 力する.
- 入力画像を載せ る事、図にはキ ャプションを付 ける事.
(25点)
Q9 の ヒ ン
ト:Ex01/ex01_2.cxxに ある様に、ppm画像 を開いてR 、 G 、 B の 値を足して3で割っ た数が閾値未満なら 出力にゼロ、以上な ら255を入れる.
double tmp = (R->img[i]
[j]+G->img[i][j]+B-
>img[i][j]) /3;
if(tmp<threshold){
out->img[i][j] =0;
}else{
out->img[i][j]=255.0;
}
pgm画 像 の セ ー ブ は Ex01/ex01.cxxを参照.
threshold は
#include<stdlib.h>, atoi() 又 はatof()を 使 っ て argv[]から入力.
Q10
: 「Ex04.zip
内 のRun_ex04_2.sh
を(各自のオリジナ ルの画像で)実行し た結果を載せて、それぞれの結果に ついて考察を述べ よ」
- 入力画像を載せ る事. キャプシ ョンを付ける事.
- 論点を整理して 何についての考 察なのかを書く 事:例えば引数 をいろいろ変え てみてその結果 に関して論じた り、引数は同じ でも異なる画像 に対してのラべ リングや細線化 の結果について 論じたり.
(25点)
Q10のヒント: 風景画像、
人物・動物画像、文 字画像とかで二値化、
ラべリング、細線化 の結果の違いを書く など…、オリジナル な論点・考察でもよ し.
Extra 1:「クラス内
分散とクラス間分画像情報処理論及び演習
I
散を足すと全体の 分散になる事を式 を用いて証明せよ
(25
点)、また分離 度の計算がなぜク ラス間分散を計算 するだけでよいの かを式を用いて説 明せよ(25点)」- 変 数は 定義 を 与 える事 .
(50点)
Extra 1 の ヒ ン ト : Lec04.pdfを見れば出 来る. 前半はクラス 内分散とクラス間分 散、及び全体の分散 をそれぞれ式で表し て (全体の分散-(クラ ス内分散+クラス間 分散))=0になる事を 示す.
Extra 2:「閾値を与
えて二値化した結 果 を 用 い てRun_ex04_1.sh (
又 はRun_ex04_2.sh)
と同様な結果を出 力するプログラム を作成し、実行結 果の画像を載せよ(
閾 値 が64,128,192
のとき)」- プログラムのソ ースフ ァイル も 提出す る 事、フ ァ イル 名をレ ポ ート に 明記す る 事.
- プログラムのソ ースフ ァイル は 各 処 理 毎 に 複 数 になってもよい が 、フ ァイル 名 を レポ ートに 明 記する事. - 入力画像を載せ
る事、図にはキ ャプションを付 ける事.
(50点)
Extra 2 の ヒ ン ト : ex04_2.cxx,
ex04_3.cxx, ex04_4.cxx,
ex04_5.cxx の 閾 値 (threshold)を大津法で 計算している部分を コメントアウトして ex04_0.cxxと 同 じ 様 にargv[]を使って引数 で渡すだけ.
Extra 3:「クラス間
分散を計算して大 津の方法をプログ ラ ム し(otsu_Chi.h
を完成させる)実行 結果を載せよ」- プログラムのソ ースファイル(全 部)も提出する事、
フ ァイル 名を レ ポ ート に 明記す る事.
- 入力画像を載せ る事、図にはキ ャプションを付 ける事.
(50点)
Extra 3のヒント: 講義 スライドLec04.pdfの アルゴリズム(page 5) を使って自分で大津 の方法をプログラム し て み て く だ さ い.otsu_Chi.hを 書 き 換 え てex04_1.cxxで
include す る .
otsu_Chi.h中 のdouble getSmax(int thr,int hsize,int *hist){ } 内 でクラス間分散の分 子 を 計 算. thr閾 値 、 hsizeヒストグラムの サイズ、*hist、ヒス トグラム配列(hist[0]
…hist[hsize-1]). 戻 り 値でクラス間分散の 分子を返す.
注意点:画素数の掛け 算は大きな値なので 閾値thrで分けられた 二つのクラスの画素 数はlong longを使う 事.
また、途中計算の変数 はdoubleを使う事