#include <Windows.h>
#include <tchar.h>
#include "ECTrainer.h"
#include "SceneCamera.h"
#include "Worker.h"
#include "ECTrainerGUI.h"
#include "MyWinUtils.h"
// コンストラクタ
SceneCamera::SceneCamera(ECTrainer* pEct) : BaseProcess(pEct)
, _buffer()
{
}
// 初期化
bool SceneCamera::Init() {
// 視界カメラに接続
#if defined(EYEDEVICE_GLASS2)
_SceneCam.open("rtsp://" TOBII_ADDR ":8554/live/scene");
_pEct->PWorker()->EventLog(_T("Tobii Glasses camera connected."));
#elif defined(EYEDEVICE_NONE)
_SceneCam.open(0);
_pEct->PWorker()->EventLog(_T("Generic camera connected."));
#endif
if (!_SceneCam.isOpened()) {
MessageBox(NULL, _T("cannot open camera " TOBII_ADDR), NULL, 0);
return false;
}
// 画像サイズを保存
cv::Mat scene;
_SceneCam >> scene;
_sceneSize = scene.size();
return true;
}
// ループ
bool SceneCamera::Routine() {
// シーン撮影
cv::Mat scene;
_SceneCam >> scene;
_buffer.Put(scene);
Sleep(15); // Tobiiのシーンカメラは25FPS 15msのSleepは問題ない
return true;
}