Visual Studio 2013 Express
 Visual C++( アンマネージドコード )
 OpenCV 3.1

■253.OpenCV Scharr オペレータ Prev Top Next
関連ページ:

今回はScharr オペレータです。輪郭抽出を行います。


---main.cpp---

#include <iostream>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>

#pragma comment( lib, "opencv_world300d.lib" )

int main(int argc, const char* argv[])
{
   int hr = -1;
   
   try
   {
      cv::Mat src, dest;

      // 輪郭線を白色にするためグレースケールにする
      src = cv::imread("D:/TEMP/MaverickProj/Image/OpenCV/15/Texture.png", cv::IMREAD_GRAYSCALE);

      // 微分の次数は x, y どちらか一方のみ指定できる?
      cv::Scharr(
         src,
         dest,
         -1,        // 出力画像のビット深度.
         1.3,       // xに関する微分の次数.
         0.0,       // yに関する微分の次数.( x 方向のみ出力 )
         0.1,       // 求められた微分値に対するスケールファクタ
         0,         // dst に格納する前に,結果に足されるオプション値.
         cv::BORDER_DEFAULT
         );

      std::cout << "Successed" << std::endl;

      // 元画像のウィンドウ表示
      cv::namedWindow("Source", 1);
      imshow("Source", src);

      // フィルタ適用後の画像のウィンドウ表示
      cv::namedWindow("Scharr", 1);
      imshow("Scharr", dest);

      cv::waitKey(0);
      
      hr = 0;
   }
   catch (cv::Exception ex)
   {
      std::cout << ex.err << std::endl;
   }

   // ウィンドウの破棄
   cv::destroyAllWindows();

   return hr;
}


元画像

xorder = 1.3
yorder = 0.0
ksize = 0.1

Prev Top Next
inserted by FC2 system