Handson opencv!...
-
Upload
saya-katafuchi -
Category
Education
-
view
631 -
download
2
Transcript of Handson opencv!...
• Microsoft社が開発した統合開発環境(IDE).
• 現在の最新版はVisualStudio2015
• Windows用プログラム,スマートフォンアプリ,Webサービスなど様々なソフトウエアを開発することができます
を使ってみよう
https://reiji1020.gitbooks.io/play-opencv/content/usevs.html
ちゅうい
• 色が全然違う(白い)
• メニューバーの数が違う
• ウインドウの配置が違う
この点については私がVisual Studioの設定を弄っているだけなので
少し違いがあっても問題ありません
サンプルプログラムを動かしてみよう
https://reiji1020.gitbooks.io/play-opencv/content/sample-code.html
※ファイルパスの取得について
• 好きな画像のパスを追加してください• マイピクチャ・自分のお気に入りの写真・イラスト…
• ファイルパスの確認の仕方はhttps://reiji1020.gitbooks.io/play-opencv/content/30d5_30a1_30a4_30eb_30d1_30b9_306e_que_ren_306e_sh.html
プログラムの説明(1)
• OpenCVで提供されている関数は,関数名の頭に「cv」が付いています.• cv::imread(),cv::namedwindow(),cv::imshow(),cv::waitKey()
• プログラムの頭でopencv関連のhppファイルを読み込んでいますが、「今からOpenCVの関数使いますよ~」という合図だと思ってもらっていいです.
プログラムの説明(3)
• imread():画像ファイルをプログラムに読み込むための関数.先ほど作ったsrc_imgという画像を入れるための箱に,実際に画像を入れている
• namedwindow():実際に画像を表示するためのウィンドウを用意する
• imshow():imread()で読み込んだ画像を表示する関数.表示に使用するウィンドウはnamedwindow()で用意したものを使う.
• waitkey():指定のキーが入力されるまでプログラムを停止する.
エラーが出る場合は言ってください
1. 「msvcr100d.dllが見つからなかったため~…」→http://www.microsoft.com/ja-jp/download/details.aspx?id=5555
2. いきなり500個くらいエラーが出る→残念ですがVisual Studioをインストールし直してください
3. その他OpenCV周りのエラー→環境変数を確認しましょう
USBカメラで撮影をするプログラムを作ろう
https://reiji1020.gitbooks.io/play-opencv/content/video.html
include文とmain関数を書く
#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/opencv_lib.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
using namespace std;
int main(void){
// このなかにプログラムを書いていきます
}
USBカメラへのアクセス
main関数の中に
VideoCapture capture(0);
// カメラが使えない場合はプログラムを止めるif(!capture.isOpened())
return -1;
VideoCaptureクラス
• コンピューターで認識されているインカメラ,USBカメラにアクセスする為に必要な機能を定義している
• ここではVideoCaptureの構造を持つ箱として,captureを宣言しました
クラスに関する詳しい説明をドキュメントの下部に書いています.
是非参考にして下さい.
取得した映像をウィンドウに表示する(1)
Mat frame, src_video;
char windowName[] = "カメラでさるくマップを撮影してね!";
namedWindow(windowName, CV_WINDOW_AUTOSIZE);
while(WaitKey(1) == -1){
capture >> frame;
src_video = capture;
imshow(windowName,src_video);
}
destroyAllWindow();
return 0;
取得した映像をウィンドウに表示する
While分の中身では,
1. captureで取得したカメラの映像をframeに入力する
2. src_videoにframeの画像をコピーする
3. src_videoの画像を,windowNameという名前のウィンドウで表示をする
4. 1~3の処理を,キーボードのキーが押されるまで繰り返す
という処理を行っています