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

■240.OpenCV グレースケール変換 Prev Top Next
関連ページ:

今回は画像ファイルを読み込んでグレースケールに変換して画像ファイルを書き出します。
参考にしたサイトは初めてのOpenCV開発 ― highguiモジュール【OpenCV 2.4.9】です。


---main.cpp---

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

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

cv::Mat createGrayScale(std::string readPath, std::string writePath)
{
   // グレースケールとして画像読み込む
   cv::Mat img = cv::imread(readPath, cv::IMREAD_GRAYSCALE);

   if (img.empty())
   {
      CV_Error(CV_StsObjectNotFound, "cv::imread() Failed");
   }

   // 画像をファイルに出力
   bool ret = cv::imwrite(writePath, img);
   if ( ret == false )
   {
      CV_Error(CV_StsError, "cv::imwrite() Failed");
   }

   // 出力した画像の cv::Mat を返す
   return cv::imread(writePath, cv::IMREAD_COLOR);
}

void createWindow(cv::Mat& img, std::string winname)
{
   // ウィンドウを生成する
   cv::namedWindow(winname, cv::WINDOW_AUTOSIZE);
   // ウィンドウに画像を表示する
   cv::imshow(winname, img);
   // キー入力待機
   cv::waitKey(0);
   // ウィンドウの破棄
   cv::destroyAllWindows();
}

int main(int argc, const char* argv[])
{
   int hr = -1;
   
   try
   {
      cv::Mat img = createGrayScale("D:/TEMP/MaverickProj/Image/OpenCV/02/Texture.png",
                                    "D:/TEMP/MaverickProj/Image/OpenCV/02/Texture2.png");

      createWindow(img, "gray scale");

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

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

   return hr;
}


Prev Top Next
inserted by FC2 system