C++ / OpenCV 入門
熊本大学 胡( ITS )研究室
D1  藤本賢志
2014/08/26
C から C++ へ
最近では C++ のサンプルを見ることが多く
なったので、みんなで C++ に入門しま
しょう
• C++ のメリット
– オブジェクト指向
– 記述がとても簡単になる
– 動的メモリの割り当てが自動( std::vector な
ど)
– 留学生のほとんどが C++ を学んでいた
プログラミング環境
• VC++ Express 版で十分
– Win7 なら Visual C++   2010 Express
– Win8 以降の PC なら Visual Studio 2013
– 学生なら DreamSpark を使って購入しましょ
う
• OpenCV   2.4.9 (2014 年 8 月 26 日最新 )
– いまは CMake する必要がなくなって超簡単
画像の読み込み
• 画像変数
– cv::Mat image;
• 画像サイズの表示
– std::cout << "size: " << image.size().height << " , " <<
image.size().width << std::endl;
• 画像の読み込み
– image = cv::imread("img.jpg");
– if(!image.data){
//no image
}
画像処理
• 画像反転
– cv::Mat result;
– cv::flip(image, result, 1); //pos for horizontal
//0 for vertical
//neg for both
• 画像の表示
– cv::namedWindow("Out");
– cv::imshow("Out", result);
• matlab コードに似てますね
• 入力待ち
– cv::waitKey(0);
画像の保存、コピー
• 画像の保存
– cv::imwrite("Out.bmp", result);
• cv:: の省略ができる(プログラム上部に記述)
– using namespace cv;
• 画像のコピー
– cv::Mat image2, image3;
– image2 = result; // 同データになってしまう
– result.copyTo(image3); // 新しくコピー
関数化
• 画像を作成する関数
– cv::Mat func() {
//320×240(w*h), 8bit, グレーで初期化
cv::Mat image(240, 320, CV_8U,
cv::Scalar(100));
return image;
}
• Main から関数を呼ぶ
– cv::Mat gray = func();
画像の色変換
• RGB 画像をグレー画像に変える
– cv::Mat image(240, 320, CV_8UC3);
– cv::Mat gray(240, 320, CV_8UC1);
– cv::cvtColor(image, gray, CV_RGB2GRAY);
• CV_BGR2GRAY   
• CV_GRAY2RGB   ・・・ 3 チャンネル
• CV_GRAY2BGRA  ・・・ 4 チャンネル
参考文献
• VC++ Express
– http://www.visualstudio.com/downloads/downl
oad-visual-studio-vs
• OpenCV
– http://opencv.org/
• OpenCV2 Computer Vision Application
Programming Cookbook
– http://amzn.to/1pjWFe3
参考文献
• VC++ Express
– http://www.visualstudio.com/downloads/downl
oad-visual-studio-vs
• OpenCV
– http://opencv.org/
• OpenCV2 Computer Vision Application
Programming Cookbook
– http://amzn.to/1pjWFe3

Cpp cv01

  • 1.
    C++ / OpenCV入門 熊本大学 胡( ITS )研究室 D1  藤本賢志 2014/08/26
  • 2.
    C から C++へ 最近では C++ のサンプルを見ることが多く なったので、みんなで C++ に入門しま しょう • C++ のメリット – オブジェクト指向 – 記述がとても簡単になる – 動的メモリの割り当てが自動( std::vector な ど) – 留学生のほとんどが C++ を学んでいた
  • 3.
    プログラミング環境 • VC++ Express版で十分 – Win7 なら Visual C++   2010 Express – Win8 以降の PC なら Visual Studio 2013 – 学生なら DreamSpark を使って購入しましょ う • OpenCV   2.4.9 (2014 年 8 月 26 日最新 ) – いまは CMake する必要がなくなって超簡単
  • 4.
    画像の読み込み • 画像変数 – cv::Matimage; • 画像サイズの表示 – std::cout << "size: " << image.size().height << " , " << image.size().width << std::endl; • 画像の読み込み – image = cv::imread("img.jpg"); – if(!image.data){ //no image }
  • 5.
    画像処理 • 画像反転 – cv::Matresult; – cv::flip(image, result, 1); //pos for horizontal //0 for vertical //neg for both • 画像の表示 – cv::namedWindow("Out"); – cv::imshow("Out", result); • matlab コードに似てますね • 入力待ち – cv::waitKey(0);
  • 6.
    画像の保存、コピー • 画像の保存 – cv::imwrite("Out.bmp",result); • cv:: の省略ができる(プログラム上部に記述) – using namespace cv; • 画像のコピー – cv::Mat image2, image3; – image2 = result; // 同データになってしまう – result.copyTo(image3); // 新しくコピー
  • 7.
    関数化 • 画像を作成する関数 – cv::Matfunc() { //320×240(w*h), 8bit, グレーで初期化 cv::Mat image(240, 320, CV_8U, cv::Scalar(100)); return image; } • Main から関数を呼ぶ – cv::Mat gray = func();
  • 8.
    画像の色変換 • RGB 画像をグレー画像に変える –cv::Mat image(240, 320, CV_8UC3); – cv::Mat gray(240, 320, CV_8UC1); – cv::cvtColor(image, gray, CV_RGB2GRAY); • CV_BGR2GRAY    • CV_GRAY2RGB   ・・・ 3 チャンネル • CV_GRAY2BGRA  ・・・ 4 チャンネル
  • 9.
    参考文献 • VC++ Express –http://www.visualstudio.com/downloads/downl oad-visual-studio-vs • OpenCV – http://opencv.org/ • OpenCV2 Computer Vision Application Programming Cookbook – http://amzn.to/1pjWFe3
  • 10.
    参考文献 • VC++ Express –http://www.visualstudio.com/downloads/downl oad-visual-studio-vs • OpenCV – http://opencv.org/ • OpenCV2 Computer Vision Application Programming Cookbook – http://amzn.to/1pjWFe3