void on_change(int pos)

void on_change(int pos)
{
    Track();
}
 
int main(int argc, char **argv)
{
    int key;			//      キー入力用の変数
    CvCapture *capture = NULL;	//      カメラキャプチャ用の構造体
 
    //      カメラを初期化する
    if ((capture = cvCreateCameraCapture(-1)) == NULL) {
	//      カメラが見つからなかった場合
	printf("カメラが見つかりません\n");
	return -1;
    }
 
    frameImage = cvQueryFrame(capture);	//      キャプチャ画像用IplImage
 
    hsvImage = cvCreateImage(cvGetSize(frameImage), IPL_DEPTH_8U, 3);
    convexHullImage =
	cvCreateImage(cvGetSize(frameImage), IPL_DEPTH_8U, 3);
    skinImage = cvCreateImage(cvGetSize(frameImage), IPL_DEPTH_8U, 1);
    temp = cvCreateImage(cvGetSize(frameImage), IPL_DEPTH_8U, 1);
    label = cvCreateImage(cvGetSize(frameImage), IPL_DEPTH_16S, 1);
 
    //      ウィンドウを生成する
    createWindows();
 
    //      トラックバーを生成
    cvCreateTrackbar("HMAX", "Track", &hmax, 255, on_change);
    cvSetTrackbarPos("HMAX", "Track", 26);
    cvCreateTrackbar("SMAX", "Track", &smax, 255, on_change);
    cvSetTrackbarPos("SMAX", "Track", 255);
    cvCreateTrackbar("VMAX", "Track", &vmax, 255, on_change);
    cvSetTrackbarPos("VMAX", "Track", 255);
    cvCreateTrackbar("HMIN", "Track", &hmin, 255, on_change);
    cvSetTrackbarPos("HMIN", "Track", 1);
    cvCreateTrackbar("SMIN", "Track", &smin, 255, on_change);
    cvSetTrackbarPos("SMIN", "Track", 51);
    cvCreateTrackbar("VMIN", "Track", &vmin, 255, on_change);
    cvSetTrackbarPos("VMIN", "Track", 0);
 
 
    //      ジャンケン判定感度を生成
    cvCreateTrackbar("グー最大", "Track", &rockmax, 100, on_change);
    cvSetTrackbarPos("グー最大", "Track", 100);
    cvCreateTrackbar("チョキ最大", "Track", &scissormax, 100, on_change);
    cvSetTrackbarPos("チョキ最大", "Track", 85);
    cvCreateTrackbar("パー最大", "Track", &papermax, 100, on_change);
    cvSetTrackbarPos("パー最大", "Track", 70);
    cvCreateTrackbar("グー最小", "Track", &rockmin, 100, on_change);
    cvSetTrackbarPos("グー最小", "Track", 85);
    cvCreateTrackbar("チョキ最小", "Track", &scissormin, 100, on_change);
    cvSetTrackbarPos("チョキ最小", "Track", 70);
    cvCreateTrackbar("パー最小", "Track", &papermin, 100, on_change);
    cvSetTrackbarPos("パー最小", "Track", 50);
 
    while (1) {
 
	frameImage = cvQueryFrame(capture);
 
	on_change(hmax);
	//on_change1(rockmax);
 
	//      画像を表示する
	//cvShowImage(windowNameCapture, frameImage);
	cvShowImage(windowNameSkin, skinImage);
	cvShowImage(windowNameConvexHull, convexHullImage);
	//printf("ゴミ:%d\n", kukei_count - yubi_count);
	//kukei_count = 0;
	yubi_count = 0;
 
 
	//      キー入力判定
	key = cvWaitKey(1);
	if (key == 'q') {
	    //      'q'キーが押されたらループを抜ける
	    break;
	} else if (key == 'c') {
	    printf("撮影します\n");
	    sprintf(filename, "%s%d.bmp", path, count);
	    //printf("%s",filename);
	    //cvSaveImage("c:\\output.bmp",skinImage);
	    cvSaveImage(filename, skinImage);
	    printf("撮影しました\n");
	    count++;
	}
    }
 
    //      キャプチャを解放する
    cvReleaseCapture(&capture);
    //      メモリを解放する
    cvReleaseImage(&hsvImage);
    cvReleaseImage(&skinImage);
    cvReleaseImage(&temp);
    cvReleaseImage(&label);
    cvReleaseImage(&convexHullImage);
    cvReleaseImage(&dst_img_subunn);
    cvReleaseImage(&dst_img);
 
    //      ウィンドウを破棄する
    //cvDestroyWindow(windowNameCapture);
    cvDestroyWindow(windowNameSkin);
    cvDestroyWindow(windowNameConvexHull);
    //cvDestroyWindow(windowNameSub);
    cvDestroyWindow(windowNameFit);
 
    return 0;
}
最終更新:2010年02月09日 10:09
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。