Upload
satoshi-fujimoto
View
204
Download
0
Embed Size (px)
DESCRIPTION
C++ / OpenCV の入門
Citation preview
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