#include <Windows.h>
#include <tchar.h>
#include "ECTrainer.h"
#include "SceneCamera.h"
#include "Worker.h"
#include "ECTrainerGUI.h"
#include "nkcWinUtils.h"
// コンストラクタ
SceneCamera::SceneCamera(ECTrainer* pEct) : BaseProcess(pEct)
, _buffer()
{
}
// 初期化
bool SceneCamera::Init() {
// 視界カメラに接続
#if defined(EYEDEVICE_GLASS2)
_SceneCam.open("rtsp://" TOBII_ADDR ":8554/live/scene");
Ect()->PWorker()->EventLog(_T("Tobii Glasses camera connected."));
#elif defined(EYEDEVICE_NONE)
_SceneCam.open(0);
Ect()->PWorker()->EventLog(_T("Generic camera connected."));
#endif
if (!_SceneCam.isOpened()) {
MessageBox(NULL, _T("Cannot connect camera."), NULL, 0);
Ect()->PWorker()->EventLog(_T("Cannot connect camera."));
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;
}
// FPS表示
void SceneCamera::FPS(double fps) {
nkc::wut::DebugPrintf(_T("[SceneCamera] %.1f fps\n"), fps);
}