// Methods /// <summary> /// Configure and activate the tracker. /// </summary> public virtual void Activate(IArucoObjectsTracker arucoTracker) { this.arucoTracker = arucoTracker; arucoCamera = arucoTracker.ArucoCamera; arucoCameraUndistortion = arucoTracker.ArucoCameraUndistortion; arucoCameraDisplay = arucoTracker.ArucoCameraDisplay; IsActivated = true; arucoTracker.DictionaryAdded += ArucoObjectsController_DictionaryAdded; arucoTracker.DictionaryRemoved += ArucoObjectsController_DictionaryRemoved; }
// Constructor public ArucoCameraSeparateThread(IArucoCamera arucoCamera, Action imagesUpdated, Action threadWork, Action threadException) { this.arucoCamera = arucoCamera; this.imagesUpdated = imagesUpdated; this.threadWork = threadWork; this.threadException = threadException; Images = new Cv.Mat[arucoCamera.CameraNumber]; ImagesData = new byte[arucoCamera.CameraNumber][]; arucoCameraImageCopyData = new byte[arucoCamera.CameraNumber][]; for (int cameraId = 0; cameraId < arucoCamera.CameraNumber; cameraId++) { ImagesData[cameraId] = new byte[arucoCamera.ImageDataSizes[cameraId]]; arucoCameraImageCopyData[cameraId] = new byte[arucoCamera.ImageDataSizes[cameraId]]; Images[cameraId] = new Cv.Mat(arucoCamera.ImageTextures[cameraId].height, arucoCamera.ImageTextures[cameraId].width, CvMatExtensions.ImageType(arucoCamera.ImageTextures[cameraId].format)); Images[cameraId].DataByte = ImagesData[cameraId]; } }
// Constructor public ArucoCameraSeparateThread(IArucoCamera arucoCamera, Action <Cv.Mat[]> threadWork) { this.arucoCamera = arucoCamera; this.threadWork = threadWork; CopyBackImages = false; for (int bufferId = 0; bufferId < buffersCount; bufferId++) { imageBuffers[bufferId] = new Cv.Mat[arucoCamera.CameraNumber]; imageDataBuffers[bufferId] = new byte[arucoCamera.CameraNumber][]; for (int cameraId = 0; cameraId < arucoCamera.CameraNumber; cameraId++) { imageBuffers[bufferId][cameraId] = new Cv.Mat(arucoCamera.Textures[cameraId].height, arucoCamera.Textures[cameraId].width, CvMatExtensions.ImageType(arucoCamera.Textures[cameraId].format)); imageDataBuffers[bufferId][cameraId] = new byte[arucoCamera.ImageDataSizes[cameraId]]; imageBuffers[bufferId][cameraId].DataByte = imageDataBuffers[bufferId][cameraId]; } } }