Handson opencv!...
-
Upload
saya-katafuchi -
Category
Education
-
view
620 -
download
4
Transcript of Handson opencv!...
画像処理ライブラリを使って面白いプログラムを作ろう!
長崎県立大学 国際情報学部 情報メディア学科 吉村ゼミ
先週やったこと
• サンプルプログラムを動かす
今週やること
• サンプルプログラムについての解説
• インサイトカメラの映像を取得する
エラーが出る場合は言ってください
1. 「msvcr100d.dllが見つからなかったため~…」 →http://www.microsoft.com/ja-jp/download/details.aspx?id=5555
2. いきなり500個くらいエラーが出る →残念ですがVisual Studioをインストールし直してください
3. その他OpenCV周りのエラー →環境変数を確認しましょう
プログラムの説明(1)
• Cv::Matで画像を入れる変数を作ります
• コンピュータでは,画像は赤・緑・青の3つの光の強さで表現されます.
詳しくはマルチメディア演習を履修しよう!
プログラムの説明(2)
• imread():画像ファイルをプログラムに読み込むための関数.先ほど作ったsrc_imgという画像を入れるための箱に,実際に画像を入れている
• namedwindow():実際に画像を表示するためのウィンドウを用意する
• imshow():imread()で読み込んだ画像を表示する関数.表示に使用するウィンドウはnamedwindow()で用意したものを使う.
• waitkey():指定のキーが入力されるまでプログラムを停止する.
カメラで映像を撮影する プログラム
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;
取得した映像をウィンドウに表示する(2)
While分の中身では,
1. captureで取得したカメラの映像をframeに入力する
2. src_videoにframeの画像をコピーする
3. src_videoの画像を,windowNameという名前のウィンドウで表示をする
4. 1~3の処理を,キーボードのキーが押されるまで繰り返す
という処理を行っています
来年やること
1. 色空間ってなんだろう?
2. 映像から特定の色を抽出してみよう