今日は授業の課題に時間くったー。でははじめます。
すんなりと記録に意向。いやしかしめんどい。gray,r,g,b,h,s,vの平均分散の14パラメータやからなあ。しかも成果が上がる見込み薄。
そーや、この前教えてもらったvisual C++簡単デバッッグ。
行の横クリックして赤丸をつけて、デバッグ開始。んで赤丸んとこまで実行してくれて、そっからF10で1行ずつ進んでくれる。っで、どこでミスってるから一目瞭然!!
で、今Exelに大まかにまとめ終わったけど、流して見た感じ、やはりそんないい特徴量はない。ガックシ。やっぱ人間が見る画像と数値って簡単に対応とれんなあ、っと超根本的なところに行き着く。googleのCEOがコンピュータは大量の情報、データを扱って色々なことができますが、微妙な違いを見つけたり、愛や情熱といったものを表現するのは得意ではありません、ってなこと言ってたけど、まさにそう、痛感。方向性間違ってるかなあ。
2007年7月9日月曜日
三回目
さあ、いきますか。
ただの関数リファレンスのコピペの連続やなあ。
cvCalcHist は、一つ以上のシングルチャンネル画像からヒストグラムを計算する。 これだけでやってくれたらいいのに…。
cvGetMinMaxHistValueはヒストグラムのビンの最小値/最大値とそれらの場所を求める。 今回は最大値を入れてるね。
cvScaleは任意の線形変換によって配列の値を変換するようですね、ヒストグラム表示画像の高さを最大値に合わせてる。
そして、再び基本に返って、IPlimage構造体のメンバーについて。
nChannels 画像のチャンネル数。1だとグレイスケール、3だとカラー画像。
depth 画素のビットの深さ。IPL_DEPTH_8Uとか。
origin 画像の座標の始点。0が左上、1だと左下。Windowsでは1。cvCreateImageなどで作成した画像はデフォルトで0が入っているのでちゃんと指定する必要がある。
width 画像の幅(ピクセル)
height 画像の高さ(ピクセル)
imageData 画像データ配列の先頭ポインタ。
widthStep 画像の幅の大きさ。ピクセルではなくbytesなので、width*nChannelsになる。
cvSetは配列の各要素に与えられた値をセットする。第二引数valueが若干厄介、↓。
cvScalarは4個までの数を納めるコンテナ。cvScalarAllで引数の値を納める。
GetReal*Dはシングルチャンネルの配列の特定の要素を返す。
で、描画の座標指定は左上からはじめるから、一番下はhist_image->heightで、そっから値を引いて高さ。今回は cvRound(cvGetReal1D(hist->bins,i))。
横軸はi*bin_w。 bin_wはint型のイメージの幅をhist_size(今回は64に設定)で割ったもの。
という訳で、改造に着手。
まあこっからはプログラム自体は簡単。アルゴリズムに問題ありだった。平均の求め方がめちゃくちゃ。算数やな。こういうとこ学力が出る。
んで、各要素に分解するのにちょっと苦労。cvCvtPixToPlaneかcvsplitを使う。前やったな~、忘れてた。
そしてー、cvCvtColorで再び怒られ、自己解決できず結局隣の席先輩に助けを求める。
ヒストグラムは1チャネル画像からしか作れない。←至極当然。 だから、グレー画像やシングルチャネル画像でcalchistしないとだめ。でも、サンプルはいきなり読み込みでグレースケールに変えてたから、カラーからRGBとかを抜き出そうとした俺が躓くのも至極当然。不親切だ!いやまあ楽やからそうするやろうけどさ。
あとcreatehistの引数は超厄介だ。ポインタの理解が必須だ。いいサンプルあったから良かったけど、これも自己解決は到底無理だった。ちょっとずつ進んでいこう。とりあえず、やっと色々特徴量を調べる段階。明日は調査やね。
それではウェイトにGO!
ただの関数リファレンスのコピペの連続やなあ。
cvCalcHist は、一つ以上のシングルチャンネル画像からヒストグラムを計算する。 これだけでやってくれたらいいのに…。
cvGetMinMaxHistValueはヒストグラムのビンの最小値/最大値とそれらの場所を求める。 今回は最大値を入れてるね。
cvScaleは任意の線形変換によって配列の値を変換するようですね、ヒストグラム表示画像の高さを最大値に合わせてる。
そして、再び基本に返って、IPlimage構造体のメンバーについて。
nChannels 画像のチャンネル数。1だとグレイスケール、3だとカラー画像。
depth 画素のビットの深さ。IPL_DEPTH_8Uとか。
origin 画像の座標の始点。0が左上、1だと左下。Windowsでは1。cvCreateImageなどで作成した画像はデフォルトで0が入っているのでちゃんと指定する必要がある。
width 画像の幅(ピクセル)
height 画像の高さ(ピクセル)
imageData 画像データ配列の先頭ポインタ。
widthStep 画像の幅の大きさ。ピクセルではなくbytesなので、width*nChannelsになる。
cvSetは配列の各要素に与えられた値をセットする。第二引数valueが若干厄介、↓。
cvScalarは4個までの数を納めるコンテナ。cvScalarAllで引数の値を納める。
GetReal*Dはシングルチャンネルの配列の特定の要素を返す。
で、描画の座標指定は左上からはじめるから、一番下はhist_image->heightで、そっから値を引いて高さ。今回は cvRound(cvGetReal1D(hist->bins,i))。
横軸はi*bin_w。 bin_wはint型のイメージの幅をhist_size(今回は64に設定)で割ったもの。
という訳で、改造に着手。
まあこっからはプログラム自体は簡単。アルゴリズムに問題ありだった。平均の求め方がめちゃくちゃ。算数やな。こういうとこ学力が出る。
んで、各要素に分解するのにちょっと苦労。cvCvtPixToPlaneかcvsplitを使う。前やったな~、忘れてた。
そしてー、cvCvtColorで再び怒られ、自己解決できず結局隣の席先輩に助けを求める。
ヒストグラムは1チャネル画像からしか作れない。←至極当然。 だから、グレー画像やシングルチャネル画像でcalchistしないとだめ。でも、サンプルはいきなり読み込みでグレースケールに変えてたから、カラーからRGBとかを抜き出そうとした俺が躓くのも至極当然。不親切だ!いやまあ楽やからそうするやろうけどさ。
あとcreatehistの引数は超厄介だ。ポインタの理解が必須だ。いいサンプルあったから良かったけど、これも自己解決は到底無理だった。ちょっとずつ進んでいこう。とりあえず、やっと色々特徴量を調べる段階。明日は調査やね。
それではウェイトにGO!
2007年7月6日金曜日
大学院の願書提出などもあり、なかなか進まず。
ヒストグラムを作るのOPENCVむずい、めんどい。
とりあえず今日は腰据えて、サンプルhist.cを1行1行理解に努める。
uchar とはunsigned char 0~255のことらしい。たぶん死ぬほど初歩でしょう。
int. でdouble型になるらしい。サンプルでそうしてんだからきっと必要なんでしょう。
cvRound 浮動小数を整数にすんだって!!
cvLUTで配列をルックアップテーブルで変換すんだって!!
ルックアップテーブルって デジタル化された輝度階調のデータを任意の階調に補正するために使用される、入力と出力の対照表のこと だって!!
cvMATは多重行列の型だって!!サンプルじゃあcvCreateMatHeaderで1行256列のCV_8UC1 (符号無し 8 ビット 1 チャンネル)行列のヘッダが作られてた。ヘッダはおいおい理解していこう。
多重行列も配列も画像データのことだろ。勝手に判断。
んで cvSetData で、データをそのヘッダに割り当てる。上のほうで作られた配列をその行列にぶちこんだという感じ。
結局cvLUTで画像を具合良いように調節してるだけで、ヒストグラム云々は関係なしとケテーイ。
お腹が減ってきたのでこの辺で終了。
ここを乗り切れば特徴量はバンバン出せるな。
あと、院試の専門は、殊更弱いネットワークとアーキテクチャをあえて選択することにした。弱いがために勉強意欲はある。数学英語はやばい。特に英語。英文読まねば。
ヒストグラムを作るのOPENCVむずい、めんどい。
とりあえず今日は腰据えて、サンプルhist.cを1行1行理解に努める。
uchar とはunsigned char 0~255のことらしい。たぶん死ぬほど初歩でしょう。
int. でdouble型になるらしい。サンプルでそうしてんだからきっと必要なんでしょう。
cvRound 浮動小数を整数にすんだって!!
cvLUTで配列をルックアップテーブルで変換すんだって!!
ルックアップテーブルって デジタル化された輝度階調のデータを任意の階調に補正するために使用される、入力と出力の対照表のこと だって!!
cvMATは多重行列の型だって!!サンプルじゃあcvCreateMatHeaderで1行256列のCV_8UC1 (符号無し 8 ビット 1 チャンネル)行列のヘッダが作られてた。ヘッダはおいおい理解していこう。
多重行列も配列も画像データのことだろ。勝手に判断。
んで cvSetData で、データをそのヘッダに割り当てる。上のほうで作られた配列をその行列にぶちこんだという感じ。
結局cvLUTで画像を具合良いように調節してるだけで、ヒストグラム云々は関係なしとケテーイ。
お腹が減ってきたのでこの辺で終了。
ここを乗り切れば特徴量はバンバン出せるな。
あと、院試の専門は、殊更弱いネットワークとアーキテクチャをあえて選択することにした。弱いがために勉強意欲はある。数学英語はやばい。特に英語。英文読まねば。
登録:
コメント (Atom)