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

■256.OpenCV モルフォロジー変換 Prev Top Next
関連ページ:

今回はモルフォロジー変換です。画像を収縮したり膨張したり、それらの減算演算を行ったりしてさまざまな画像処理を行います。


---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/18/Texture.png", cv::IMREAD_COLOR);

      cv::morphologyEx(
         src,
         dest,
         cv::MORPH_OPEN,        // モルフォロジー演算の種類
         cv::Mat(),
         cv::Point( -1, -1 ),
         4,                     // 収縮と膨張が適用される回数.
         cv::BORDER_CONSTANT,
         cv::morphologyDefaultBorderValue()
         );
         
      std::cout << "Successed" << std::endl;

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

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

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

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

   return hr;
}


op = cv::MORPH_OPEN( 縮小して拡大する )
 → 

op = cv::MORPH_CLOSE( 拡大して縮小する。使いどころが思いつかない。 )
 → 

op = cv::MORPH_GRADIENT( 拡大 - 縮小 )
 → 

op = cv::MORPH_TOPHAT( 元画像 - MORPH_OPEN )
 → 

op = cv::MORPH_BLACKHAT( MORPH_CLOSE - 元画像。使いどころが思いつかない。 )
 → 

Prev Top Next
inserted by FC2 system