handson opencv!...
TRANSCRIPT
![Page 1: Handson opencv! 画像処理ライブラリを使って面白いプログラムを作ろう!その3](https://reader034.vdocuments.mx/reader034/viewer/2022042611/58ed336c1a28abf1438b45a9/html5/thumbnails/1.jpg)
画像処理ライブラリを使って面白いプログラムを作ろう!
長崎県立大学 国際情報学部 情報メディア学科 吉村ゼミ
![Page 2: Handson opencv! 画像処理ライブラリを使って面白いプログラムを作ろう!その3](https://reader034.vdocuments.mx/reader034/viewer/2022042611/58ed336c1a28abf1438b45a9/html5/thumbnails/2.jpg)
先週やったこと
• サンプルプログラムを動かす
![Page 3: Handson opencv! 画像処理ライブラリを使って面白いプログラムを作ろう!その3](https://reader034.vdocuments.mx/reader034/viewer/2022042611/58ed336c1a28abf1438b45a9/html5/thumbnails/3.jpg)
今週やること
• サンプルプログラムについての解説
• インサイトカメラの映像を取得する
![Page 4: Handson opencv! 画像処理ライブラリを使って面白いプログラムを作ろう!その3](https://reader034.vdocuments.mx/reader034/viewer/2022042611/58ed336c1a28abf1438b45a9/html5/thumbnails/4.jpg)
エラーが出る場合は言ってください
1. 「msvcr100d.dllが見つからなかったため~…」 →http://www.microsoft.com/ja-jp/download/details.aspx?id=5555
2. いきなり500個くらいエラーが出る →残念ですがVisual Studioをインストールし直してください
3. その他OpenCV周りのエラー →環境変数を確認しましょう
![Page 5: Handson opencv! 画像処理ライブラリを使って面白いプログラムを作ろう!その3](https://reader034.vdocuments.mx/reader034/viewer/2022042611/58ed336c1a28abf1438b45a9/html5/thumbnails/5.jpg)
プログラムの説明(1)
• Cv::Matで画像を入れる変数を作ります
• コンピュータでは,画像は赤・緑・青の3つの光の強さで表現されます.
詳しくはマルチメディア演習を履修しよう!
![Page 6: Handson opencv! 画像処理ライブラリを使って面白いプログラムを作ろう!その3](https://reader034.vdocuments.mx/reader034/viewer/2022042611/58ed336c1a28abf1438b45a9/html5/thumbnails/6.jpg)
プログラムの説明(2)
• imread():画像ファイルをプログラムに読み込むための関数.先ほど作ったsrc_imgという画像を入れるための箱に,実際に画像を入れている
• namedwindow():実際に画像を表示するためのウィンドウを用意する
• imshow():imread()で読み込んだ画像を表示する関数.表示に使用するウィンドウはnamedwindow()で用意したものを使う.
• waitkey():指定のキーが入力されるまでプログラムを停止する.
![Page 7: Handson opencv! 画像処理ライブラリを使って面白いプログラムを作ろう!その3](https://reader034.vdocuments.mx/reader034/viewer/2022042611/58ed336c1a28abf1438b45a9/html5/thumbnails/7.jpg)
カメラで映像を撮影する プログラム
![Page 8: Handson opencv! 画像処理ライブラリを使って面白いプログラムを作ろう!その3](https://reader034.vdocuments.mx/reader034/viewer/2022042611/58ed336c1a28abf1438b45a9/html5/thumbnails/8.jpg)
USBカメラで撮影をするプログラムを作ろう
https://reiji1020.gitbooks.io/play-opencv/content/video.html
![Page 9: Handson opencv! 画像処理ライブラリを使って面白いプログラムを作ろう!その3](https://reader034.vdocuments.mx/reader034/viewer/2022042611/58ed336c1a28abf1438b45a9/html5/thumbnails/9.jpg)
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){
// このなかにプログラムを書いていきます
}
![Page 10: Handson opencv! 画像処理ライブラリを使って面白いプログラムを作ろう!その3](https://reader034.vdocuments.mx/reader034/viewer/2022042611/58ed336c1a28abf1438b45a9/html5/thumbnails/10.jpg)
USBカメラへのアクセス
main関数の中に
VideoCapture capture(0);
// カメラが使えない場合はプログラムを止めるif(!capture.isOpened())
return -1;
![Page 11: Handson opencv! 画像処理ライブラリを使って面白いプログラムを作ろう!その3](https://reader034.vdocuments.mx/reader034/viewer/2022042611/58ed336c1a28abf1438b45a9/html5/thumbnails/11.jpg)
VideoCaptureクラス
• コンピューターで認識されているインカメラ,USBカメラにアクセスする為に必要な機能を定義している
• ここではVideoCaptureの構造を持つ箱として,captureを宣言しました
クラスに関する詳しい説明をドキュメントの下部に書いています.
是非参考にして下さい.
![Page 12: Handson opencv! 画像処理ライブラリを使って面白いプログラムを作ろう!その3](https://reader034.vdocuments.mx/reader034/viewer/2022042611/58ed336c1a28abf1438b45a9/html5/thumbnails/12.jpg)
取得した映像をウィンドウに表示する(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;
![Page 13: Handson opencv! 画像処理ライブラリを使って面白いプログラムを作ろう!その3](https://reader034.vdocuments.mx/reader034/viewer/2022042611/58ed336c1a28abf1438b45a9/html5/thumbnails/13.jpg)
取得した映像をウィンドウに表示する(2)
While分の中身では,
1. captureで取得したカメラの映像をframeに入力する
2. src_videoにframeの画像をコピーする
3. src_videoの画像を,windowNameという名前のウィンドウで表示をする
4. 1~3の処理を,キーボードのキーが押されるまで繰り返す
という処理を行っています
![Page 14: Handson opencv! 画像処理ライブラリを使って面白いプログラムを作ろう!その3](https://reader034.vdocuments.mx/reader034/viewer/2022042611/58ed336c1a28abf1438b45a9/html5/thumbnails/14.jpg)
来年やること
1. 色空間ってなんだろう?
2. 映像から特定の色を抽出してみよう