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

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

      cv::bilateralFilter(
         src,
         dest,
         10,      // フィルタリングで利用される,各ピクセル近傍領域の直径.
         100,     // 色空間におけるフィルタシグマ。この値を大きくすると全体的に均一に混ぜ合わされる。
         10,      // 座標空間におけるフィルタシグマ。d値に依存するようである。
         cv::BORDER_DEFAULT
         );

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

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

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

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

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

   return hr;
}


元画像

d = 10
sigmaColor = 500
sigmaSpace = 10

d = 10
sigmaColor = 500
sigmaSpace = 70

d = 70
sigmaColor = 500
sigmaSpace = 10

d = 10
sigmaColor = 100
sigmaSpace = 10

d = 70
sigmaColor = 500
sigmaSpace = 70

Prev Top Next
inserted by FC2 system