OpenCV 3.0.0-alphaで特徴点検出 c++11

このエントリーをはてなブックマークに追加
はてなブックマーク - OpenCV 3.0.0-alphaで特徴点検出 c++11
Facebook にシェア
[`google_buzz` not found]
[`yahoo` not found]
[`livedoor` not found]
[`friendfeed` not found]

前回SURFを無事有効化できたので,特徴点検出をしてみた.
c++11のコードを貼っておく.

#include <opencv2/opencv.hpp>

int main(){
        cv::VideoCapture cam(0);

        // 特徴量を選ぶ
        auto featureDetector = cv::FeatureDetector::create(SURF);
        //auto featureDetector = cv::FeatureDetector::create(ORB);
        //auto featureDetector = cv::FeatureDetector::create(BRISK);
        //auto featureDetector = cv::FeatureDetector::create(SIFT);
        std::cout << featureDetector->name() << std::endl;
//      auto descriptorExtractor = cv::DescriptorExtractor::create(SURF);

        while(true){
                cv::Mat img;
                cv::Mat gimg;
                cv::Mat result;
                std::vector<cv::KeyPoint> keypoints;
                std::vector<float> descriptors;

                cam >> img;
                if(img.empty()) break;

                // グレースケール化
                cv::cvtColor(img, gimg, cv::COLOR_BGR2GRAY);

                // 特徴点検出
                featureDetector->detect(gimg, keypoints, cv::Mat());
//              // 特徴量を抽出
//              descriptorExtractor->compute(gimg, keypoints, descriptors);

                // 特徴点の描画
                cv::drawKeypoints(img, keypoints, result);

                char key = cv::waitKey(1);
                cv::imshow(img, img);
                cv::imshow(gimg, gimg);
                cv::imshow(keypoints, result);
                if(key == 'q') break;
        }

        return 0;
}

コンパイルするときは,

g++ -std=c++11 -o detect sample.cpp `pkg-config --cflags --libs opencv`

“OpenCV 3.0.0-alphaで特徴点検出 c++11” への1件の返信

コメントを残す

メールアドレスが公開されることはありません。