Visual Studio 2013 Express
 Visual C++( アンマネージドコード )
 OpenCV 3.1
 CMake 3.4.3
 opencv_contrib-master

■293.OpenCV STARアルゴリズムによる特徴点の検出 Prev Top Next
関連ページ:OpenCV SIFT

今回はSTARアルゴリズムを使用した特徴点の検出を行います。前回同様CMakeを使用してVisual Studioに拡張機能を追加する必要があります。 手順は、OpenCV SIFTを参照してください。


---main.cpp---

#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;
}

元画像

特徴点検出


Prev Top Next
inserted by FC2 system