【OpenCV】背景差分をMat型を使ってやってみた

Mat型を使った背景差分のプログラムを勉強がてら作ってみた。
ちょっとMat型の変数の数が、無駄に多い気がする。
そんなソースで大丈夫か?

大丈夫だ問題ない(動作的意味で)

 


背景画像


USBカメラ画像


背景差分の結果

 

以下、ソースコード

#include <iostream>
#include "opencv2/opencv.hpp"

using namespace cv;
using namespace std;

int main () {
	VideoCapture cap(0);

	Mat frm,bg,dst,diff,gry;

	//閾値
	const char th = 20; 

	//背景画像を取得 スペースで背景画像取得
	while (waitKey(1) != 32) {
		cap >> frm;
		frm.copyTo(bg);
		imshow("bg", bg);
	}

	while(waitKey(1) != 27){
		cap >> frm;

		absdiff(frm,bg,diff);//背景画像との差分を取得
		cvtColor(diff,gry,CV_BGR2GRAY);//差分画像をグレイスケールに
		threshold(gry, dst, th, 255, THRESH_BINARY);//二値化画像化

		imshow("dst",dst);
		imshow("frm",frm);
	}
}

 

参考になりそうな過去ページ
【OpenCV】XcodeでOpenCVを用いたプロジェクトの構築
【OpenCV】USBカメラからキャプチャするサンプル

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です