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;
}
Пример #2
0
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;

}