0

opencvと を使って実験していunityます。カメラを開く関数と閉じる関数を作成しようとしました。

#include "stdafx.h"
#include "camera.h"
#include <fstream>
using namespace std;

#define DllExport   __declspec( dllexport )

cameraControl mycam;
HANDLE threadCamera;
int threadCameraNumber = 0;

extern "C"
{
    DWORD WINAPI cameraStart(LPVOID lpParam)
    {       
             mycam.captureStart();
             return 0;
    }

    DllExport void cameraRun()
    {
            threadCamera = CreateThread(NULL, 0, cameraStart, &threadCameraNumber, 0, NULL);
    }

    DllExport void cameraStop()
    {
             mycam.captureEnd();    
    }
}

問題は、最初の関数を呼び出すとcameraRun()カムが開きますが、2番目の関数を呼び出すとcameraStop()何もしません。

4

1 に答える 1

0

これが役立つかもしれません: http://opencv.jp/opencv-1.0.0_org/docs/ref/opencvref_highgui.htm

cvQueryFrame カメラまたはファイルからフレームを取得して返します

IplImage* cvQueryFrame( CvCapture* キャプチャー ); ビデオキャプチャ構造をキャプチャします。関数 cvQueryFrame は、カメラまたはビデオ ファイルからフレームを取得し、解凍して返します。この関数は、cvGrabFrame と cvRetrieveFrame を 1 回の呼び出しで組み合わせたものです。返されたイメージは、ユーザーによってリリースまたは変更されるべきではありません。

于 2013-06-09T15:05:09.997 に答える