この連休中にちょっとOpenCV 2.0で遊んでいました。
ライブラリの規模がかなり大きくなったのでソースを読むのも大変です;
IplImage や CvMat は 新しいC++インタフェースでは cv::Mat に取って代わります。
(1.1preで追加されたWImageクラスの立場は? 関連:cv::WImage ? OpenCV 1.1)
また、メモリ管理が賢くなっているので、後始末は各クラスのデストラクタに任せておきましょう。
boostのshared_ptrと同様のスマートポインタ(cv::Ptr)も用意されていて、いろいろ便利になっているようです。
C++インタフェースを中心にこれから少しずつ調べていこうと思います。
[cpp]
// カメラから画像をキャプチャ
#include
#include
int main(int argc, char **argv) {
using namespace cv;
VideoCapture cap(0); // VideoCapture(int device)
if(!cap.isOpened()) return -1;
Mat edges;
char code;
namedWindow(“OpenCV 2.0 Capture Test”, CV_WINDOW_AUTOSIZE);
for(;;) {
Mat frame;
cap >> frame; // virtual VideoCapture& operator >> (Mat& image)
cvtColor(frame ,edges, CV_BGR2GRAY);
GaussianBlur(edges, edges, Size(7, 7), 1.5, 1.5);
Canny(edges, edges, 0, 30, 3);
imshow(“OpenCV 2.0 Capture Test”, edges);
code = waitKey(30);
if(code == ‘q’) break;
if(code == ‘s’) imwrite(“test.jpg”, edges);
}
return 0;
}
[/cpp]