mitk::ToFCameraDevice::Pointer mitk::AbstractToFDeviceFactory::ConnectToFDevice() { ToFCameraDevice::Pointer device = CreateToFCameraDevice(); mitk::CameraIntrinsics::Pointer cameraIntrinsics = GetCameraIntrinsics(); device->SetProperty("CameraIntrinsics", mitk::CameraIntrinsicsProperty::New(cameraIntrinsics)); m_Devices.push_back(device); us::ModuleContext* context = us::GetModuleContext(); us::ServiceProperties deviceProps; //-------------Take a look at this part to change the name given to a device deviceProps["ToFDeviceName"] = GetCurrentDeviceName(); m_DeviceRegistrations.insert(std::make_pair(device.GetPointer(), context->RegisterService(device.GetPointer(),deviceProps))); return device; }
DWORD WINAPI ThreadProc(LPVOID lpParameter) { MSG msg; CCameraDS camera; IplImage *pFrame = NULL; IplImage *pFrameTransfromed = NULL; int nCount = CCameraDS::CameraCount(); PTHREAD_DATA pData = (PTHREAD_DATA)lpParameter; if(!GetCurrentDeviceName(pData->nDevice, pData->strDeviceName)) { return - 1; } if(!camera.OpenCamera(pData->nDevice, false)) { return -1; } pFrame = camera.QueryFrame(); while(TRUE) { if(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) { if(msg.message == WM_EXIT) { //MessageBox(NULL, TEXT("Got Message"), TEXT("Tip"), MB_ICONINFORMATION); break; } } pFrame = camera.QueryFrame(); switch(nCount) { case 1: //pFrame->width = pData->rcWindow.right; //pFrame->height = pData->rcWindow.bottom; pFrameTransfromed = ::cvCreateImage(::cvSize(pData->rcWindow.right, pData->rcWindow.bottom), pFrame->depth, pFrame->nChannels); ::cvResize(pFrame, pFrameTransfromed); break; case 2: pFrameTransfromed = ::cvCreateImage(::cvSize(pData->rcWindow.right / 2, pData->rcWindow.bottom), pFrame->depth, pFrame->nChannels); ::cvResize(pFrame, pFrameTransfromed); } cvShowImage(pData->strWindowName.c_str(), pFrameTransfromed); cvReleaseImage(&pFrameTransfromed); Sleep(50); } //cvReleaseImage(&pFrame); pFrame = NULL; camera.CloseCamera(); return 0; }