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

■260.OpenCV 2値化 Prev Top Next
関連ページ:

今回は2値化です。


---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, dst;

      // 8ビット,シングルチャンネルの入力画像のためグレースケールで読み込む
      src = cv::imread("D:/TEMP/MaverickProj/Image/OpenCV/22/Texture.png", cv::IMREAD_GRAYSCALE);

      cv::adaptiveThreshold(src,                              // 8ビット,シングルチャンネルの入力画像.
                            dst,
                            255,                              // 2値化画像を作成する際の0以外の色。ここでは[ 0, 255 ]で作成する.
                            cv::ADAPTIVE_THRESH_GAUSSIAN_C,   // 近傍の平均値を計算する際に使用するアルゴリズム.ADAPTIVE_THRESH_MEAN_C または ADAPTIVE_THRESH_GAUSSIAN_C.
                            cv::THRESH_BINARY,                // 閾値の種類. THRESH_BINARY または THRESH_BINARY_INV のどちらか.
                            7,                                // ピクセルの閾値を求めるために利用される近傍領域のサイズ.3, 5, 7, など.
                            8                                 // 平均または加重平均から引かれる定数.この値により maxValue の範囲が変わる.
                            );

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

      cv::namedWindow("2値化", 1);
      imshow("2値化", dst);

      cv::waitKey(0);

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

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

   return hr;
}


元画像

2値化

Prev Top Next
inserted by FC2 system