名前空間 cv と関数の命名

新しく導入されたクラスおよび関数は, cv 名前空間内に存在します.よって,ユーザのコードからこの機能を利用するには,指定子 cv:: か,指示文 "using namespace cv;" を利用してください:

#include "cv.h"

...
cv::Mat H = cv::findHomography(points1, points2, cv::RANSAC, 5);
...

あるいは

#include "cv.h"

using namespace cv;

...
Mat H = findHomography(points1, points2, RANSAC, 5 );
...

現在あるいは将来の OpenCV において, external name が STL やその他のライブラリと衝突する可能性がありますが, その場合は,名前の衝突を解決するために名前空間指定子を明示してください:

Mat a(100, 100, CV_32F);
randu(a, Scalar::all(1), Scalar::all(std::rand()
cv::log(a, a);
a /= std::log(2.);

OpenCV 1.x のほとんどの C の関数や構造体に直接相当するものが,新しい C++ インタフェースにも存在します.通常,その名前は 接頭語の cvCv を削除し,最初の文字を小文字に変換したものになります(ただし,Canny や Sobel などの固有名は除きます).新しい形式に相当するものが存在しない場合,この章の最初で見たように,新しい構造体(クラス)に古い関数を適用できる可能性があります.

前のトピックへ

C++ チートシート

次のトピックへ

メモリ管理

このページ