Try Hand detect use Hand.Cascade.1.xm

tinotina
記事: 7
登録日時: 8年前

Try Hand detect use Hand.Cascade.1.xm

投稿記事 by tinotina » 8年前

OPENCV3.1での手の認識実験

Visual Studio 2015 C++
Nuget OPENCV3.1

Hand.Cascade.1.xm
http://nmarkou.blogspot.jp/2012_02_01_archive.html

CODE:

#include 
#include 
#include 
#include 

using namespace std;
using namespace cv;

int main(int argc, char *argv[])
{

	//cv::VideoCapture cap(-1);
	cv::VideoCapture cap(0);

	cap.set(CV_CAP_PROP_FRAME_WIDTH, 640);
	cap.set(CV_CAP_PROP_FRAME_HEIGHT, 480);

	if (!cap.isOpened())
	{
		printf("%s\n", "CameraOpenErr");
		cv::waitKey(100);
		return -1;
	};

	std::string cascadeName = "C:/.../Hand.Cascade.1.xml";

	cv::CascadeClassifier cascade;

	while (1) {
		cv::Mat frame;
		cv::Mat rev_frame;
		do {
			cap >> frame;		
		} while (frame.empty());

		cv::flip(frame, rev_frame, 1);

		CascadeClassifier cascade;

		cascade.load(cascadeName);

		vector hand;

		//http://workpiles.com/2015/04/opencv-detectmultiscale-scalefactor/ 
		cascade.detectMultiScale(rev_frame, hand, 1.11, 3, 0, Size(20, 20));
		
		int handsize = int(hand.size());
		char fsize;
		std::cout  0) {
		}
		else {

			if (cv::waitKey(30) >= 0)
			{
				cv::imwrite("cap.png", frame);
				break;
			}
			if (cv::waitKey(113) >= 0) //q
			{
				break;
			}
		}
	}
	cv::destroyAllWindows();
	return 0;
}


tinotina
記事: 7
登録日時: 8年前

Re: Try Hand detect use Hand.Cascade.1.xm

投稿記事 by tinotina » 8年前

Youtube
認識できませんでした。
最後に編集したユーザー tinotina on 2017年2月09日(木) 21:12 [ 編集 1 回目 ]