Visual Studio 2013 Express Visual C++( アンマネージドコード ) OpenCV 3.1 CMake 3.4.3 opencv_contrib-master |
■293.OpenCV STARアルゴリズムによる特徴点の検出 | Prev Top Next | |
|
今回はSTARアルゴリズムを使用した特徴点の検出を行います。前回同様CMakeを使用してVisual Studioに拡張機能を追加する必要があります。 手順は、OpenCV SIFTを参照してください。
#include <iostream> #include <opencv2/opencv.hpp> #include <opencv2/xfeatures2d.hpp> #pragma comment( lib, "opencv_world310d.lib" ) #pragma comment( lib, "opencv_xfeatures2d310d.lib" ) int main(int argc, const char* argv[]) { int hr = -1; cv::Ptr<cv::xfeatures2d::StarDetector> starDetector; try { cv::Mat src, gray; std::vector<cv::KeyPoint> points; // 画像読み込み src = cv::imread("D:/TEMP/MaverickProj/Image/OpenCV/55/Texture.png", cv::IMREAD_COLOR); // ウィンドウを生成 cv::namedWindow("src", cv::WINDOW_AUTOSIZE); // ウィンドウを表示 cv::imshow("src", src); // グレースケールに変換 cv::cvtColor(src, gray, cv::COLOR_BGR2GRAY); // StarDetectorオブジェクト作成 starDetector = cv::xfeatures2d::StarDetector::create(); // StarDetector実行 starDetector->detect(src, points, cv::Mat()); // 特徴点描画 cv::drawKeypoints(src, points, src, cv::Scalar(0, 0, 255)); // ウィンドウを生成 cv::namedWindow("StarDetector", cv::WINDOW_AUTOSIZE); // ウィンドウを表示 cv::imshow("StarDetector", src); cv::waitKey(); hr = 0; } catch (cv::Exception ex) { std::cout << ex.err << std::endl; } starDetector.release(); // ウィンドウの破棄 cv::destroyAllWindows(); return hr; }元画像
特徴点検出