cv::Sizeとcv::vectorとcv::Matとstring、stringstream、cv::imread、std::cout

2011年12月09日 13:22

So, I decided start from the beginning. For the first thing, I started checking definitions in OpenCV.

cv::Size    XSize(width, height)

cv::vectorについて。cvのは見つからなかったが、stdのはあった。stdについての説明をメモしておく。参考:https://ppp-lab.sakura.ne.jp/cpp/library/002.html

vector:動的配列。要素数は自動的に変更される。宣言時のサイズをあらかじめ確保してくれる。例えば、

vector array(1000);

などとすれば、初めにint型の要素1000個分のメモリを確保してくれる。reserve.()と一緒に使うことも。

vector array;

array.reserve(1000);

ともかく、この型の変数に要素を追加する場合は、専用の関数を使う必要がある。例えばpush_back()やinserte()。(C++初めて使ってわからない怪しい関数だったけど、なるほど、そういうことか)

push_back():動的配列の末尾に要素を追加。追加したい要素を引数にして呼び出すこと。

clear()やsize()などがあり、clear()は全要素を削除、size()は要素数を返す。詳しくは参考URL参照。

cv::Mat:OpenCV1.1やOpenCV2.xのC版におけるIplImage構造体に相当。次のような情報をもつ:実際のデータへのポインタ、画像なら高さ、幅、ビット深度(?)など。

cv::TermCriteria(type, max count, epsilon):反復アルゴリズムのための停止基準

タイプがCV_TERMCRIT_ITER | CV_TERMCRIT_EPS の場合は、反復回数が既定値に達するか、要求精度が達成された場合にアルゴリズムが停止。てことは、max_countが反復回数で、epsilonが要求精度かな?

string:stdにあるやつで、文字列を扱ったりするとき使う。

stringstream:https://99blues.dyndns.org/blog/2010/02/std_stringstream/が詳しそう。まあでも大体stringと同じかな。

cv::imread(filename, flag):ファイルから画像読み込み。flag=0の時はグレースケールで読み込み。

std::cout:コンソールに出力

どうも<<ってのはstd::coutと一書に使われるようだ。streamの方も同じかもしれない。std::coutの一般的な使用法として以下がある。

std::cout<<"What I want to print out";

std::endl:バッファに改行文字を出力して、バッファをフラッシュするらしい。まあ、改行ってことかな。