private void SetupMarkerTracking(VideoBrush videoBrush) { IVideoCapture captureDevice = null; if (useStaticImage) { captureDevice = new NullCapture(); captureDevice.InitVideoCapture(0, FrameRate._30Hz, Resolution._320x240, ImageFormat.B8G8R8A8_32, false); if (useSingleMarker) { ((NullCapture)captureDevice).StaticImageFile = "MarkerImageHiro.jpg"; } else { ((NullCapture)captureDevice).StaticImageFile = "MarkerImage_320x240"; } scene.ShowCameraImage = true; } else { captureDevice = new PhoneCameraCapture(videoBrush); captureDevice.InitVideoCapture(0, FrameRate._30Hz, Resolution._640x480, ImageFormat.B8G8R8A8_32, false); ((PhoneCameraCapture)captureDevice).UseLuminance = true; if (betterFPS) { captureDevice.MarkerTrackingImageResizer = new HalfResizer(); } } // Add this video capture device to the scene so that it can be used for // the marker tracker scene.AddVideoCaptureDevice(captureDevice); #if USE_PATTERN_MARKER NyARToolkitTracker tracker = new NyARToolkitTracker(); #else NyARToolkitIdTracker tracker = new NyARToolkitIdTracker(); #endif if (captureDevice.MarkerTrackingImageResizer != null) { tracker.InitTracker((int)(captureDevice.Width * captureDevice.MarkerTrackingImageResizer.ScalingFactor), (int)(captureDevice.Height * captureDevice.MarkerTrackingImageResizer.ScalingFactor), "camera_para.dat"); } else { tracker.InitTracker(captureDevice.Width, captureDevice.Height, "camera_para.dat"); } // Set the marker tracker to use for our scene scene.MarkerTracker = tracker; }
private void SetupMarkerTracking() { IVideoCapture captureDevice = null; if (useStaticImage) { captureDevice = new NullCapture(); captureDevice.InitVideoCapture(1, FrameRate._30Hz, Resolution._800x600, ImageFormat.R8G8B8_24, false); ((NullCapture)captureDevice).StaticImageFile = "MarkerImage"; } else { // Create our video capture device that uses DirectShow library. Note that // the combinations of resolution and frame rate that are allowed depend on // the particular video capture device. Thus, setting incorrect resolution // and frame rate values may cause exceptions or simply be ignored, depending // on the device driver. The values set here will work for a Microsoft VX 6000, // and many other webcams. captureDevice = new DirectShowCapture2(); captureDevice.InitVideoCapture(0, FrameRate._30Hz, Resolution._640x480, ImageFormat.R8G8B8_24, false); } // Add this video capture device to the scene so that it can be used for // the marker tracker scene.AddVideoCaptureDevice(captureDevice); IMarkerTracker tracker = null; // Create an optical marker tracker that uses ALVAR library tracker = new ALVARMarkerTracker(); ((ALVARMarkerTracker)tracker).MaxMarkerError = 0.02f; tracker.InitTracker(captureDevice.Width, captureDevice.Height, "calib.xml", 9.0); // Set the marker tracker to use for our scene scene.MarkerTracker = tracker; // Display the camera image in the background. Note that this parameter should // be set after adding at least one video capture device to the Scene class. scene.ShowCameraImage = true; }
private void SetupMarkerTracking() { IVideoCapture captureDevice = null; if (useStaticImage) { captureDevice = new NullCapture(); #if USE_NYARTOOLKIT captureDevice.InitVideoCapture(0, FrameRate._30Hz, Resolution._800x600, ImageFormat.B8G8R8A8_32, false); #else captureDevice.InitVideoCapture(0, FrameRate._30Hz, Resolution._800x600, ImageFormat.R8G8B8_24, false); #endif ((NullCapture)captureDevice).StaticImageFile = "MarkerImage"; } else { // Create our video capture device that uses DirectShow library. Note that // the combinations of resolution and frame rate that are allowed depend on // the particular video capture device. Thus, setting incorrect resolution // and frame rate values may cause exceptions or simply be ignored, depending // on the device driver. The values set here will work for a Microsoft VX 6000, // and many other webcams. captureDevice = new DirectShowCapture2(); #if USE_NYARTOOLKIT captureDevice.InitVideoCapture(0, FrameRate._60Hz, Resolution._640x480, ImageFormat.B8G8R8A8_32, false); #else captureDevice.InitVideoCapture(0, FrameRate._60Hz, Resolution._640x480, ImageFormat.R8G8B8_24, false); #endif } // Add this video capture device to the scene so that it can be used for // the marker tracker scene.AddVideoCaptureDevice(captureDevice); #if USE_NYARTOOLKIT NyARToolkitTracker tracker = new NyARToolkitTracker(); tracker.InitTracker(captureDevice.Width, captureDevice.Height, "camera_para.dat"); #else ALVARMarkerTracker tracker = new ALVARMarkerTracker(); tracker.MaxMarkerError = 0.02f; tracker.InitTracker(captureDevice.Width, captureDevice.Height, "calib.xml", 32.4f); #endif // Set the marker tracker to use for our scene scene.MarkerTracker = tracker; // Display the camera image in the background. Note that this parameter should // be set after adding at least one video capture device to the Scene class. scene.ShowCameraImage = true; }
private void SetupMarkerTracking(VideoBrush videoBrush) { IVideoCapture captureDevice = null; if (useStaticImage) { captureDevice = new NullCapture(); captureDevice.InitVideoCapture(0, FrameRate._30Hz, Resolution._320x240, ImageFormat.B8G8R8A8_32, false); if(useSingleMarker) ((NullCapture)captureDevice).StaticImageFile = "MarkerImageHiro.jpg"; else ((NullCapture)captureDevice).StaticImageFile = "MarkerImage_320x240"; scene.ShowCameraImage = true; } else { captureDevice = new PhoneCameraCapture(videoBrush); captureDevice.InitVideoCapture(0, FrameRate._30Hz, Resolution._640x480, ImageFormat.B8G8R8A8_32, false); ((PhoneCameraCapture)captureDevice).UseLuminance = true; if (betterFPS) captureDevice.MarkerTrackingImageResizer = new HalfResizer(); } // Add this video capture device to the scene so that it can be used for // the marker tracker scene.AddVideoCaptureDevice(captureDevice); #if USE_PATTERN_MARKER NyARToolkitTracker tracker = new NyARToolkitTracker(); #else NyARToolkitIdTracker tracker = new NyARToolkitIdTracker(); #endif if (captureDevice.MarkerTrackingImageResizer != null) tracker.InitTracker((int)(captureDevice.Width * captureDevice.MarkerTrackingImageResizer.ScalingFactor), (int)(captureDevice.Height * captureDevice.MarkerTrackingImageResizer.ScalingFactor), "camera_para.dat"); else tracker.InitTracker(captureDevice.Width, captureDevice.Height, "camera_para.dat"); // Set the marker tracker to use for our scene scene.MarkerTracker = tracker; }
private void SetupMarkerTracking(VideoBrush videoBrush) { IVideoCapture captureDevice = null; if (useStaticImage) { captureDevice = new NullCapture(); captureDevice.InitVideoCapture(0, FrameRate._30Hz, Resolution._320x240, ImageFormat.B8G8R8A8_32, false); if (useSingleMarker) { ((NullCapture)captureDevice).StaticImageFile = "MarkerImageHiro.jpg"; } else { ((NullCapture)captureDevice).StaticImageFile = "MarkerImage_320x240"; } scene.ShowCameraImage = true; } else { captureDevice = new PhoneCameraCapture(videoBrush); captureDevice.InitVideoCapture(0, FrameRate._30Hz, Resolution._640x480, ImageFormat.B8G8R8A8_32, false); ((PhoneCameraCapture)captureDevice).UseLuminance = true; if (betterFPS) { captureDevice.MarkerTrackingImageResizer = new HalfResizer(); } } // Add this video capture device to the scene so that it can be used for // the marker tracker scene.AddVideoCaptureDevice(captureDevice); #if USE_PATTERN_MARKER NyARToolkitTracker tracker = new NyARToolkitTracker(); #else NyARToolkitIdTracker tracker = new NyARToolkitIdTracker(); #endif if (captureDevice.MarkerTrackingImageResizer != null) { tracker.InitTracker((int)(captureDevice.Width * captureDevice.MarkerTrackingImageResizer.ScalingFactor), (int)(captureDevice.Height * captureDevice.MarkerTrackingImageResizer.ScalingFactor), "camera_para.dat"); } else { tracker.InitTracker(captureDevice.Width, captureDevice.Height, "camera_para.dat"); } // Set the marker tracker to use for our scene scene.MarkerTracker = tracker; #if USE_PATTERN_MARKER if (useSingleMarker) { groundMarkerNode = new MarkerNode(scene.MarkerTracker, "patt.hiro", 16, 16, markerSize, 0.7f); } else { groundMarkerNode = new MarkerNode(scene.MarkerTracker, "NyARToolkitGroundArray.xml", NyARToolkitTracker.ComputationMethod.Average); } #else //groundMarkerNode = new MarkerNode(scene.MarkerTracker, "CurveballArray.xml", // NyARToolkitTracker.ComputationMethod.Average); groundMarkerNode = new MarkerNode(scene.MarkerTracker, "NyARToolkitIDGroundArray.xml", NyARToolkitTracker.ComputationMethod.Average); #endif scene.RootNode.AddChild(groundMarkerNode); }