diff --git a/README.md b/README.md index 5235272..aa516e8 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # C\# samples -This repository contains csharp code samples for Zivid SDK v2.13.1. For +This repository contains csharp code samples for Zivid SDK v2.11.1. For tested compatibility with earlier SDK versions, please check out [accompanying releases](https://github.com/zivid/zivid-csharp-samples/tree/master/../../releases). @@ -62,9 +62,6 @@ from the camera can be used. - [CaptureHDRPrintNormals](https://github.com/zivid/zivid-csharp-samples/tree/master/source/Camera/Advanced/CaptureHDRPrintNormals/CaptureHDRPrintNormals.cs) - Capture Zivid point clouds, compute normals and print a subset. - **InfoUtilOther** - - [AutomaticNetworkConfigurationForCameras](https://github.com/zivid/zivid-csharp-samples/tree/master/source/Camera/InfoUtilOther/AutomaticNetworkConfigurationForCameras/AutomaticNetworkConfigurationForCameras.cs) - Automatically set the IP addresses of any number of - cameras to be in the same subnet as the provided IP address - of the network interface. - [CameraInfo](https://github.com/zivid/zivid-csharp-samples/tree/master/source/Camera/InfoUtilOther/CameraInfo/CameraInfo.cs) - List connected cameras and print camera version and state information for each connected camera. - [CameraUserData](https://github.com/zivid/zivid-csharp-samples/tree/master/source/Camera/InfoUtilOther/CameraUserData/CameraUserData.cs) - Store user data on the Zivid camera. @@ -73,16 +70,8 @@ from the camera can be used. - [FirmwareUpdater](https://github.com/zivid/zivid-csharp-samples/tree/master/source/Camera/InfoUtilOther/FirmwareUpdater/FirmwareUpdater.cs) - Update firmware on the Zivid camera. - [GetCameraIntrinsics](https://github.com/zivid/zivid-csharp-samples/tree/master/source/Camera/InfoUtilOther/GetCameraIntrinsics/GetCameraIntrinsics.cs) - Read intrinsic parameters from the Zivid camera (OpenCV model) or estimate them from the point cloud. - - [NetworkConfiguration](https://github.com/zivid/zivid-csharp-samples/tree/master/source/Camera/InfoUtilOther/NetworkConfiguration/NetworkConfiguration.cs) - Uses Zivid API to change the IP address of the Zivid - camera. - [Warmup](https://github.com/zivid/zivid-csharp-samples/tree/master/source/Camera/InfoUtilOther/Warmup/Warmup.cs) - A basic warm-up method for a Zivid camera with specified time and capture cycle. - - **Maintenance** - - [CorrectCameraInField](https://github.com/zivid/zivid-csharp-samples/tree/master/source/Camera/Maintenance/CorrectCameraInField/CorrectCameraInField.cs) - Correct the dimension trueness of a Zivid camera. - - [ResetCameraInField](https://github.com/zivid/zivid-csharp-samples/tree/master/source/Camera/Maintenance/ResetCameraInField/ResetCameraInField.cs) - Reset infield correction on a camera. - - [VerifyCameraInField](https://github.com/zivid/zivid-csharp-samples/tree/master/source/Camera/Maintenance/VerifyCameraInField/VerifyCameraInField.cs) - Check the dimension trueness of a Zivid camera. - - [VerifyCameraInFieldFromZDF](https://github.com/zivid/zivid-csharp-samples/tree/master/source/Camera/Maintenance/VerifyCameraInFieldFromZDF/VerifyCameraInFieldFromZDF.cs) - Check the dimension trueness of a Zivid camera from a ZDF - file. - **Applications** - **Basic** - **Visualization** @@ -102,14 +91,7 @@ from the camera can be used. - [HandEyeCalibration](https://github.com/zivid/zivid-csharp-samples/tree/master/source/Applications/Advanced/HandEyeCalibration/HandEyeCalibration/HandEyeCalibration.cs) - Perform Hand-Eye calibration. - [MultiCameraCalibration](https://github.com/zivid/zivid-csharp-samples/tree/master/source/Applications/Advanced/MultiCameraCalibration/MultiCameraCalibration.cs) - Use captures of a calibration object to generate transformation matrices to a single coordinate frame. - - [ROIBoxViaArucoMarker](https://github.com/zivid/zivid-csharp-samples/tree/master/source/Applications/Advanced/ROIBoxViaArucoMarker/ROIBoxViaArucoMarker.cs) - Filter the point cloud based on a ROI box given relative - to the ArUco marker on a Zivid Calibration Board. - - [ROIBoxViaCheckerboard](https://github.com/zivid/zivid-csharp-samples/tree/master/source/Applications/Advanced/ROIBoxViaCheckerboard/ROIBoxViaCheckerboard.cs) - Filter the point cloud based on a ROI box given relative - to the Zivid Calibration Board. - [TransformPointCloudFromMillimetersToMeters](https://github.com/zivid/zivid-csharp-samples/tree/master/source/Applications/Advanced/TransformPointCloudFromMillimetersToMeters/TransformPointCloudFromMillimetersToMeters.cs) - Transform point cloud data from millimeters to meters. - - [TransformPointCloudViaArucoMarker](https://github.com/zivid/zivid-csharp-samples/tree/master/source/Applications/Advanced/TransformPointCloudViaArucoMarker/TransformPointCloudViaArucoMarker.cs) - Transform a point cloud from camera to ArUco marker - coordinate frame by estimating the marker's pose from the - point cloud. - [TransformPointCloudViaCheckerboard](https://github.com/zivid/zivid-csharp-samples/tree/master/source/Applications/Advanced/TransformPointCloudViaCheckerboard/TransformPointCloudViaCheckerboard.cs) - Transform a point cloud from camera to checkerboard (Zivid Calibration Board) coordinate frame by getting checkerboard pose from the API. @@ -117,7 +99,7 @@ from the camera can be used. - [PoseConversions](https://github.com/zivid/zivid-csharp-samples/tree/master/source/Applications/Advanced/HandEyeCalibration/PoseConversions/PoseConversions.cs) - Convert to/from Transformation Matrix (Rotation Matrix + Translation Vector) - [UtilizeHandEyeCalibration](https://github.com/zivid/zivid-csharp-samples/tree/master/source/Applications/Advanced/HandEyeCalibration/UtilizeHandEyeCalibration/UtilizeHandEyeCalibration.cs) - Transform single data point or entire point cloud from - camera to robot base reference frame using Hand-Eye + camera frame to robot base frame using Hand-Eye calibration ## Installation @@ -143,8 +125,8 @@ Visual Studio](https://support.zivid.com/latest/api-reference/samples/csharp/build-c-sharp-samples-using-visual-studio.html). Some of the samples depend on external libraries, in particular -`MathNet.Numerics` and `System.ValueTuple`. These libraries will be -installed automatically through NuGet when building the sample. +`MathNet.Numerics`. These libraries will be installed automatically +through NuGet when building the sample. ## Support diff --git a/source/Applications/Advanced/HandEyeCalibration/HandEyeCalibration/HandEyeCalibration.cs b/source/Applications/Advanced/HandEyeCalibration/HandEyeCalibration/HandEyeCalibration.cs index f2cf128..e52bea0 100644 --- a/source/Applications/Advanced/HandEyeCalibration/HandEyeCalibration/HandEyeCalibration.cs +++ b/source/Applications/Advanced/HandEyeCalibration/HandEyeCalibration/HandEyeCalibration.cs @@ -6,6 +6,7 @@ Perform Hand-Eye calibration. using System.Collections.Generic; using System.IO; using System.Linq; + using Zivid.NET.Calibration; using Duration = Zivid.NET.Duration; @@ -24,13 +25,9 @@ static int Main() var calibrationResult = performCalibration(handEyeInput); - Console.WriteLine("Zivid primarily operates with a (4x4) transformation matrix. To convert"); - Console.WriteLine("to axis-angle, rotation vector, roll-pitch-yaw, or quaternion, check out"); - Console.WriteLine("our PoseConversions sample."); - if (calibrationResult.Valid()) { - Console.WriteLine("{0}\n{1}\n{2}", "Hand-Eye calibration OK", "Result: ", calibrationResult); + Console.WriteLine("{0}\n{1}\n{2}", "Hand-Eye calibration OK", "Result:", calibrationResult); } else { @@ -52,26 +49,8 @@ static List readHandEyeInputs(Zivid.NET.Camera camera) var currentPoseId = 0U; var beingInput = true; - var calibrationObject = ""; - while (true) - { - Console.WriteLine("Enter calibration object you are using, m (for ArUco marker(s)) or c (for Zivid checkerboard): "); - calibrationObject = Console.ReadLine(); - - if (calibrationObject.Equals("m", StringComparison.CurrentCultureIgnoreCase) || - calibrationObject.Equals("c", StringComparison.CurrentCultureIgnoreCase)) - { - break; - } - } - - Interaction.ExtendInputBuffer(2048); - Console.WriteLine("Zivid primarily operates with a (4x4) transformation matrix. To convert"); - Console.WriteLine("from axis-angle, rotation vector, roll-pitch-yaw, or quaternion, check out"); - Console.WriteLine("our PoseConversions sample."); - do { switch (Interaction.EnterCommand()) @@ -79,7 +58,23 @@ static List readHandEyeInputs(Zivid.NET.Camera camera) case CommandType.AddPose: try { - HandleAddPose(ref currentPoseId, ref handEyeInput, camera, calibrationObject); + var robotPose = Interaction.EnterRobotPose(currentPoseId); + using (var frame = Interaction.AssistedCapture(camera)) + { + Console.Write("Detecting checkerboard in point cloud: "); + var detectionResult = Detector.DetectFeaturePoints(frame.PointCloud); + + if (detectionResult.Valid()) + { + Console.WriteLine("Calibration board detected"); + handEyeInput.Add(new HandEyeInput(robotPose, detectionResult)); + ++currentPoseId; + } + else + { + Console.WriteLine("Failed to detect calibration board, ensure that the entire board is in the view of the camera"); + } + } } catch (Exception ex) { @@ -96,82 +91,25 @@ static List readHandEyeInputs(Zivid.NET.Camera camera) return handEyeInput; } - public static void HandleAddPose(ref uint currentPoseId, ref List handEyeInput, Zivid.NET.Camera camera, string calibrationObject) - { - var robotPose = Interaction.EnterRobotPose(currentPoseId); - - Console.Write("Detecting calibration object in point cloud"); - if (calibrationObject.Equals("c", StringComparison.CurrentCultureIgnoreCase)) - { - var frame = Zivid.NET.Calibration.Detector.CaptureCalibrationBoard(camera); - var detectionResult = Detector.DetectCalibrationBoard(frame); - - if (detectionResult.Valid()) - { - Console.WriteLine("Calibration board detected"); - handEyeInput.Add(new HandEyeInput(robotPose, detectionResult)); - ++currentPoseId; - } - else - { - Console.WriteLine("Failed to detect calibration board, ensure that the entire board is in the view of the camera"); - } - } - else if (calibrationObject.Equals("m", StringComparison.CurrentCultureIgnoreCase)) - { - var frame = AssistedCapture(camera); - - var markerDictionary = Zivid.NET.MarkerDictionary.Aruco4x4_50; - var markerIds = new List { 1, 2, 3 }; - - Console.WriteLine("Detecting arUco marker IDs " + string.Join(", ", markerIds)); - var detectionResult = Detector.DetectMarkers(frame, markerIds, markerDictionary); - - if (detectionResult.Valid()) - { - Console.WriteLine("ArUco marker(s) detected: " + detectionResult.DetectedMarkers().Length); - handEyeInput.Add(new HandEyeInput(robotPose, detectionResult)); - ++currentPoseId; - } - else - { - Console.WriteLine("Failed to detect any ArUco markers, ensure that at least one ArUco marker is in the view of the camera"); - } - } - } - static Zivid.NET.Calibration.HandEyeOutput performCalibration(List handEyeInput) { while (true) { - Console.WriteLine("Enter type of calibration, eth (for eye-to-hand) or eih (for eye-in-hand): "); + Console.WriteLine("Enter type of calibration, eth (for eye-to-hand) or eih (for eye-in-hand):"); var calibrationType = Console.ReadLine(); if (calibrationType.Equals("eth", StringComparison.CurrentCultureIgnoreCase)) { - Console.WriteLine("Performing eye-to-hand calibration with " + handEyeInput.Count + " dataset pairs"); - Console.WriteLine("The resulting transform is the camera pose in robot base frame"); + Console.WriteLine("Performing eye-to-hand calibration"); return Calibrator.CalibrateEyeToHand(handEyeInput); } if (calibrationType.Equals("eih", StringComparison.CurrentCultureIgnoreCase)) { - Console.WriteLine("Performing eye-in-hand calibration with " + handEyeInput.Count + " dataset pairs"); - Console.WriteLine("The resulting transform is the camera pose in flange (end-effector) frame"); + Console.WriteLine("Performing eye-in-hand calibration"); return Calibrator.CalibrateEyeInHand(handEyeInput); } Console.WriteLine("Entered unknown method"); } } - public static Zivid.NET.Frame AssistedCapture(Zivid.NET.Camera camera) - { - var suggestSettingsParameters = new Zivid.NET.CaptureAssistant.SuggestSettingsParameters - { - AmbientLightFrequency = - Zivid.NET.CaptureAssistant.SuggestSettingsParameters.AmbientLightFrequencyOption.none, - MaxCaptureTime = Duration.FromMilliseconds(800) - }; - var settings = Zivid.NET.CaptureAssistant.Assistant.SuggestSettings(camera, suggestSettingsParameters); - return camera.Capture(settings); - } } enum CommandType @@ -192,7 +130,7 @@ public static void ExtendInputBuffer(int size) public static CommandType EnterCommand() { - Console.Write("Enter command, p (to add robot pose) or c (to perform calibration): "); + Console.Write("Enter command, p (to add robot pose) or c (to perform calibration):"); var command = Console.ReadLine().ToLower(); switch (command) @@ -217,4 +155,16 @@ public static Pose EnterRobotPose(ulong index) var robotPose = new Pose(elements); Console.WriteLine("The following pose was entered: \n{0}", robotPose); return robotPose; } + + public static Zivid.NET.Frame AssistedCapture(Zivid.NET.Camera camera) + { + var suggestSettingsParameters = new Zivid.NET.CaptureAssistant.SuggestSettingsParameters + { + AmbientLightFrequency = + Zivid.NET.CaptureAssistant.SuggestSettingsParameters.AmbientLightFrequencyOption.none, + MaxCaptureTime = Duration.FromMilliseconds(800) + }; + var settings = Zivid.NET.CaptureAssistant.Assistant.SuggestSettings(camera, suggestSettingsParameters); + return camera.Capture(settings); + } } diff --git a/source/Applications/Advanced/HandEyeCalibration/UtilizeHandEyeCalibration/UtilizeHandEyeCalibration.cs b/source/Applications/Advanced/HandEyeCalibration/UtilizeHandEyeCalibration/UtilizeHandEyeCalibration.cs index 6559bba..35e097e 100644 --- a/source/Applications/Advanced/HandEyeCalibration/UtilizeHandEyeCalibration/UtilizeHandEyeCalibration.cs +++ b/source/Applications/Advanced/HandEyeCalibration/UtilizeHandEyeCalibration/UtilizeHandEyeCalibration.cs @@ -1,25 +1,25 @@ /* -Transform single data point or entire point cloud from camera to robot base reference frame using Hand-Eye calibration +Transform single data point or entire point cloud from camera frame to robot base frame using Hand-Eye calibration matrix. This example shows how to utilize the result of Hand-Eye calibration to transform either (picking) point coordinates -or the entire point cloud from the camera to the robot base reference frame. +or the entire point cloud from the camera frame to the robot base frame. For both Eye-To-Hand and Eye-In-Hand, there is a Zivid gem placed approx. 500 mm away from the robot base (see below). -The (picking) point is the Zivid gem centroid, defined as image coordinates in the camera reference frame and hard-coded +The (picking) point is the Zivid gem centroid, defined as image coordinates in the camera frame and hard-coded in this code example. Open the ZDF files in Zivid Studio to inspect the gem's 2D and corresponding 3D coordinates. Eye-To-Hand - ZDF file: ZividGemEyeToHand.zdf - 2D image coordinates: (1035,255) - Corresponding 3D coordinates: (37.77 -145.92 1227.1) -- Corresponding 3D coordinates (robot base reference frame): (-12.4 514.37 -21.79) +- Corresponding 3D coordinates (robot base frame): (-12.4 514.37 -21.79) Eye-In-Hand: - ZDF file: ZividGemEyeInHand.zdf - 2D image coordinates: (1460,755) -- Corresponding 3D coordinates (camera reference frame): (83.95 28.84 305.7) -- Corresponding 3D coordinates (robot base reference frame): (531.03 -5.44 164.6) +- Corresponding 3D coordinates (camera frame): (83.95 28.84 305.7) +- Corresponding 3D coordinates (robot base frame): (531.03 -5.44 164.6) For verification, check that the Zivid gem centroid 3D coordinates are the same as above after the transformation. @@ -52,14 +52,14 @@ static int Main() fileName = "ZividGemEyeToHand.zdf"; - // The (picking) point is defined as image coordinates in camera reference frame. It is hard-coded - // for the ZividGemEyeToHand.zdf (1035,255) X: 37.8 Y: -145.9 Z: 1227.1 + // The (picking) point is defined as image coordinates in camera frame. It is hard-coded for the + // ZividGemEyeToHand.zdf (1035,255) X: 37.8 Y: -145.9 Z: 1227.1 imageCoordinateX = 1035; imageCoordinateY = 255; var eyeToHandTransformFile = "EyeToHandTransform.yaml"; - Console.WriteLine("Reading camera pose in robot base reference frame (result of eye-to-hand calibration"); + Console.WriteLine("Reading camera pose in robot base frame (result of eye-to-hand calibration"); var eyeToHandTransform = new Zivid.NET.Matrix4x4( Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "/Zivid/" + eyeToHandTransformFile); @@ -74,8 +74,8 @@ static int Main() fileName = "ZividGemEyeInHand.zdf"; - // The (picking) point is defined as image coordinates in camera reference frame. It is hard-coded - // for the ZividGemEyeInHand.zdf (1460,755) X: 83.95 Y: 28.84 Z: 305.7 + // The (picking) point is defined as image coordinates in camera frame. It is hard-coded for the + // ZividGemEyeInHand.zdf (1460,755) X: 83.95 Y: 28.84 Z: 305.7 imageCoordinateX = 1357; imageCoordinateY = 666; @@ -83,12 +83,12 @@ static int Main() var robotTransformFile = "RobotTransform.yaml"; Console.WriteLine( - "Reading camera pose in end-effector reference frame (result of eye-in-hand calibration)"); + "Reading camera pose in end-effector frame (result of eye-in-hand calibration)"); var eyeInHandTransform = new Zivid.NET.Matrix4x4( Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "/Zivid/" + eyeInHandTransformFile); - Console.WriteLine("Reading end-effector pose in robot base reference frame"); + Console.WriteLine("Reading end-effector pose in robot base frame"); var robotTransform = new Zivid.NET.Matrix4x4( Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "/Zivid/" + robotTransformFile); @@ -97,7 +97,7 @@ static int Main() Matrix transformEndEffectorToCamera = zividToMathDotNet(eyeInHandTransform); Matrix transformBaseToEndEffector = zividToMathDotNet(robotTransform); - Console.WriteLine("Computing camera pose in robot base reference frame"); + Console.WriteLine("Computing camera pose in robot base frame"); transformBaseToCameraMath = transformBaseToEndEffector * transformEndEffectorToCamera; loopContinue = false; @@ -111,7 +111,7 @@ static int Main() var dataFile = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "/Zivid/" + fileName; - Console.WriteLine("Reading point cloud from file: " + dataFile); + Console.WriteLine("Reading ZDF frame from file: " + dataFile); var frame = new Zivid.NET.Frame(dataFile); var pointCloud = frame.PointCloud; @@ -132,12 +132,12 @@ static int Main() xyz[imageCoordinateY, imageCoordinateX, 3] }; Vector pointInCameraFrame = CreateVector.DenseOfArray(pickingPoint); - Console.WriteLine("Point coordinates in camera reference frame: " + pointInCameraFrame); + Console.WriteLine("Point coordinates in camera frame: " + pointInCameraFrame); - Console.WriteLine("Transforming (picking) point from camera to robot base reference frame"); + Console.WriteLine("Transforming (picking) point from camera to robot base frame"); Vector pointInBaseFrame = transformBaseToCameraMath * pointInCameraFrame; - Console.WriteLine("Point coordinates in robot base reference frame: " + pointInBaseFrame); + Console.WriteLine("Point coordinates in robot base frame: " + pointInBaseFrame); loopContinue = false; break; @@ -150,7 +150,7 @@ static int Main() pointCloud.Transform(transformBaseToCamera); var saveFile = "ZividGemTransformed.zdf"; - Console.WriteLine("Saving point cloud to file: " + saveFile); + Console.WriteLine("Saving frame to file: " + saveFile); frame.Save(saveFile); loopContinue = false; diff --git a/source/Applications/Advanced/MultiCameraCalibration/MultiCameraCalibration.cs b/source/Applications/Advanced/MultiCameraCalibration/MultiCameraCalibration.cs index 070be0c..9471c8f 100644 --- a/source/Applications/Advanced/MultiCameraCalibration/MultiCameraCalibration.cs +++ b/source/Applications/Advanced/MultiCameraCalibration/MultiCameraCalibration.cs @@ -18,18 +18,22 @@ static int Main() var zivid = new Zivid.NET.Application(); var cameras = zivid.Cameras; Console.WriteLine("Number of cameras found: {0}", cameras.Count); - var connectedCameras = connectToAllAvailableCameras(cameras); + foreach (var camera in cameras) + { + Console.WriteLine("Connecting to camera: {0}", camera.Info.SerialNumber); + camera.Connect(); + } var detectionResults = new List(); var serialNumbers = new List(); - foreach (var camera in connectedCameras) + foreach (var camera in cameras) { var serialNumber = camera.Info.SerialNumber.ToString(); Console.WriteLine("Capturing frame with camera: {0}", serialNumber); using (var frame = AssistedCapture(camera)) { Console.WriteLine("Detecting checkerboard in point cloud"); - var detectionResult = Detector.DetectCalibrationBoard(frame); + var detectionResult = Detector.DetectFeaturePoints(frame.PointCloud); if (detectionResult) { detectionResults.Add(detectionResult); @@ -83,26 +87,6 @@ static Zivid.NET.Frame AssistedCapture(Zivid.NET.Camera camera) return camera.Capture(settings); } - static List connectToAllAvailableCameras(IList cameras) - { - var connectedCameras = new List(); - foreach (var camera in cameras) - { - if (camera.State.Status == Zivid.NET.CameraState.StatusOption.Available) - { - Console.WriteLine("Connecting to camera: {0}", camera.Info.SerialNumber); - camera.Connect(); - connectedCameras.Add(camera); - } - else - { - Console.WriteLine("Unable to connect to camera: {0}. ", camera.Info.SerialNumber); - Console.WriteLine("Camera status: {0}.", camera.State.Status); - } - } - return connectedCameras; - } - static void PrintMatrix(float[,] matrix) { var lineSep = new String('-', 50); diff --git a/source/Applications/Advanced/ROIBoxViaArucoMarker/App.config b/source/Applications/Advanced/ROIBoxViaArucoMarker/App.config deleted file mode 100644 index 7eb8d24..0000000 --- a/source/Applications/Advanced/ROIBoxViaArucoMarker/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/source/Applications/Advanced/ROIBoxViaArucoMarker/Properties/AssemblyInfo.cs b/source/Applications/Advanced/ROIBoxViaArucoMarker/Properties/AssemblyInfo.cs deleted file mode 100644 index a15ed32..0000000 --- a/source/Applications/Advanced/ROIBoxViaArucoMarker/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. - -[assembly: AssemblyTitle("ROIBoxViaArucoMarker")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("ROIBoxViaArucoMarker")] -[assembly: AssemblyCopyright("Copyright 2015-2022 (C) Zivid AS")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("96CC8163-6D2F-4FF9-B89C-FD2A137AC672")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision - -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] -[assembly: AssemblyInformationalVersion("1.0.0.0")] diff --git a/source/Applications/Advanced/ROIBoxViaArucoMarker/ROIBoxViaArucoMarker.cs b/source/Applications/Advanced/ROIBoxViaArucoMarker/ROIBoxViaArucoMarker.cs deleted file mode 100644 index a27ba51..0000000 --- a/source/Applications/Advanced/ROIBoxViaArucoMarker/ROIBoxViaArucoMarker.cs +++ /dev/null @@ -1,166 +0,0 @@ -/* -Filter the point cloud based on a ROI box given relative to the ArUco marker on a Zivid Calibration Board. - -The ZFC file for this sample can be downloaded from https://support.zivid.com/en/latest/api-reference/samples/sample-data.html. -*/ - -using System; -using System.Collections.Generic; -using Zivid.NET; -using Zivid.NET.Calibration; - -using MathNet.Numerics.LinearAlgebra; -using MathNet.Numerics.LinearAlgebra.Double; - -class Program -{ - static int Main() - { - try - { - var zivid = new Zivid.NET.Application(); - - string fileCamera = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "/Zivid/BinWithCalibrationBoard.zfc"; - - Console.WriteLine("Creating virtual camera using file: " + fileCamera); - var camera = zivid.CreateFileCamera(fileCamera); - - var settings = new Zivid.NET.Settings - { - Acquisitions = { new Zivid.NET.Settings.Acquisition { } } - }; - - var originalFrame = camera.Capture(settings); - var pointCloud = originalFrame.PointCloud; - - Console.WriteLine("Displaying the original point cloud"); - VisualizeZividPointCloud(originalFrame); - - Console.WriteLine("Configuring ROI box based on bin size and checkerboard placement"); - float roiBoxLength = 545F; - float roiBoxWidth = 345F; - float roiBoxHeight = 150F; - - // Coordinates are relative to the checkerboard origin which lies in the intersection between the four checkers - // in the top-left corner of the checkerboard: Positive x-axis is "East", y-axis is "South" and z-axis is "Down" - var roiBoxLowerRightCornerInCheckerboardFrame = new Zivid.NET.PointXYZ - { - x = 240F, - y = 30F, - z = 5F - }; - var roiBoxUpperRightCornerInCheckerboardFrame = new Zivid.NET.PointXYZ - { - x = roiBoxLowerRightCornerInCheckerboardFrame.x, - y = roiBoxLowerRightCornerInCheckerboardFrame.y - roiBoxWidth, - z = roiBoxLowerRightCornerInCheckerboardFrame.z - }; - var roiBoxLowerLeftCornerInCheckerboardFrame = new Zivid.NET.PointXYZ - { - x = roiBoxLowerRightCornerInCheckerboardFrame.x - roiBoxLength, - y = roiBoxLowerRightCornerInCheckerboardFrame.y, - z = roiBoxLowerRightCornerInCheckerboardFrame.z - - }; - - var pointOInCheckerboardFrame = roiBoxLowerRightCornerInCheckerboardFrame; - var pointAInCheckerboardFrame = roiBoxUpperRightCornerInCheckerboardFrame; - var pointBInCheckerboardFrame = roiBoxLowerLeftCornerInCheckerboardFrame; - - Console.WriteLine("Configuring ArUco marker"); - var markerDictionary = Zivid.NET.MarkerDictionary.Aruco4x4_50; - var markerId = new List { 1 }; - - Console.WriteLine("Detecting ArUco marker"); - var detectionResult = Detector.DetectMarkers(originalFrame, markerId, markerDictionary); - - if (!detectionResult.Valid()) - { - Console.WriteLine("No ArUco markers detected"); - return 1; - } - - Console.WriteLine("Estimating pose of detected ArUco marker"); - var cameraToMarkerTransform = new Zivid.NET.Matrix4x4(detectionResult.DetectedMarkers()[0].Pose().ToMatrix()); - - Console.WriteLine("Transforming the ROI base frame points to the camera frame"); - var roiPointsInCameraFrame = TransformPoints( - new List { pointOInCheckerboardFrame, pointAInCheckerboardFrame, pointBInCheckerboardFrame }, - cameraToMarkerTransform); - - Console.WriteLine("Setting the ROI"); - settings.RegionOfInterest.Box.Enabled = true; - settings.RegionOfInterest.Box.PointO = roiPointsInCameraFrame[0]; - settings.RegionOfInterest.Box.PointA = roiPointsInCameraFrame[1]; - settings.RegionOfInterest.Box.PointB = roiPointsInCameraFrame[2]; - settings.RegionOfInterest.Box.Extents = new Zivid.NET.Range(-10, roiBoxHeight); - - var roiFrame = camera.Capture(settings); - - Console.WriteLine("Displaying the ROI-filtered point cloud"); - VisualizeZividPointCloud(roiFrame); - } - catch (Exception ex) - { - Console.WriteLine("Error: " + ex.Message); - return 1; - } - return 0; - } - static void VisualizeZividPointCloud(Zivid.NET.Frame frame) - { - using (var visualizer = new Zivid.NET.Visualization.Visualizer()) - { - visualizer.Show(frame); - visualizer.ShowMaximized(); - visualizer.ResetToFit(); - Console.WriteLine("Running visualizer. Blocking until window closes."); - visualizer.Run(); - } - } - - static List> ZividToMathDotNet(List zividPoints) - { - var mathDotNetPoints = new List>(zividPoints.Count); - foreach (var point in zividPoints) - { - mathDotNetPoints.Add(CreateMatrix.DenseOfArray(new double[,] { { point.x }, { point.y }, { point.z } })); - } - return mathDotNetPoints; - } - - static Matrix ZividToMathDotNet(Matrix4x4 zividMatrix) - { - return CreateMatrix.DenseOfArray(zividMatrix.ToArray()).ToDouble(); - } - - public static List MathDotNetToZivid(List> mathDotNetPoints) - { - var zividPoints = new List(mathDotNetPoints.Count); - foreach (var point in mathDotNetPoints) - { - var zividPoint = new PointXYZ - { - x = (float)point[0, 0], - y = (float)point[1, 0], - z = (float)point[2, 0] - }; - zividPoints.Add(zividPoint); - } - return zividPoints; - } - static List TransformPoints(List zividPoints, Matrix4x4 zividTransform) - { - var mathDotNetPoints = ZividToMathDotNet(zividPoints); - var mathDotNetTransform = ZividToMathDotNet(zividTransform); - - var transformedMathDotNetPoints = new List>(mathDotNetPoints.Count); - for (int i = 0; i < mathDotNetPoints.Count; i++) - { - var transformedPoint = mathDotNetTransform.SubMatrix(0, 3, 0, 3) * mathDotNetPoints[i] + mathDotNetTransform.SubMatrix(0, 3, 3, 1); - transformedMathDotNetPoints.Add(transformedPoint); - } - - return MathDotNetToZivid(transformedMathDotNetPoints); - } -} diff --git a/source/Applications/Advanced/ROIBoxViaArucoMarker/ROIBoxViaArucoMarker.csproj b/source/Applications/Advanced/ROIBoxViaArucoMarker/ROIBoxViaArucoMarker.csproj deleted file mode 100644 index 8bbe7dc..0000000 --- a/source/Applications/Advanced/ROIBoxViaArucoMarker/ROIBoxViaArucoMarker.csproj +++ /dev/null @@ -1,86 +0,0 @@ - - - - - Debug - AnyCPU - {96CC8163-6D2F-4FF9-B89C-FD2A137AC672} - Exe - ROIBoxViaArucoMarker - ROIBoxViaArucoMarker - v4.6.1 - 512 - true - - - x64 - true - full - false - ..\..\..\..\build\$(Configuration)\$(Platform) - DEBUG;TRACE - prompt - 4 - true - - - x64 - pdbonly - true - ..\..\..\..\build\$(Configuration)\$(Platform) - TRACE - prompt - 4 - true - - - - ..\..\..\packages\MathNet.Numerics.4.12.0\lib\net461\MathNet.Numerics.dll - - - - - - - - - - - $(ZIVID_INSTALL_FOLDER)\bin\ZividCoreNET.dll - - - $(ZIVID_INSTALL_FOLDER)\bin_debug\ZividCoreNET.dll - - - $(ZIVID_INSTALL_FOLDER)\bin\ZividVisualizationNET.dll - - - $(ZIVID_INSTALL_FOLDER)\bin_debug\ZividVisualizationNET.dll - - - - - - - - - - - - if $(ConfigurationName) == Debug GOTO Debug -if $(ConfigurationName) == Release GOTO Release -goto Error - -:Debug -xcopy "$(ZIVID_INSTALL_FOLDER)\bin_debug\*.dll" "$(TargetDir)" /Y -exit /B 0 - -:Release -xcopy "$(ZIVID_INSTALL_FOLDER)\bin\*.dll" "$(TargetDir)" /Y -exit /B 0 - -:Error -echo Unsupported config -exit /B 1 - - \ No newline at end of file diff --git a/source/Applications/Advanced/ROIBoxViaArucoMarker/packages.config b/source/Applications/Advanced/ROIBoxViaArucoMarker/packages.config deleted file mode 100644 index ed08549..0000000 --- a/source/Applications/Advanced/ROIBoxViaArucoMarker/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/source/Applications/Advanced/ROIBoxViaCheckerboard/App.config b/source/Applications/Advanced/ROIBoxViaCheckerboard/App.config deleted file mode 100644 index 7eb8d24..0000000 --- a/source/Applications/Advanced/ROIBoxViaCheckerboard/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/source/Applications/Advanced/ROIBoxViaCheckerboard/Properties/AssemblyInfo.cs b/source/Applications/Advanced/ROIBoxViaCheckerboard/Properties/AssemblyInfo.cs deleted file mode 100644 index 7c4e529..0000000 --- a/source/Applications/Advanced/ROIBoxViaCheckerboard/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. - -[assembly: AssemblyTitle("ROIBoxViaCheckerboard")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("ROIBoxViaCheckerboard")] -[assembly: AssemblyCopyright("Copyright 2015-2022 (C) Zivid AS")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("FDAE54C3-5924-462B-BCE9-E8C51CB637B3")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision - -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] -[assembly: AssemblyInformationalVersion("1.0.0.0")] diff --git a/source/Applications/Advanced/ROIBoxViaCheckerboard/ROIBoxViaCheckerboard.cs b/source/Applications/Advanced/ROIBoxViaCheckerboard/ROIBoxViaCheckerboard.cs deleted file mode 100644 index 2f0db63..0000000 --- a/source/Applications/Advanced/ROIBoxViaCheckerboard/ROIBoxViaCheckerboard.cs +++ /dev/null @@ -1,154 +0,0 @@ -/* -Filter the point cloud based on a ROI box given relative to the Zivid Calibration Board. - -The ZFC file for this sample can be downloaded from https://support.zivid.com/en/latest/api-reference/samples/sample-data.html. -*/ - -using System; -using System.Collections.Generic; -using Zivid.NET; -using Zivid.NET.Calibration; - -using MathNet.Numerics.LinearAlgebra; -using MathNet.Numerics.LinearAlgebra.Double; - -class Program -{ - static int Main() - { - try - { - var zivid = new Zivid.NET.Application(); - - string fileCamera = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "/Zivid/BinWithCalibrationBoard.zfc"; - - Console.WriteLine("Creating virtual camera using file: " + fileCamera); - var camera = zivid.CreateFileCamera(fileCamera); - - var settings = new Zivid.NET.Settings - { - Acquisitions = { new Zivid.NET.Settings.Acquisition { } } - }; - - var originalFrame = camera.Capture(settings); - var pointCloud = originalFrame.PointCloud; - - Console.WriteLine("Displaying the original point cloud"); - VisualizeZividPointCloud(originalFrame); - - Console.WriteLine("Configuring ROI box based on bin size and checkerboard placement"); - float roiBoxLength = 545F; - float roiBoxWidth = 345F; - float roiBoxHeight = 150F; - - // Coordinates are relative to the checkerboard origin which lies in the intersection between the four checkers - // in the top-left corner of the checkerboard: Positive x-axis is "East", y-axis is "South" and z-axis is "Down" - var roiBoxLowerRightCornerInCheckerboardFrame = new Zivid.NET.PointXYZ - { - x = 240F, - y = 260F, - z = 5F - }; - var roiBoxUpperRightCornerInCheckerboardFrame = new Zivid.NET.PointXYZ - { - x = roiBoxLowerRightCornerInCheckerboardFrame.x, - y = roiBoxLowerRightCornerInCheckerboardFrame.y - roiBoxWidth, - z = roiBoxLowerRightCornerInCheckerboardFrame.z - }; - var roiBoxLowerLeftCornerInCheckerboardFrame = new Zivid.NET.PointXYZ - { - x = roiBoxLowerRightCornerInCheckerboardFrame.x - roiBoxLength, - y = roiBoxLowerRightCornerInCheckerboardFrame.y, - z = roiBoxLowerRightCornerInCheckerboardFrame.z - - }; - - var pointOInCheckerboardFrame = roiBoxLowerRightCornerInCheckerboardFrame; - var pointAInCheckerboardFrame = roiBoxUpperRightCornerInCheckerboardFrame; - var pointBInCheckerboardFrame = roiBoxLowerLeftCornerInCheckerboardFrame; - - Console.WriteLine("Detecting and estimating pose of the Zivid checkerboard in the camera frame"); - var detectionResult = Detector.DetectCalibrationBoard(originalFrame); - var cameraToCheckerboardTransform = new Zivid.NET.Matrix4x4(detectionResult.Pose().ToMatrix()); - - Console.WriteLine("Transforming the ROI base frame points to the camera frame"); - var roiPointsInCameraFrame = TransformPoints( - new List { pointOInCheckerboardFrame, pointAInCheckerboardFrame, pointBInCheckerboardFrame }, - cameraToCheckerboardTransform); - - Console.WriteLine("Setting the ROI"); - settings.RegionOfInterest.Box.Enabled = true; - settings.RegionOfInterest.Box.PointO = roiPointsInCameraFrame[0]; - settings.RegionOfInterest.Box.PointA = roiPointsInCameraFrame[1]; - settings.RegionOfInterest.Box.PointB = roiPointsInCameraFrame[2]; - settings.RegionOfInterest.Box.Extents = new Zivid.NET.Range(-10, roiBoxHeight); - - var roiFrame = camera.Capture(settings); - - Console.WriteLine("Displaying the ROI-filtered point cloud"); - VisualizeZividPointCloud(roiFrame); - } - catch (Exception ex) - { - Console.WriteLine("Error: " + ex.Message); - return 1; - } - return 0; - } - static void VisualizeZividPointCloud(Zivid.NET.Frame frame) - { - using (var visualizer = new Zivid.NET.Visualization.Visualizer()) - { - visualizer.Show(frame); - visualizer.ShowMaximized(); - visualizer.ResetToFit(); - Console.WriteLine("Running visualizer. Blocking until window closes."); - visualizer.Run(); - } - } - - static List> ZividToMathDotNet(List zividPoints) - { - var mathDotNetPoints = new List>(zividPoints.Count); - foreach (var point in zividPoints) - { - mathDotNetPoints.Add(CreateMatrix.DenseOfArray(new double[,] { { point.x }, { point.y }, { point.z } })); - } - return mathDotNetPoints; - } - - static Matrix ZividToMathDotNet(Matrix4x4 zividMatrix) - { - return CreateMatrix.DenseOfArray(zividMatrix.ToArray()).ToDouble(); - } - - public static List MathDotNetToZivid(List> mathDotNetPoints) - { - var zividPoints = new List(mathDotNetPoints.Count); - foreach (var point in mathDotNetPoints) - { - var zividPoint = new PointXYZ - { - x = (float)point[0, 0], - y = (float)point[1, 0], - z = (float)point[2, 0] - }; - zividPoints.Add(zividPoint); - } - return zividPoints; - } - static List TransformPoints(List zividPoints, Matrix4x4 zividTransform) - { - var mathDotNetPoints = ZividToMathDotNet(zividPoints); - var mathDotNetTransform = ZividToMathDotNet(zividTransform); - - var transformedMathDotNetPoints = new List>(mathDotNetPoints.Count); - for (int i = 0; i < mathDotNetPoints.Count; i++) - { - var transformedPoint = mathDotNetTransform.SubMatrix(0, 3, 0, 3) * mathDotNetPoints[i] + mathDotNetTransform.SubMatrix(0, 3, 3, 1); - transformedMathDotNetPoints.Add(transformedPoint); - } - - return MathDotNetToZivid(transformedMathDotNetPoints); - } -} diff --git a/source/Applications/Advanced/ROIBoxViaCheckerboard/ROIBoxViaCheckerboard.csproj b/source/Applications/Advanced/ROIBoxViaCheckerboard/ROIBoxViaCheckerboard.csproj deleted file mode 100644 index 9b620b8..0000000 --- a/source/Applications/Advanced/ROIBoxViaCheckerboard/ROIBoxViaCheckerboard.csproj +++ /dev/null @@ -1,86 +0,0 @@ - - - - - Debug - AnyCPU - {FDAE54C3-5924-462B-BCE9-E8C51CB637B3} - Exe - ROIBoxViaCheckerboard - ROIBoxViaCheckerboard - v4.6.1 - 512 - true - - - x64 - true - full - false - ..\..\..\..\build\$(Configuration)\$(Platform) - DEBUG;TRACE - prompt - 4 - true - - - x64 - pdbonly - true - ..\..\..\..\build\$(Configuration)\$(Platform) - TRACE - prompt - 4 - true - - - - ..\..\..\packages\MathNet.Numerics.4.12.0\lib\net461\MathNet.Numerics.dll - - - - - - - - - - - $(ZIVID_INSTALL_FOLDER)\bin\ZividCoreNET.dll - - - $(ZIVID_INSTALL_FOLDER)\bin_debug\ZividCoreNET.dll - - - $(ZIVID_INSTALL_FOLDER)\bin\ZividVisualizationNET.dll - - - $(ZIVID_INSTALL_FOLDER)\bin_debug\ZividVisualizationNET.dll - - - - - - - - - - - - if $(ConfigurationName) == Debug GOTO Debug -if $(ConfigurationName) == Release GOTO Release -goto Error - -:Debug -xcopy "$(ZIVID_INSTALL_FOLDER)\bin_debug\*.dll" "$(TargetDir)" /Y -exit /B 0 - -:Release -xcopy "$(ZIVID_INSTALL_FOLDER)\bin\*.dll" "$(TargetDir)" /Y -exit /B 0 - -:Error -echo Unsupported config -exit /B 1 - - \ No newline at end of file diff --git a/source/Applications/Advanced/ROIBoxViaCheckerboard/packages.config b/source/Applications/Advanced/ROIBoxViaCheckerboard/packages.config deleted file mode 100644 index ed08549..0000000 --- a/source/Applications/Advanced/ROIBoxViaCheckerboard/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/source/Applications/Advanced/TransformPointCloudFromMillimetersToMeters/TransformPointCloudFromMillimetersToMeters.cs b/source/Applications/Advanced/TransformPointCloudFromMillimetersToMeters/TransformPointCloudFromMillimetersToMeters.cs index 3f3825e..c5e3d23 100644 --- a/source/Applications/Advanced/TransformPointCloudFromMillimetersToMeters/TransformPointCloudFromMillimetersToMeters.cs +++ b/source/Applications/Advanced/TransformPointCloudFromMillimetersToMeters/TransformPointCloudFromMillimetersToMeters.cs @@ -20,11 +20,11 @@ static int Main() var frame = new Zivid.NET.Frame(dataFile); var pointCloud = frame.PointCloud; - var millimetersToMetersTransform = + var transformMillimetersToMeters = new float[,] { { 0.001F, 0, 0, 0 }, { 0, 0.001F, 0, 0 }, { 0, 0, 0.001F, 0 }, { 0, 0, 0, 1 } }; Console.WriteLine("Transforming point cloud from mm to m"); - pointCloud.Transform(millimetersToMetersTransform); + pointCloud.Transform(transformMillimetersToMeters); var transformedFile = "FrameInMeters.zdf"; Console.WriteLine("Saving frame to file: " + transformedFile); diff --git a/source/Applications/Advanced/TransformPointCloudViaArucoMarker/App.config b/source/Applications/Advanced/TransformPointCloudViaArucoMarker/App.config deleted file mode 100644 index 1ab2984..0000000 --- a/source/Applications/Advanced/TransformPointCloudViaArucoMarker/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/source/Applications/Advanced/TransformPointCloudViaArucoMarker/Properties/AssemblyInfo.cs b/source/Applications/Advanced/TransformPointCloudViaArucoMarker/Properties/AssemblyInfo.cs deleted file mode 100644 index d9ab936..0000000 --- a/source/Applications/Advanced/TransformPointCloudViaArucoMarker/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. - -[assembly: AssemblyTitle("TransformPointCloudViaArucoMarker")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("TransformPointCloudViaArucoMarker")] -[assembly: AssemblyCopyright("Copyright 2015-2022 (C) Zivid AS")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("2F721053-DE2A-4714-853C-CDDBB5828AB0")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision - -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] -[assembly: AssemblyInformationalVersion("1.0.0.0")] diff --git a/source/Applications/Advanced/TransformPointCloudViaArucoMarker/TransformPointCloudViaArucoMarker.cs b/source/Applications/Advanced/TransformPointCloudViaArucoMarker/TransformPointCloudViaArucoMarker.cs deleted file mode 100644 index d85aa4f..0000000 --- a/source/Applications/Advanced/TransformPointCloudViaArucoMarker/TransformPointCloudViaArucoMarker.cs +++ /dev/null @@ -1,58 +0,0 @@ -/* -Transform a point cloud from camera to ArUco marker coordinate frame by estimating the marker's pose from the point cloud. - -The ZDF file for this sample can be found under the main instructions for Zivid samples. -*/ - -using System; -using Zivid.NET.Calibration; -using System.Collections.Generic; - -class Program -{ - static int Main() - { - try - { - var zivid = new Zivid.NET.Application(); - - var calibrationBoardFile = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) - + "/Zivid/CalibrationBoardInCameraOrigin.zdf"; - Console.WriteLine("Reading ZDF frame from file: " + calibrationBoardFile); - var frame = new Zivid.NET.Frame(calibrationBoardFile); - var pointCloud = frame.PointCloud; - - Console.WriteLine("Configuring ArUco marker"); - var markerDictionary = Zivid.NET.MarkerDictionary.Aruco4x4_50; - var markerId = new List { 1 }; - - Console.WriteLine("Detecting ArUco marker"); - var detectionResult = Detector.DetectMarkers(frame, markerId, markerDictionary); - - Console.WriteLine("Estimating pose of detected ArUco marker"); - var cameraToMarkerTransform = new Zivid.NET.Matrix4x4(detectionResult.DetectedMarkers()[0].Pose().ToMatrix()); - Console.WriteLine("ArUco marker pose in camera frame:"); - Console.WriteLine(cameraToMarkerTransform); - Console.WriteLine("Camera pose in ArUco marker frame:"); - var markerToCameraTransform = cameraToMarkerTransform.Inverse(); - Console.WriteLine(markerToCameraTransform); - - var transformFile = "ArUcoMarkerToCameraTransform.yaml"; - Console.WriteLine("Saving a YAML file with Inverted ArUco marker pose to file: " + transformFile); - markerToCameraTransform.Save(transformFile); - - Console.WriteLine("Transforming point cloud from camera frame to ArUco marker frame"); - pointCloud.Transform(markerToCameraTransform); - - var arucoMarkerTransformedFile = "CalibrationBoardInArucoMarkerOrigin.zdf"; - Console.WriteLine("Saving transformed point cloud to file: " + arucoMarkerTransformedFile); - frame.Save(arucoMarkerTransformedFile); - } - catch (Exception ex) - { - Console.WriteLine("Error: " + ex.Message); - return 1; - } - return 0; - } -} diff --git a/source/Applications/Advanced/TransformPointCloudViaArucoMarker/TransformPointCloudViaArucoMarker.csproj b/source/Applications/Advanced/TransformPointCloudViaArucoMarker/TransformPointCloudViaArucoMarker.csproj deleted file mode 100644 index ee4ab8d..0000000 --- a/source/Applications/Advanced/TransformPointCloudViaArucoMarker/TransformPointCloudViaArucoMarker.csproj +++ /dev/null @@ -1,83 +0,0 @@ - - - - - Debug - AnyCPU - {2F721053-DE2A-4714-853C-CDDBB5828AB0} - Exe - TransformPointCloudViaArucoMarker - TransformPointCloudViaArucoMarker - v4.5.2 - 512 - true - - - x64 - true - full - false - ..\..\..\..\build\$(Configuration)\$(Platform) - DEBUG;TRACE - prompt - 4 - true - - - x64 - pdbonly - true - ..\..\..\..\build\$(Configuration)\$(Platform) - TRACE - prompt - 4 - true - - - - - - - - - - - - $(ZIVID_INSTALL_FOLDER)\bin\ZividCoreNET.dll - - - $(ZIVID_INSTALL_FOLDER)\bin_debug\ZividCoreNET.dll - - - $(ZIVID_INSTALL_FOLDER)\bin\ZividVisualizationNET.dll - - - $(ZIVID_INSTALL_FOLDER)\bin_debug\ZividVisualizationNET.dll - - - - - - - - - - - - if $(ConfigurationName) == Debug GOTO Debug -if $(ConfigurationName) == Release GOTO Release -goto Error - -:Debug -xcopy "$(ZIVID_INSTALL_FOLDER)\bin_debug\*.dll" "$(TargetDir)" /Y -exit /B 0 - -:Release -xcopy "$(ZIVID_INSTALL_FOLDER)\bin\*.dll" "$(TargetDir)" /Y -exit /B 0 - -:Error -echo Unsupported config -exit /B 1 - - \ No newline at end of file diff --git a/source/Applications/Advanced/TransformPointCloudViaCheckerboard/TransformPointCloudViaCheckerboard.cs b/source/Applications/Advanced/TransformPointCloudViaCheckerboard/TransformPointCloudViaCheckerboard.cs index af5ba9a..70183f0 100644 --- a/source/Applications/Advanced/TransformPointCloudViaCheckerboard/TransformPointCloudViaCheckerboard.cs +++ b/source/Applications/Advanced/TransformPointCloudViaCheckerboard/TransformPointCloudViaCheckerboard.cs @@ -23,19 +23,15 @@ static int Main() var pointCloud = frame.PointCloud; Console.WriteLine("Detecting and estimating pose of the Zivid checkerboard in the camera frame"); - var detectionResult = Detector.DetectCalibrationBoard(frame); - var cameraToCheckerboardTransform = new Zivid.NET.Matrix4x4(detectionResult.Pose().ToMatrix()); - Console.WriteLine(cameraToCheckerboardTransform); + var detectionResult = Detector.DetectFeaturePoints(pointCloud); + var transformCameraToCheckerboard = new Zivid.NET.Matrix4x4(detectionResult.Pose().ToMatrix()); + Console.WriteLine(transformCameraToCheckerboard); Console.WriteLine("Camera pose in checkerboard frame:"); - var checkerboardToCameraTransform = cameraToCheckerboardTransform.Inverse(); - Console.WriteLine(checkerboardToCameraTransform); - - var transformFile = "CheckerboardToCameraTransform.yaml"; - Console.WriteLine("Saving a YAML file with Inverted checkerboard pose to file: " + transformFile); - checkerboardToCameraTransform.Save(transformFile); + var transformCheckerboardToCamera = transformCameraToCheckerboard.Inverse(); + Console.WriteLine(transformCheckerboardToCamera); Console.WriteLine("Transforming point cloud from camera frame to Checkerboard frame"); - pointCloud.Transform(checkerboardToCameraTransform); + pointCloud.Transform(transformCheckerboardToCamera); var checkerboardTransformedFile = "CalibrationBoardInCheckerboardOrigin.zdf"; Console.WriteLine("Saving transformed point cloud to file: " + checkerboardTransformedFile); diff --git a/source/Applications/Basic/Visualization/ProjectImageStartAndStop/ProjectImageStartAndStop.cs b/source/Applications/Basic/Visualization/ProjectImageStartAndStop/ProjectImageStartAndStop.cs index ba5e91b..6d50613 100644 --- a/source/Applications/Basic/Visualization/ProjectImageStartAndStop/ProjectImageStartAndStop.cs +++ b/source/Applications/Basic/Visualization/ProjectImageStartAndStop/ProjectImageStartAndStop.cs @@ -36,13 +36,13 @@ static int Main() using (var camera = zivid.ConnectCamera()) { Console.WriteLine("Retrieving the projector resolution that the camera supports"); - var projectorResolution = Zivid.NET.Projection.Projection.ProjectorResolution(camera); + var projectorResolution = Zivid.NET.Experimental.Projection.Projection.ProjectorResolution(camera); var redColor = new Zivid.NET.ColorBGRA { b = 0, g = 0, r = 255, a = 255 }; var projectorImage = CreateProjectorImage(projectorResolution, redColor); - var projectedImageHandle = Zivid.NET.Projection.Projection.ShowImage(camera, projectorImage); + var projectedImageHandle = Zivid.NET.Experimental.Projection.Projection.ShowImage(camera, projectorImage); Console.WriteLine("Press enter to stop projecting using the \".Stop()\" function"); Console.ReadLine(); @@ -50,7 +50,7 @@ static int Main() var greenColor = new Zivid.NET.ColorBGRA { b = 0, g = 255, r = 0, a = 255 }; projectorImage = CreateProjectorImage(projectorResolution, greenColor); - using (projectedImageHandle = Zivid.NET.Projection.Projection.ShowImage(camera, projectorImage)) + using (projectedImageHandle = Zivid.NET.Experimental.Projection.Projection.ShowImage(camera, projectorImage)) { Console.WriteLine("Press enter to stop projecting by leaving a local scope"); Console.ReadLine(); @@ -58,7 +58,7 @@ static int Main() var zividPinkColor = new Zivid.NET.ColorBGRA { b = 114, g = 52, r = 237, a = 255 }; projectorImage = CreateProjectorImage(projectorResolution, zividPinkColor); - projectedImageHandle = Zivid.NET.Projection.Projection.ShowImage(camera, projectorImage); + projectedImageHandle = Zivid.NET.Experimental.Projection.Projection.ShowImage(camera, projectorImage); Console.WriteLine("Press enter to stop projecting by performing a 3D capture"); Console.ReadLine(); diff --git a/source/Applications/Basic/Visualization/ReadAndProjectImage/ReadAndProjectImage.cs b/source/Applications/Basic/Visualization/ReadAndProjectImage/ReadAndProjectImage.cs index d9791bd..b6143ba 100644 --- a/source/Applications/Basic/Visualization/ReadAndProjectImage/ReadAndProjectImage.cs +++ b/source/Applications/Basic/Visualization/ReadAndProjectImage/ReadAndProjectImage.cs @@ -23,7 +23,7 @@ static int Main() Console.WriteLine("Reading 2D image (of resolution matching the Zivid camera projector resolution) from file: " + projectorImageFileForGivenCamera); var projectorImageForGivenCamera = new Zivid.NET.ImageBGRA(projectorImageFileForGivenCamera); - using (var projectedImageHandle = Zivid.NET.Projection.Projection.ShowImage(camera, projectorImageForGivenCamera)) + using (var projectedImageHandle = Zivid.NET.Experimental.Projection.Projection.ShowImage(camera, projectorImageForGivenCamera)) { // A Local Scope to handle the projected image lifetime var settings2D = new Zivid.NET.Settings2D diff --git a/source/Applications/PointCloudTutorial.md b/source/Applications/PointCloudTutorial.md index ce16972..5f20157 100644 --- a/source/Applications/PointCloudTutorial.md +++ b/source/Applications/PointCloudTutorial.md @@ -32,12 +32,10 @@ data. Tip: -> If you prefer watching a video, our webinar [Getting your point cloud -> ready for your -> application](https://www.zivid.com/webinars-page?wchannelid=ffpqbqc7sg&wmediaid=h66zph71vo) -> covers the Point Cloud Tutorial. - -**Prerequisites** +If you prefer watching a video, our webinar [Getting your point cloud +ready for your +application](https://www.zivid.com/webinars-page?wchannelid=ffpqbqc7sg&wmediaid=h66zph71vo) +covers the Point Cloud Tutorial. .. rubric:: Prerequisites - Install [Zivid Software](https://support.zivid.com/latest//getting-started/software-installation.html). @@ -103,13 +101,11 @@ copying from GPU memory. Note: -`Zivid.NET.Camera.Capture()` method returns at some moment in time after -the camera completes capturing raw images. The handle from -`Zivid.NET.Frame.PointCloud` is available instantly. However, the actual -point cloud data becomes available only after the processing on the GPU -is finished. Any calls to data-copy methods (section below) will block -and wait for processing to finish before proceeding with the requested -copy operation. +The handle from `Zivid.NET.Frame.PointCloud` is available instantly. +However, the actual point cloud data becomes available only after the +processing on the GPU is finished. Any calls to data-copy methods +(section below) will block and wait for processing to finish before +proceeding with the requested copy operation. For detailed explanation, see [Point Cloud Capture Process](https://support.zivid.com/latest/academy/camera/point-cloud-capture-process.html). @@ -178,11 +174,10 @@ the point cloud. Note: -> [Monochrome -> Capture](https://support.zivid.com/latest/academy/camera/monochrome-capture.html) -> is a hardware-based subsample method that reduces the resolution of -> the point cloud during capture while also reducing the acquisition and -> capture time. +[Monochrome +Capture](https://support.zivid.com/latest/academy/camera/monochrome-capture.html) +is a hardware-based subsample method that reduces the resolution of the +point cloud during capture while also reducing the capture time. ----- diff --git a/source/Camera/Advanced/CaptureHDRLoop/CaptureHDRLoop.cs b/source/Camera/Advanced/CaptureHDRLoop/CaptureHDRLoop.cs index 24ce7e5..2a7c295 100644 --- a/source/Camera/Advanced/CaptureHDRLoop/CaptureHDRLoop.cs +++ b/source/Camera/Advanced/CaptureHDRLoop/CaptureHDRLoop.cs @@ -47,6 +47,9 @@ static string SettingsFolder(Zivid.NET.Camera camera) var model = camera.Info.Model; switch (model) { + case Zivid.NET.CameraInfo.ModelOption.ZividOnePlusSmall: return "zividOne"; + case Zivid.NET.CameraInfo.ModelOption.ZividOnePlusMedium: return "zividOne"; + case Zivid.NET.CameraInfo.ModelOption.ZividOnePlusLarge: return "zividOne"; case Zivid.NET.CameraInfo.ModelOption.ZividTwo: return "zivid2"; case Zivid.NET.CameraInfo.ModelOption.ZividTwoL100: return "zivid2"; case Zivid.NET.CameraInfo.ModelOption.Zivid2PlusM130: return "zivid2Plus"; diff --git a/source/Camera/Basic/CaptureAssistant/CaptureAssistant.cs b/source/Camera/Basic/CaptureAssistant/CaptureAssistant.cs index b3e9799..35138e1 100644 --- a/source/Camera/Basic/CaptureAssistant/CaptureAssistant.cs +++ b/source/Camera/Basic/CaptureAssistant/CaptureAssistant.cs @@ -5,7 +5,7 @@ using System; using Duration = Zivid.NET.Duration; using ReflectionFilterModeOption = - Zivid.NET.Settings.ProcessingGroup.FiltersGroup.ReflectionGroup.RemovalGroup.ModeOption; + Zivid.NET.Settings.ProcessingGroup.FiltersGroup.ReflectionGroup.RemovalGroup.ExperimentalGroup.ModeOption; class Program { @@ -34,7 +34,7 @@ static int Main() Console.WriteLine( "Manually configuring processing settings (Capture Assistant only suggests acquisition settings)"); settings.Processing.Filters.Reflection.Removal.Enabled = true; - settings.Processing.Filters.Reflection.Removal.Mode = ReflectionFilterModeOption.Global; + settings.Processing.Filters.Reflection.Removal.Experimental.Mode = ReflectionFilterModeOption.Global; settings.Processing.Filters.Smoothing.Gaussian.Enabled = true; settings.Processing.Filters.Smoothing.Gaussian.Sigma = 1.5; diff --git a/source/Camera/Basic/CaptureFromFileCamera/CaptureFromFileCamera.cs b/source/Camera/Basic/CaptureFromFileCamera/CaptureFromFileCamera.cs index 45fd74d..042fda8 100644 --- a/source/Camera/Basic/CaptureFromFileCamera/CaptureFromFileCamera.cs +++ b/source/Camera/Basic/CaptureFromFileCamera/CaptureFromFileCamera.cs @@ -10,7 +10,7 @@ See the instructions in README.md to download the Zivid Sample Data. using System; using ReflectionFilterModeOption = - Zivid.NET.Settings.ProcessingGroup.FiltersGroup.ReflectionGroup.RemovalGroup.ModeOption; + Zivid.NET.Settings.ProcessingGroup.FiltersGroup.ReflectionGroup.RemovalGroup.ExperimentalGroup.ModeOption; class Program { @@ -40,7 +40,7 @@ static int Main(string[] args) { Acquisitions = { new Zivid.NET.Settings.Acquisition { } }, Processing = { Filters = { Smoothing = { Gaussian = { Enabled = true, Sigma = 1.5 } }, - Reflection = { Removal = { Enabled = true, Mode = ReflectionFilterModeOption.Global} } }, + Reflection = { Removal = { Enabled = true, Experimental = { Mode = ReflectionFilterModeOption.Global} } } }, Color = { Balance = { Red = 1.0, Green = 1.0, Blue = 1.0 } } } }; diff --git a/source/Camera/Basic/CaptureHDRCompleteSettings/CaptureHDRCompleteSettings.cs b/source/Camera/Basic/CaptureHDRCompleteSettings/CaptureHDRCompleteSettings.cs index 59bd4f3..62b4268 100644 --- a/source/Camera/Basic/CaptureHDRCompleteSettings/CaptureHDRCompleteSettings.cs +++ b/source/Camera/Basic/CaptureHDRCompleteSettings/CaptureHDRCompleteSettings.cs @@ -16,7 +16,7 @@ This sample also demonstrates how to save and load settings from file. using ColorModeOption = Zivid.NET.Settings.ProcessingGroup.ColorGroup.ExperimentalGroup.ModeOption; using ReflectionFilterModeOption = - Zivid.NET.Settings.ProcessingGroup.FiltersGroup.ReflectionGroup.RemovalGroup.ModeOption; + Zivid.NET.Settings.ProcessingGroup.FiltersGroup.ReflectionGroup.RemovalGroup.ExperimentalGroup.ModeOption; class Program { static int Main() @@ -31,8 +31,8 @@ static int Main() Console.WriteLine("Configuring settings for capture:"); var settings = new Zivid.NET.Settings() { - Engine = Zivid.NET.Settings.EngineOption.Phase, - Sampling = { Color = Zivid.NET.Settings.SamplingGroup.ColorOption.Rgb, Pixel = Zivid.NET.Settings.SamplingGroup.PixelOption.BlueSubsample2x2 }, + Experimental = { Engine = Zivid.NET.Settings.ExperimentalGroup.EngineOption.Phase }, + Sampling = { Color = Zivid.NET.Settings.SamplingGroup.ColorOption.Rgb, Pixel = Zivid.NET.Settings.SamplingGroup.PixelOption.All }, RegionOfInterest = { Box = { Enabled = true, PointO = new Zivid.NET.PointXYZ{ x = 1000, y = 1000, z = 1000 }, @@ -51,14 +51,15 @@ static int Main() Suppression = { Enabled = true }, Repair ={ Enabled = true } }, Outlier = { Removal = { Enabled = true, Threshold = 5.0 } }, - Reflection = { Removal = { Enabled = true, Mode = ReflectionFilterModeOption.Global} }, + Reflection = { Removal = { Enabled = true, Experimental = { Mode = ReflectionFilterModeOption.Global} } }, Cluster = { Removal = { Enabled = true, MaxNeighborDistance = 10, MinArea = 100} }, - Hole = { Repair = { Enabled = true, HoleSize = 0.2, Strictness = 1 } }, Experimental = { ContrastDistortion = { Correction = { Enabled = true, Strength = 0.4 }, Removal = { Enabled = true, - Threshold = 0.5 } } } }, - Resampling = { Mode = Zivid.NET.Settings.ProcessingGroup.ResamplingGroup.ModeOption.Upsample2x2}, + Threshold = 0.5 } }, + HoleFilling = { Enabled = true, + HoleSize = 0.2, + Strictness = 1 } } }, Color = { Balance = { Red = 1.0, Green = 1.0, Blue = 1.0 }, Gamma = 1.0, Experimental = { Mode = ColorModeOption.Automatic } } } @@ -124,6 +125,16 @@ static Tuple GetExposureValues(Zivid.N var model = camera.Info.Model; switch (model) { + case Zivid.NET.CameraInfo.ModelOption.ZividOnePlusSmall: + case Zivid.NET.CameraInfo.ModelOption.ZividOnePlusMedium: + case Zivid.NET.CameraInfo.ModelOption.ZividOnePlusLarge: + { + double[] aperture = { 8.0, 4.0, 1.4 }; + Duration[] exposureTime = { Duration.FromMicroseconds(6500), Duration.FromMicroseconds(10000), Duration.FromMicroseconds(40000) }; + double[] gain = { 1.0, 1.0, 2.0 }; + double[] brightness = { 1.8, 1.8, 1.8 }; + return Tuple.Create(aperture, exposureTime, gain, brightness); + } case Zivid.NET.CameraInfo.ModelOption.ZividTwo: case Zivid.NET.CameraInfo.ModelOption.ZividTwoL100: { diff --git a/source/Camera/Basic/CaptureTutorial.md b/source/Camera/Basic/CaptureTutorial.md index 8c2ed20..9c6aa19 100644 --- a/source/Camera/Basic/CaptureTutorial.md +++ b/source/Camera/Basic/CaptureTutorial.md @@ -14,7 +14,6 @@ tutorial see: [**Connect**](#Connect) | [**Configure**](#Configure) | [**Capture**](#Capture) | -[**Save**](#Save) | [**Multithreading**](#Multithreading) | [**Conclusion**](#Conclusion) @@ -34,12 +33,11 @@ MATLAB](https://github.com/zivid/zivid-matlab-samples/blob/master/source/Camera/ Tip: -> If you prefer watching a video, our webinar [Making 3D captures easy - -> A tour of Zivid Studio and Zivid -> SDK](https://www.zivid.com/webinars-page?wchannelid=ffpqbqc7sg&wmediaid=ce68dbjldk) -> covers the same content as the Capture Tutorial. - -**Prerequisites** +If you prefer watching a video, our webinar [Making 3D captures easy - A +tour of Zivid Studio and Zivid +SDK](https://www.zivid.com/webinars-page?wchannelid=ffpqbqc7sg&wmediaid=ce68dbjldk) +covers the same content as the Capture Tutorial. .. rubric:: +Prerequisites - Install [Zivid Software](https://support.zivid.com/latest//getting-started/software-installation.html). @@ -92,7 +90,7 @@ var camera = zivid.ConnectCamera(new Zivid.NET.CameraInfo.SerialNumber("2020C0DE Note: -> The serial number of your camera is shown in the Zivid Studio. +The serial number of your camera is shown in the Zivid Studio. ----- @@ -148,7 +146,7 @@ var settings = new Zivid.NET.Settings { Acquisitions = { new Zivid.NET.Settings.Acquisition { } }, Processing = { Filters = { Smoothing = { Gaussian = { Enabled = true, Sigma = 1.5 } }, - Reflection = { Removal = { Enabled = true, Mode = ReflectionFilterModeOption.Global} } }, + Reflection = { Removal = { Enabled = true, Experimental = { Mode = ReflectionFilterModeOption.Global} } } }, Color = { Balance = { Red = 1.0, Green = 1.0, Blue = 1.0 } } } }; ``` @@ -211,8 +209,8 @@ There are only two parameters to configure with Capture Assistant: Another option is to configure settings manually. For more information about what each settings does, please see [Camera Settings](https://support.zivid.com/latest/reference-articles/camera-settings.html). -Then, the next step it's [Capturing High Quality Point -Clouds](https://support.zivid.com/latest/academy/camera/capturing-high-quality-point-clouds.html) +Note that Zivid 2 has a set of [standard +settings](https://support.zivid.com/latest//reference-articles/standard-acquisition-settings-zivid-two.html). #### Single Acquisition @@ -249,14 +247,14 @@ foreach (var aperture in new double[] { 9.57, 4.76, 2.59 }) Fully configured settings are demonstrated below. ([go to -source](https://github.com/zivid/zivid-csharp-samples/tree/master//source/Camera/Basic/CaptureHDRCompleteSettings/CaptureHDRCompleteSettings.cs#L31-L93)) +source](https://github.com/zivid/zivid-csharp-samples/tree/master//source/Camera/Basic/CaptureHDRCompleteSettings/CaptureHDRCompleteSettings.cs#L31-L94)) ``` sourceCode cs Console.WriteLine("Configuring settings for capture:"); var settings = new Zivid.NET.Settings() { - Engine = Zivid.NET.Settings.EngineOption.Phase, - Sampling = { Color = Zivid.NET.Settings.SamplingGroup.ColorOption.Rgb, Pixel = Zivid.NET.Settings.SamplingGroup.PixelOption.BlueSubsample2x2 }, + Experimental = { Engine = Zivid.NET.Settings.ExperimentalGroup.EngineOption.Phase }, + Sampling = { Color = Zivid.NET.Settings.SamplingGroup.ColorOption.Rgb, Pixel = Zivid.NET.Settings.SamplingGroup.PixelOption.All }, RegionOfInterest = { Box = { Enabled = true, PointO = new Zivid.NET.PointXYZ{ x = 1000, y = 1000, z = 1000 }, @@ -275,14 +273,15 @@ var settings = new Zivid.NET.Settings() Suppression = { Enabled = true }, Repair ={ Enabled = true } }, Outlier = { Removal = { Enabled = true, Threshold = 5.0 } }, - Reflection = { Removal = { Enabled = true, Mode = ReflectionFilterModeOption.Global} }, + Reflection = { Removal = { Enabled = true, Experimental = { Mode = ReflectionFilterModeOption.Global} } }, Cluster = { Removal = { Enabled = true, MaxNeighborDistance = 10, MinArea = 100} }, - Hole = { Repair = { Enabled = true, HoleSize = 0.2, Strictness = 1 } }, Experimental = { ContrastDistortion = { Correction = { Enabled = true, Strength = 0.4 }, Removal = { Enabled = true, - Threshold = 0.5 } } } }, - Resampling = { Mode = Zivid.NET.Settings.ProcessingGroup.ResamplingGroup.ModeOption.Upsample2x2}, + Threshold = 0.5 } }, + HoleFilling = { Enabled = true, + HoleSize = 0.2, + Strictness = 1 } } }, Color = { Balance = { Red = 1.0, Green = 1.0, Blue = 1.0 }, Gamma = 1.0, Experimental = { Mode = ColorModeOption.Automatic } } } @@ -344,7 +343,7 @@ Check out for recommended .yml files tuned for your application. ([go to -source](https://github.com/zivid/zivid-csharp-samples/tree/master//source/Camera/Basic/CaptureHDRCompleteSettings/CaptureHDRCompleteSettings.cs#L105-L110)) +source](https://github.com/zivid/zivid-csharp-samples/tree/master//source/Camera/Basic/CaptureHDRCompleteSettings/CaptureHDRCompleteSettings.cs#L106-L111)) ``` sourceCode cs var settingsFile = "Settings.yml"; @@ -357,7 +356,7 @@ var settingsFromFile = new Zivid.NET.Settings(settingsFile); You can also save settings to .yml file. ([go to -source](https://github.com/zivid/zivid-csharp-samples/tree/master//source/Camera/Basic/CaptureHDRCompleteSettings/CaptureHDRCompleteSettings.cs#L105-L107)) +source](https://github.com/zivid/zivid-csharp-samples/tree/master//source/Camera/Basic/CaptureHDRCompleteSettings/CaptureHDRCompleteSettings.cs#L106-L108)) ``` sourceCode cs var settingsFile = "Settings.yml"; @@ -415,7 +414,16 @@ source](https://github.com/zivid/zivid-csharp-samples/tree/master//source/Camera using (var frame2D = camera.Capture(settings2D)) ``` -## Save +----- + +Caution\!: + +> Zivid One+ camera has a time penalty when changing the capture mode +> (2D and 3D) if the 2D capture settings use brightness \> 0. + +You can read more about it in [2D and 3D switching +limitation](https://support.zivid.com/latest//support/2d-3d-switching-limitation.html). +Save ---- We can now save our results. @@ -431,10 +439,9 @@ frame.Save(dataFile); Tip: -> You can open and view `Frame.zdf` file in [Zivid -> Studio](https://support.zivid.com/latest//getting-started/studio-guide.html). - -### Export +You can open and view `Frame.zdf` file in [Zivid +Studio](https://support.zivid.com/latest//getting-started/studio-guide.html). +Export ^^^^^^ The API detects which format to use. See [Point Cloud](https://support.zivid.com/latest//reference-articles/point-cloud-structure-and-output-formats.html) @@ -453,11 +460,8 @@ frame.Save(dataFilePLY); We can get 2D color image from a 3D capture. -``` sourceCode csharp -var image = PointCloud.CopyImageRGBA(); -``` - -2D captures also produce 2D color images. +No source available for {language\_name}2D captures also produce 2D +color images. ([go to source](https://github.com/zivid/zivid-csharp-samples/tree/master//source/Camera/Basic/Capture2D/Capture2D.cs#L33)) diff --git a/source/Camera/Basic/CaptureWithSettingsFromYML/CaptureWithSettingsFromYML.cs b/source/Camera/Basic/CaptureWithSettingsFromYML/CaptureWithSettingsFromYML.cs index e98865b..a6f884b 100644 --- a/source/Camera/Basic/CaptureWithSettingsFromYML/CaptureWithSettingsFromYML.cs +++ b/source/Camera/Basic/CaptureWithSettingsFromYML/CaptureWithSettingsFromYML.cs @@ -44,6 +44,9 @@ static string SettingsFolder(Zivid.NET.Camera camera) var model = camera.Info.Model; switch (model) { + case Zivid.NET.CameraInfo.ModelOption.ZividOnePlusSmall: return "zividOne"; + case Zivid.NET.CameraInfo.ModelOption.ZividOnePlusMedium: return "zividOne"; + case Zivid.NET.CameraInfo.ModelOption.ZividOnePlusLarge: return "zividOne"; case Zivid.NET.CameraInfo.ModelOption.ZividTwo: return "zivid2"; case Zivid.NET.CameraInfo.ModelOption.ZividTwoL100: return "zivid2"; case Zivid.NET.CameraInfo.ModelOption.Zivid2PlusM130: return "zivid2Plus"; diff --git a/source/Camera/InfoUtilOther/AutomaticNetworkConfigurationForCameras/App.config b/source/Camera/InfoUtilOther/AutomaticNetworkConfigurationForCameras/App.config deleted file mode 100644 index 4828147..0000000 --- a/source/Camera/InfoUtilOther/AutomaticNetworkConfigurationForCameras/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/source/Camera/InfoUtilOther/AutomaticNetworkConfigurationForCameras/AutomaticNetworkConfigurationForCameras.cs b/source/Camera/InfoUtilOther/AutomaticNetworkConfigurationForCameras/AutomaticNetworkConfigurationForCameras.cs deleted file mode 100644 index f405cbf..0000000 --- a/source/Camera/InfoUtilOther/AutomaticNetworkConfigurationForCameras/AutomaticNetworkConfigurationForCameras.cs +++ /dev/null @@ -1,117 +0,0 @@ -/* -Automatically set the IP addresses of any number of cameras to be in the same subnet as the provided IP address of the network interface. -*/ - -using System; -using System.Net; -using Zivid.NET; - -class Program -{ - - static int Main(string[] args) - { - try - { - var (ipAddress, subnetMask) = ParseOptions(args); - AssertUserInput(ipAddress, subnetMask); - var ipAddressOctets = IPAddress.Parse(ipAddress).GetAddressBytes(); - - // defines the last octet of the ip address of the first Zivid camera. Eg.: x.x.x.2 - int nextIpAddressLastOctet = 2; - var newIpAddressOctets = ipAddressOctets; - - var zivid = new Zivid.NET.Application(); - var cameras = zivid.Cameras; - - if (cameras.Count == 0) - { - throw new InvalidOperationException("No cameras connected"); - } - - foreach (var camera in cameras) - { - if (nextIpAddressLastOctet == ipAddressOctets[3]) - { - nextIpAddressLastOctet += 1; - } - - newIpAddressOctets[3] = (byte)nextIpAddressLastOctet; - IPAddress newIpAddress = new IPAddress(newIpAddressOctets); - - var newConfig = new Zivid.NET.NetworkConfiguration() - { - IPV4 = { - Mode = Zivid.NET.NetworkConfiguration.IPV4Group.ModeOption.Manual, - Address = newIpAddress.ToString(), - SubnetMask = subnetMask, - } - }; - - nextIpAddressLastOctet += 1; - - Console.WriteLine($"Applying network configuration to camera {camera.Info.SerialNumber}"); - camera.ApplyNetworkConfiguration(newConfig); - Console.WriteLine($"New {camera.NetworkConfiguration}\n"); - } - } - catch (Exception ex) - { - Console.WriteLine("Error: " + ex.Message); - return 1; - } - return 0; - } - - static void UsageException(string message) - { - throw new ArgumentException(message + "\nUsage: --interface-ipv4 [--subnet-mask ]"); - } - - static (string, string) ParseOptions(string[] args) - { - string ipAddress = null; - string subnetMask = "255.255.255.0"; - - for (int i = 0; i < args.Length; i++) - { - if (args[i].Equals("--interface-ipv4")) - { - if (i + 1 < args.Length) - { - ipAddress = args[i + 1]; - i++; - continue; - } - UsageException("Expected IP address of the PC network interface after --interface-ipv4"); - } - if (args[i].Equals("--subnet-mask")) - { - if (i + 1 < args.Length) - { - subnetMask = args[i + 1]; - i++; - continue; - } - UsageException("Expected subnet mask after --subnet-mask"); - } - UsageException("Unrecognized argument"); - } - if (ipAddress == null) - { - UsageException("IPV4 address of the network interface is required"); - } - return (ipAddress, subnetMask); - } - - static void AssertUserInput(string ipAddress, string subnetMask) - { - new Zivid.NET.NetworkConfiguration() - { - IPV4 = { - Address = ipAddress, - SubnetMask = subnetMask, - } - }; - } -} diff --git a/source/Camera/InfoUtilOther/AutomaticNetworkConfigurationForCameras/AutomaticNetworkConfigurationForCameras.csproj b/source/Camera/InfoUtilOther/AutomaticNetworkConfigurationForCameras/AutomaticNetworkConfigurationForCameras.csproj deleted file mode 100644 index 392d2b5..0000000 --- a/source/Camera/InfoUtilOther/AutomaticNetworkConfigurationForCameras/AutomaticNetworkConfigurationForCameras.csproj +++ /dev/null @@ -1,85 +0,0 @@ - - - - - Debug - AnyCPU - {FEE22B4E-A257-443B-8B29-E1C8124A18F4} - Exe - Properties - AutomaticNetworkConfigurationForCameras - AutomaticNetworkConfigurationForCameras - v4.5.2 - 512 - true - - - true - ..\..\..\..\build\$(Configuration)\$(Platform) - DEBUG;TRACE - full - x64 - prompt - MinimumRecommendedRules.ruleset - true - true - true - - - ..\..\..\..\build\$(Configuration)\$(Platform) - TRACE - true - pdbonly - x64 - prompt - MinimumRecommendedRules.ruleset - true - true - true - - - - ..\..\..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll - - - - - - - - - - - $(ZIVID_INSTALL_FOLDER)\bin\ZividCoreNET.dll - - - $(ZIVID_INSTALL_FOLDER)\bin_debug\ZividCoreNET.dll - - - - - - - - - - - - if $(ConfigurationName) == Debug GOTO Debug -if $(ConfigurationName) == Release GOTO Release -goto Error - -:Debug -xcopy "$(ZIVID_INSTALL_FOLDER)\bin_debug\*.dll" "$(TargetDir)" /Y -exit /B 0 - -:Release -xcopy "$(ZIVID_INSTALL_FOLDER)\bin\*.dll" "$(TargetDir)" /Y -exit /B 0 - -:Error -echo Unsupported config -exit /B 1 - - - \ No newline at end of file diff --git a/source/Camera/InfoUtilOther/AutomaticNetworkConfigurationForCameras/Properties/AssemblyInfo.cs b/source/Camera/InfoUtilOther/AutomaticNetworkConfigurationForCameras/Properties/AssemblyInfo.cs deleted file mode 100644 index 91d0496..0000000 --- a/source/Camera/InfoUtilOther/AutomaticNetworkConfigurationForCameras/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. - -[assembly: AssemblyTitle("AutomaticNetworkConfigurationForCameras")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("AutomaticNetworkConfigurationForCameras")] -[assembly: AssemblyCopyright("Copyright 2015-2021 (C) Zivid AS")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("FEE22B4E-A257-443B-8B29-E1C8124A18F4")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision - -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] -[assembly: AssemblyInformationalVersion("1.0.0.0")] diff --git a/source/Camera/InfoUtilOther/AutomaticNetworkConfigurationForCameras/packages.config b/source/Camera/InfoUtilOther/AutomaticNetworkConfigurationForCameras/packages.config deleted file mode 100644 index 8fd9745..0000000 --- a/source/Camera/InfoUtilOther/AutomaticNetworkConfigurationForCameras/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/source/Camera/InfoUtilOther/CaptureWithDiagnostics/CaptureWithDiagnostics.cs b/source/Camera/InfoUtilOther/CaptureWithDiagnostics/CaptureWithDiagnostics.cs index 4c74467..a35f207 100644 --- a/source/Camera/InfoUtilOther/CaptureWithDiagnostics/CaptureWithDiagnostics.cs +++ b/source/Camera/InfoUtilOther/CaptureWithDiagnostics/CaptureWithDiagnostics.cs @@ -51,7 +51,10 @@ static string SettingsFolder(Zivid.NET.Camera camera) var model = camera.Info.Model; switch (model) { - case Zivid.NET.CameraInfo.ModelOption.ZividTwo: return "zivid2"; + case Zivid.NET.CameraInfo.ModelOption.ZividOnePlusSmall: return "zividOne"; + case Zivid.NET.CameraInfo.ModelOption.ZividOnePlusMedium: return "zividOne"; + case Zivid.NET.CameraInfo.ModelOption.ZividOnePlusLarge: return "zividOne"; + case Zivid.NET.CameraInfo.ModelOption.ZividTwo: return "zividTwo"; case Zivid.NET.CameraInfo.ModelOption.ZividTwoL100: return "zivid2"; case Zivid.NET.CameraInfo.ModelOption.Zivid2PlusM130: return "zivid2Plus"; case Zivid.NET.CameraInfo.ModelOption.Zivid2PlusM60: return "zivid2Plus"; diff --git a/source/Camera/InfoUtilOther/GetCameraIntrinsics/GetCameraIntrinsics.cs b/source/Camera/InfoUtilOther/GetCameraIntrinsics/GetCameraIntrinsics.cs index 2061f3d..195e8e7 100644 --- a/source/Camera/InfoUtilOther/GetCameraIntrinsics/GetCameraIntrinsics.cs +++ b/source/Camera/InfoUtilOther/GetCameraIntrinsics/GetCameraIntrinsics.cs @@ -82,20 +82,30 @@ static int Main() Console.WriteLine($"\nAperture: {aperture,5:f2}, Lens Temperature: {temperature,5:f2}°C"); PrintIntrinsicParametersDelta(intrinsics, estimatedIntrinsics); } - var settingsSubsampled = new Zivid.NET.Settings(); - settingsSubsampled.Acquisitions.Add(new Zivid.NET.Settings.Acquisition { }); - settingsSubsampled.Sampling.Pixel = Zivid.NET.Settings.SamplingGroup.PixelOption.BlueSubsample2x2; - var fixedIntrinsicsForSubsampledSettingsPath = "FixedIntrinsicsSubsampledBlue2x2.yml"; - Console.WriteLine("Saving camera intrinsics for subsampled capture to file: " + fixedIntrinsicsForSubsampledSettingsPath); - var fixedIntrinsicsForSubsampledSettings = Zivid.NET.Experimental.Calibration.Calibrator.Intrinsics(camera, settingsSubsampled); - fixedIntrinsicsForSubsampledSettings.Save(fixedIntrinsicsForSubsampledSettingsPath); - var frameSubsampled = camera.Capture(settingsSubsampled); - var estimatedIntrinsicsForSubsampledSettings = Zivid.NET.Experimental.Calibration.Calibrator.EstimateIntrinsics(frameSubsampled); - var estimatedIntrinsicsForSubsampledSettingsPath = "EstimatedIntrinsicsFromSubsampledBlue2x2Capture.yml"; - Console.WriteLine("Saving estimated camera intrinsics for subsampled capture to file: " + fixedIntrinsicsForSubsampledSettingsPath); - estimatedIntrinsicsForSubsampledSettings.Save(estimatedIntrinsicsForSubsampledSettingsPath); - Console.WriteLine("\nDifference between fixed and estimated intrinsics for subsampled point cloud:"); - PrintIntrinsicParametersDelta(fixedIntrinsicsForSubsampledSettings, estimatedIntrinsicsForSubsampledSettings); + + if (camera.Info.Model != Zivid.NET.CameraInfo.ModelOption.ZividOnePlusSmall && + camera.Info.Model != Zivid.NET.CameraInfo.ModelOption.ZividOnePlusMedium && + camera.Info.Model != Zivid.NET.CameraInfo.ModelOption.ZividOnePlusLarge) + { + var settingsSubsampled = new Zivid.NET.Settings(); + settingsSubsampled.Acquisitions.Add(new Zivid.NET.Settings.Acquisition { }); + settingsSubsampled.Sampling.Pixel = Zivid.NET.Settings.SamplingGroup.PixelOption.BlueSubsample2x2; + var fixedIntrinsicsForSubsampledSettingsPath = "FixedIntrinsicsSubsampledBlue2x2.yml"; + Console.WriteLine("Saving camera intrinsics for subsampled capture to file: " + fixedIntrinsicsForSubsampledSettingsPath); + var fixedIntrinsicsForSubsampledSettings = Zivid.NET.Experimental.Calibration.Calibrator.Intrinsics(camera, settingsSubsampled); + fixedIntrinsicsForSubsampledSettings.Save(fixedIntrinsicsForSubsampledSettingsPath); + var frame = camera.Capture(settingsSubsampled); + var estimatedIntrinsicsForSubsampledSettings = Zivid.NET.Experimental.Calibration.Calibrator.EstimateIntrinsics(frame); + var estimatedIntrinsicsForSubsampledSettingsPath = "EstimatedIntrinsicsFromSubsampledBlue2x2Capture.yml"; + Console.WriteLine("Saving estimated camera intrinsics for subsampled capture to file: " + fixedIntrinsicsForSubsampledSettingsPath); + estimatedIntrinsicsForSubsampledSettings.Save(estimatedIntrinsicsForSubsampledSettingsPath); + Console.WriteLine("\nDifference between fixed and estimated intrinsics for subsampled point cloud:"); + PrintIntrinsicParametersDelta(fixedIntrinsicsForSubsampledSettings, estimatedIntrinsicsForSubsampledSettings); + } + else + { + Console.WriteLine(camera.Info.ModelName + " does not support sub-sampled mode."); + } } catch (Exception ex) { diff --git a/source/Camera/InfoUtilOther/NetworkConfiguration/App.config b/source/Camera/InfoUtilOther/NetworkConfiguration/App.config deleted file mode 100644 index 4828147..0000000 --- a/source/Camera/InfoUtilOther/NetworkConfiguration/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/source/Camera/InfoUtilOther/NetworkConfiguration/NetworkConfiguration.cs b/source/Camera/InfoUtilOther/NetworkConfiguration/NetworkConfiguration.cs deleted file mode 100644 index 0e9d16b..0000000 --- a/source/Camera/InfoUtilOther/NetworkConfiguration/NetworkConfiguration.cs +++ /dev/null @@ -1,110 +0,0 @@ -/* -Uses Zivid API to change the IP address of the Zivid camera. -*/ - -using System; -using System.Net.NetworkInformation; - -class NetworkConfiguration -{ - static bool Confirm(string message) - { - while (true) - { - Console.Write(message + " [Y/n] "); - string input = Console.ReadLine(); - if (input.Equals("y", StringComparison.OrdinalIgnoreCase) || - input.Equals("yes", StringComparison.OrdinalIgnoreCase)) - { - return true; - } - else if (input.Equals("n", StringComparison.OrdinalIgnoreCase) || - input.Equals("no", StringComparison.OrdinalIgnoreCase)) - { - return false; - } - else - { - Console.WriteLine("Invalid input. Please enter 'Y' or 'n'."); - } - } - } - - static int Main() - { - try - { - var zivid = new Zivid.NET.Application(); - - if (zivid.Cameras.Count == 0) - { - throw new System.Exception("Failed to connect to camera. No cameras found."); - } - - var camera = zivid.Cameras[0]; - - var originalConfig = camera.NetworkConfiguration; - - Console.WriteLine("Current network configuration of camera {0}:", camera.Info.SerialNumber); - Console.WriteLine(originalConfig.ToString()); - Console.WriteLine(); - - var mode = Zivid.NET.NetworkConfiguration.IPV4Group.ModeOption.Manual; - var address = originalConfig.IPV4.Address; - var subnetMask = originalConfig.IPV4.SubnetMask; - - if (Confirm("Do you want to use DHCP?")) - { - mode = Zivid.NET.NetworkConfiguration.IPV4Group.ModeOption.Dhcp; - } - else - { - Console.Write("Enter IPv4 Address [{0}]: ", originalConfig.IPV4.Address); - var inputAddress = Console.ReadLine(); - if (!string.IsNullOrEmpty(inputAddress)) - { - address = inputAddress; - } - Console.Write("Enter new Subnet mask [{0}]: ", originalConfig.IPV4.SubnetMask); - var inputSubnetMask = Console.ReadLine(); - if (!string.IsNullOrEmpty(inputSubnetMask)) - { - subnetMask = inputSubnetMask; - } - } - - var newConfig = new Zivid.NET.NetworkConfiguration() - { - IPV4 = { - Mode = mode, - Address = address, - SubnetMask = subnetMask, - } - }; - - Console.WriteLine(); - Console.WriteLine("New network configuration:"); - Console.WriteLine(newConfig.ToString()); - if (!Confirm(string.Format("Do you want to apply the new network configuration to camera {0}?", camera.Info.SerialNumber))) - { - return 0; - } - - Console.WriteLine("Applying network configuration..."); - camera.ApplyNetworkConfiguration(newConfig); - - Console.WriteLine("Updated network configuration of camera {0}:", camera.Info.SerialNumber); - Console.WriteLine(camera.NetworkConfiguration.ToString()); - Console.WriteLine(); - - Console.WriteLine("Camera status is '{0}'", camera.State.Status); - } - catch (Exception ex) - { - Console.WriteLine("Error: " + ex.Message); - return 1; - } - return 0; - } -} - diff --git a/source/Camera/InfoUtilOther/NetworkConfiguration/NetworkConfiguration.csproj b/source/Camera/InfoUtilOther/NetworkConfiguration/NetworkConfiguration.csproj deleted file mode 100644 index e2f7a52..0000000 --- a/source/Camera/InfoUtilOther/NetworkConfiguration/NetworkConfiguration.csproj +++ /dev/null @@ -1,82 +0,0 @@ - - - - - Debug - AnyCPU - {121101E4-E682-4850-8638-6C47873A57EA} - Exe - Properties - NetworkConfiguration - NetworkConfiguration - v4.5.2 - 512 - true - - - true - ..\..\..\..\build\$(Configuration)\$(Platform) - DEBUG;TRACE - full - x64 - prompt - MinimumRecommendedRules.ruleset - true - true - true - - - ..\..\..\..\build\$(Configuration)\$(Platform) - TRACE - true - pdbonly - x64 - prompt - MinimumRecommendedRules.ruleset - true - true - true - - - - - - - - - - - - $(ZIVID_INSTALL_FOLDER)\bin\ZividCoreNET.dll - - - $(ZIVID_INSTALL_FOLDER)\bin_debug\ZividCoreNET.dll - - - - - - - - - - - - if $(ConfigurationName) == Debug GOTO Debug -if $(ConfigurationName) == Release GOTO Release -goto Error - -:Debug -xcopy "$(ZIVID_INSTALL_FOLDER)\bin_debug\*.dll" "$(TargetDir)" /Y -exit /B 0 - -:Release -xcopy "$(ZIVID_INSTALL_FOLDER)\bin\*.dll" "$(TargetDir)" /Y -exit /B 0 - -:Error -echo Unsupported config -exit /B 1 - - - \ No newline at end of file diff --git a/source/Camera/InfoUtilOther/NetworkConfiguration/Properties/AssemblyInfo.cs b/source/Camera/InfoUtilOther/NetworkConfiguration/Properties/AssemblyInfo.cs deleted file mode 100644 index d3b3825..0000000 --- a/source/Camera/InfoUtilOther/NetworkConfiguration/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. - -[assembly: AssemblyTitle("NetworkConfiguration")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("NetworkConfiguration")] -[assembly: AssemblyCopyright("Copyright 2015-2021 (C) Zivid AS")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("121101E4-E682-4850-8638-6C47873A57EA")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision - -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] -[assembly: AssemblyInformationalVersion("1.0.0.0")] diff --git a/source/Camera/Maintenance/CorrectCameraInField/App.config b/source/Camera/Maintenance/CorrectCameraInField/App.config deleted file mode 100644 index 1ab2984..0000000 --- a/source/Camera/Maintenance/CorrectCameraInField/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/source/Camera/Maintenance/CorrectCameraInField/CorrectCameraInField.cs b/source/Camera/Maintenance/CorrectCameraInField/CorrectCameraInField.cs deleted file mode 100644 index 45f2060..0000000 --- a/source/Camera/Maintenance/CorrectCameraInField/CorrectCameraInField.cs +++ /dev/null @@ -1,113 +0,0 @@ -/* -Correct the dimension trueness of a Zivid camera. - -This example shows how to perform In-field correction. This involves gathering data from -a compatible calibration board at several distances, calculating an updated camera -correction, and optionally saving that new correction to the camera. - -The correction will persist on the camera even though the camera is power-cycled or -connected to a different PC. After saving a correction, it will automatically be used any -time that camera captures a new point cloud. - -Note: This example uses experimental SDK features, which may be modified, moved, or deleted in the future without notice. -*/ - -using System; -using System.Collections.Generic; - -class Program -{ - static bool YesNoPrompt(string question) - { - while (true) - { - Console.WriteLine(question + ": y/n"); - var response = Console.ReadLine(); - if (response == null || response.ToLower() == "n") - { - return false; - } - if (response.ToLower() == "y") - { - return true; - } - } - } - - static List CollectDataset(Zivid.NET.Camera camera) - { - var dataset = new List(); - Console.WriteLine("Please point the camera at a Zivid infield calibration board."); - - const string printLine = "------------------------------------------------------------------------"; - while (true) - { - Console.WriteLine(printLine); - if (YesNoPrompt("Capture (y) or finish (n)?")) - { - Console.WriteLine("Capturing calibration board"); - var detectionResult = Zivid.NET.Calibration.Detector.DetectCalibrationBoard(camera); - var input = new Zivid.NET.Experimental.Calibration.InfieldCorrectionInput(detectionResult); - - if (input.Valid) - { - dataset.Add(input); - Console.WriteLine("Valid measurement at: " + input.DetectionResult.Centroid().ToString()); - } - else - { - Console.WriteLine("****INVALID****"); - Console.WriteLine("Feedback: " + input.StatusDescription()); - } - Console.WriteLine(printLine); - } - else - { - Console.WriteLine("End of capturing stage."); - Console.WriteLine(printLine); - break; - } - Console.WriteLine("You have collected " + dataset.Count + " valid measurements so far."); - } - return dataset; - } - - static int Main() - { - try - { - var zivid = new Zivid.NET.Application(); - - Console.WriteLine("Connecting to camera"); - var camera = zivid.ConnectCamera(); - - // Gather data - var dataset = CollectDataset(camera); - - // Calculate infield correction - Console.WriteLine("Collected " + dataset.Count + " valid measurements."); - Console.WriteLine("Computing new camera correction..."); - var correction = Zivid.NET.Experimental.Calibration.Calibrator.ComputeCameraCorrection(dataset); - var accuracyEstimate = correction.AccuracyEstimate; - Console.WriteLine("If written to the camera, this correction can be expected to yield a dimension accuracy error of " - + (accuracyEstimate.DimensionAccuracy * 100).ToString("0.00") + "% or better in the range of z=[" - + accuracyEstimate.ZMin.ToString("0.00") + "," + accuracyEstimate.ZMax.ToString("0.00") - + "] across the full FOV. Accuracy close to where the correction data was collected is likely better."); - - // Optionally save to camera - if (YesNoPrompt("Save to camera?")) - { - Console.WriteLine("Writing camera correction..."); - Zivid.NET.Experimental.Calibration.Calibrator.WriteCameraCorrection(camera, correction); - Console.WriteLine("Success"); - } - - } - catch (Exception ex) - { - Console.WriteLine("Error: " + ex.Message); - return 1; - } - return 0; - } -} diff --git a/source/Camera/Maintenance/CorrectCameraInField/CorrectCameraInField.csproj b/source/Camera/Maintenance/CorrectCameraInField/CorrectCameraInField.csproj deleted file mode 100644 index da8e52c..0000000 --- a/source/Camera/Maintenance/CorrectCameraInField/CorrectCameraInField.csproj +++ /dev/null @@ -1,77 +0,0 @@ - - - - - Debug - AnyCPU - {8D35FE40-515E-416A-9C44-503B0D1B6674} - Exe - CorrectCameraInField - CorrectCameraInField - v4.5.2 - 512 - true - - - x64 - true - full - false - ..\..\..\..\build\$(Configuration)\$(Platform) - DEBUG;TRACE - prompt - 4 - true - - - x64 - pdbonly - true - ..\..\..\..\build\$(Configuration)\$(Platform) - TRACE;CODE_ANALYSIS - prompt - 4 - true - - - - - - - - - - - - $(ZIVID_INSTALL_FOLDER)\bin\ZividCoreNET.dll - - - $(ZIVID_INSTALL_FOLDER)\bin_debug\ZividCoreNET.dll - - - - - - - - - - - - if $(ConfigurationName) == Debug GOTO Debug -if $(ConfigurationName) == Release GOTO Release -goto Error - -:Debug -xcopy "$(ZIVID_INSTALL_FOLDER)\bin_debug\*.dll" "$(TargetDir)" /Y -exit /B 0 - -:Release -xcopy "$(ZIVID_INSTALL_FOLDER)\bin\*.dll" "$(TargetDir)" /Y -exit /B 0 - -:Error -echo Unsupported config -exit /B 1 - - \ No newline at end of file diff --git a/source/Camera/Maintenance/CorrectCameraInField/Properties/AssemblyInfo.cs b/source/Camera/Maintenance/CorrectCameraInField/Properties/AssemblyInfo.cs deleted file mode 100644 index 8b393aa..0000000 --- a/source/Camera/Maintenance/CorrectCameraInField/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. - -[assembly: AssemblyTitle("VerifyCameraInField")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("VerifyCameraInField")] -[assembly: AssemblyCopyright("Copyright 2015-2021 (C) Zivid AS")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("47B616E7-382D-47F6-BD0B-9C627C710A64")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision - -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] -[assembly: AssemblyInformationalVersion("1.0.0.0")] diff --git a/source/Camera/Maintenance/ResetCameraInField/App.config b/source/Camera/Maintenance/ResetCameraInField/App.config deleted file mode 100644 index 1ab2984..0000000 --- a/source/Camera/Maintenance/ResetCameraInField/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/source/Camera/Maintenance/ResetCameraInField/Properties/AssemblyInfo.cs b/source/Camera/Maintenance/ResetCameraInField/Properties/AssemblyInfo.cs deleted file mode 100644 index 82be996..0000000 --- a/source/Camera/Maintenance/ResetCameraInField/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. - -[assembly: AssemblyTitle("VerifyCameraInField")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("VerifyCameraInField")] -[assembly: AssemblyCopyright("Copyright 2015-2021 (C) Zivid AS")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("0CD32246-E361-450C-92D1-0ECAF2DFD5E1")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision - -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] -[assembly: AssemblyInformationalVersion("1.0.0.0")] diff --git a/source/Camera/Maintenance/ResetCameraInField/ResetCameraInField.cs b/source/Camera/Maintenance/ResetCameraInField/ResetCameraInField.cs deleted file mode 100644 index 780e534..0000000 --- a/source/Camera/Maintenance/ResetCameraInField/ResetCameraInField.cs +++ /dev/null @@ -1,30 +0,0 @@ -/* -Reset infield correction on a camera. - -Note: This example uses experimental SDK features, which may be modified, moved, or deleted in the future without notice. -*/ - -using System; - -class Program -{ - static int Main() - { - try - { - var zivid = new Zivid.NET.Application(); - - Console.WriteLine("Connecting to camera"); - var camera = zivid.ConnectCamera(); - - Console.WriteLine("Reset infield correction on the camera"); - Zivid.NET.Experimental.Calibration.Calibrator.ResetCameraCorrection(camera); - } - catch (Exception ex) - { - Console.WriteLine("Error: " + ex.Message); - return 1; - } - return 0; - } -} diff --git a/source/Camera/Maintenance/ResetCameraInField/ResetCameraInField.csproj b/source/Camera/Maintenance/ResetCameraInField/ResetCameraInField.csproj deleted file mode 100644 index 6dac1a9..0000000 --- a/source/Camera/Maintenance/ResetCameraInField/ResetCameraInField.csproj +++ /dev/null @@ -1,77 +0,0 @@ - - - - - Debug - AnyCPU - {007E5DE9-EB5C-4EAA-A609-FEA14196F3BD} - Exe - ResetCameraInField - ResetCameraInField - v4.5.2 - 512 - true - - - x64 - true - full - false - ..\..\..\..\build\$(Configuration)\$(Platform) - DEBUG;TRACE - prompt - 4 - true - - - x64 - pdbonly - true - ..\..\..\..\build\$(Configuration)\$(Platform) - TRACE;CODE_ANALYSIS - prompt - 4 - true - - - - - - - - - - - - $(ZIVID_INSTALL_FOLDER)\bin\ZividCoreNET.dll - - - $(ZIVID_INSTALL_FOLDER)\bin_debug\ZividCoreNET.dll - - - - - - - - - - - - if $(ConfigurationName) == Debug GOTO Debug -if $(ConfigurationName) == Release GOTO Release -goto Error - -:Debug -xcopy "$(ZIVID_INSTALL_FOLDER)\bin_debug\*.dll" "$(TargetDir)" /Y -exit /B 0 - -:Release -xcopy "$(ZIVID_INSTALL_FOLDER)\bin\*.dll" "$(TargetDir)" /Y -exit /B 0 - -:Error -echo Unsupported config -exit /B 1 - - \ No newline at end of file diff --git a/source/Camera/Maintenance/VerifyCameraInField/App.config b/source/Camera/Maintenance/VerifyCameraInField/App.config deleted file mode 100644 index 1ab2984..0000000 --- a/source/Camera/Maintenance/VerifyCameraInField/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/source/Camera/Maintenance/VerifyCameraInField/Properties/AssemblyInfo.cs b/source/Camera/Maintenance/VerifyCameraInField/Properties/AssemblyInfo.cs deleted file mode 100644 index b43712e..0000000 --- a/source/Camera/Maintenance/VerifyCameraInField/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. - -[assembly: AssemblyTitle("VerifyCameraInField")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("VerifyCameraInField")] -[assembly: AssemblyCopyright("Copyright 2015-2021 (C) Zivid AS")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("14D5F2B5-93BB-4A49-A0CD-0A56B2AF7B20")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision - -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] -[assembly: AssemblyInformationalVersion("1.0.0.0")] diff --git a/source/Camera/Maintenance/VerifyCameraInField/VerifyCameraInField.cs b/source/Camera/Maintenance/VerifyCameraInField/VerifyCameraInField.cs deleted file mode 100644 index 56b4cd2..0000000 --- a/source/Camera/Maintenance/VerifyCameraInField/VerifyCameraInField.cs +++ /dev/null @@ -1,58 +0,0 @@ -/* -Check the dimension trueness of a Zivid camera. - -This example shows how to verify the local dimension trueness of a camera. -If the trueness is much worse than expected, the camera may have been damaged by -shock in shipping or handling. If so, look at the CorrectCameraInField sample. - -Note: This example uses experimental SDK features, which may be modified, moved, or deleted in the future without notice. -*/ - -using System; - -class Program -{ - static int Main() - { - try - { - var zivid = new Zivid.NET.Application(); - - Console.WriteLine("Connecting to camera"); - var camera = zivid.ConnectCamera(); - - // For convenience, print the timestamp of the latest correction - if (Zivid.NET.Experimental.Calibration.Calibrator.HasCameraCorrection(camera)) - { - var timestamp = Zivid.NET.Experimental.Calibration.Calibrator.CameraCorrectionTimestamp(camera); - Console.WriteLine("Timestamp of curent camera correction: " + timestamp.ToString()); - } - else - { - Console.WriteLine("This camera has no infield correction written to it."); - } - - // Gather data - Console.WriteLine("Capturing calibration board"); - var detectionResult = Zivid.NET.Calibration.Detector.DetectCalibrationBoard(camera); - - // Prepare data and check that it is appropriate for infield verification - var input = new Zivid.NET.Experimental.Calibration.InfieldCorrectionInput(detectionResult); - if (!input.Valid) - { - throw new Exception("Capture not valid for infield verification! Feedback: " + input.StatusDescription()); - } - - // Show results - Console.WriteLine("Successful measurement at " + detectionResult.Centroid().ToString()); - var verification = Zivid.NET.Experimental.Calibration.Calibrator.VerifyCamera(input); - Console.WriteLine("Estimated dimenstion trueness error at measured position: " + (verification.LocalDimensionTrueness * 100).ToString("0.00") + "%"); - } - catch (Exception ex) - { - Console.WriteLine("Error: " + ex.Message); - return 1; - } - return 0; - } -} diff --git a/source/Camera/Maintenance/VerifyCameraInField/VerifyCameraInField.csproj b/source/Camera/Maintenance/VerifyCameraInField/VerifyCameraInField.csproj deleted file mode 100644 index ad27dcc..0000000 --- a/source/Camera/Maintenance/VerifyCameraInField/VerifyCameraInField.csproj +++ /dev/null @@ -1,79 +0,0 @@ - - - - - Debug - AnyCPU - {471E7FCF-9689-460F-810C-B8C0EBC81EC3} - Exe - VerifyCameraInField - VerifyCameraInField - v4.5.2 - 512 - true - - - x64 - true - full - false - ..\..\..\..\build\$(Configuration)\$(Platform) - DEBUG;TRACE - prompt - 4 - true - C:\Users\SATJAS~1\AppData\Local\Temp\vsCB1E.tmp\x64\Debug\ - - - x64 - pdbonly - true - ..\..\..\..\build\$(Configuration)\$(Platform) - TRACE;CODE_ANALYSIS - prompt - 4 - true - C:\Users\SATJAS~1\AppData\Local\Temp\vsCB1E.tmp\x64\Release\ - - - - - - - - - - - - $(ZIVID_INSTALL_FOLDER)\bin\ZividCoreNET.dll - - - $(ZIVID_INSTALL_FOLDER)\bin_debug\ZividCoreNET.dll - - - - - - - - - - - - if $(ConfigurationName) == Debug GOTO Debug -if $(ConfigurationName) == Release GOTO Release -goto Error - -:Debug -xcopy "$(ZIVID_INSTALL_FOLDER)\bin_debug\*.dll" "$(TargetDir)" /Y -exit /B 0 - -:Release -xcopy "$(ZIVID_INSTALL_FOLDER)\bin\*.dll" "$(TargetDir)" /Y -exit /B 0 - -:Error -echo Unsupported config -exit /B 1 - - \ No newline at end of file diff --git a/source/Camera/Maintenance/VerifyCameraInFieldFromZDF/App.config b/source/Camera/Maintenance/VerifyCameraInFieldFromZDF/App.config deleted file mode 100644 index 1ab2984..0000000 --- a/source/Camera/Maintenance/VerifyCameraInFieldFromZDF/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/source/Camera/Maintenance/VerifyCameraInFieldFromZDF/Properties/AssemblyInfo.cs b/source/Camera/Maintenance/VerifyCameraInFieldFromZDF/Properties/AssemblyInfo.cs deleted file mode 100644 index b458c9c..0000000 --- a/source/Camera/Maintenance/VerifyCameraInFieldFromZDF/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. - -[assembly: AssemblyTitle("VerifyCameraInField")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("VerifyCameraInField")] -[assembly: AssemblyCopyright("Copyright 2015-2021 (C) Zivid AS")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("668D531A-68CA-4568-9D78-3A7D673DD594")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision - -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] -[assembly: AssemblyInformationalVersion("1.0.0.0")] diff --git a/source/Camera/Maintenance/VerifyCameraInFieldFromZDF/VerifyCameraInFieldFromZDF.cs b/source/Camera/Maintenance/VerifyCameraInFieldFromZDF/VerifyCameraInFieldFromZDF.cs deleted file mode 100644 index 9317173..0000000 --- a/source/Camera/Maintenance/VerifyCameraInFieldFromZDF/VerifyCameraInFieldFromZDF.cs +++ /dev/null @@ -1,69 +0,0 @@ -/* -Check the dimension trueness of a Zivid camera from a ZDF file. - -This example shows how to verify the local dimension trueness of a camera from a ZDF file. If the trueness is much worse -than expected, the camera may have been damaged by shock in shipping or handling. If so, look at the CorrectCameraInField -sample. - -Why is verifying camera accuracy from a ZDF file useful? - -Let us assume that your system is in production. You want to verify the accuracy of the camera while the system is running. -At the same time, you want to minimize the time the robot and the camera are used for anything else than their main task, -e.g., bin picking. Instead of running a full infield verification live, which consists of capturing, detecting, and -estimating accuracy, you can instead only capture and save results to ZDF files on disk. As the robot and the camera go -back to their main tasks, you can load the ZDF files and verify the accuracy offline, using a different PC than the one -used in production. In addition, you can send these ZDF files to Zivid Customer Success for investigation. - -Note: This example uses experimental SDK features, which may be modified, moved, or deleted in the future without notice. -*/ - -using System; - -class Program -{ - static int Main() - { - try - { - var zivid = new Zivid.NET.Application(); - - string fileCamera = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "/Zivid/BinWithCalibrationBoard.zfc"; - Console.WriteLine("Creating virtual camera using file: " + fileCamera); - var camera = zivid.CreateFileCamera(fileCamera); - - // Calibration board can be captured live, while the system is in production, and saved to ZDF file, for later use in - // offline infield verification - - Console.WriteLine("Capturing calibration board"); - var frame = Zivid.NET.Calibration.Detector.CaptureCalibrationBoard(camera); - var dataFile = "FrameWithCalibrationBoard.zdf"; - Console.WriteLine("Saving frame to file: " + dataFile + ", for later use in offline infield verification"); - frame.Save(dataFile); - - // The ZDF captured with captureCalibrationBoard(camera) that contains the calibration board can be loaded for - // offline infield verification - - Console.WriteLine("Reading ZDF frame from file: " + dataFile + ", for offline infield verification"); - var loadedFrame = new Zivid.NET.Frame(dataFile); - - Console.WriteLine("Detecting calibration board"); - var detectionResult = Zivid.NET.Calibration.Detector.DetectCalibrationBoard(loadedFrame); - - var input = new Zivid.NET.Experimental.Calibration.InfieldCorrectionInput(detectionResult); - if (!input.Valid) - { - throw new Exception("Capture not valid for infield verification! Feedback: " + input.StatusDescription()); - } - - Console.WriteLine("Successful measurement at " + detectionResult.Centroid().ToString()); - var verification = Zivid.NET.Experimental.Calibration.Calibrator.VerifyCamera(input); - Console.WriteLine("Estimated dimension trueness error at measured position: " + (verification.LocalDimensionTrueness * 100).ToString("0.00") + "%"); - } - catch (Exception ex) - { - Console.WriteLine("Error: " + ex.Message); - return 1; - } - return 0; - } -} diff --git a/source/Camera/Maintenance/VerifyCameraInFieldFromZDF/VerifyCameraInFieldFromZDF.csproj b/source/Camera/Maintenance/VerifyCameraInFieldFromZDF/VerifyCameraInFieldFromZDF.csproj deleted file mode 100644 index cf4d0da..0000000 --- a/source/Camera/Maintenance/VerifyCameraInFieldFromZDF/VerifyCameraInFieldFromZDF.csproj +++ /dev/null @@ -1,77 +0,0 @@ - - - - - Debug - AnyCPU - {D8884156-1127-40ED-902A-7DD610786E5A} - Exe - VerifyCameraInFieldFromZDF - VerifyCameraInFieldFromZDF - v4.5.2 - 512 - true - - - x64 - true - full - false - ..\..\..\..\build\$(Configuration)\$(Platform) - DEBUG;TRACE - prompt - 4 - true - - - x64 - pdbonly - true - ..\..\..\..\build\$(Configuration)\$(Platform) - TRACE;CODE_ANALYSIS - prompt - 4 - true - - - - - - - - - - - - $(ZIVID_INSTALL_FOLDER)\bin\ZividCoreNET.dll - - - $(ZIVID_INSTALL_FOLDER)\bin_debug\ZividCoreNET.dll - - - - - - - - - - - - if $(ConfigurationName) == Debug GOTO Debug -if $(ConfigurationName) == Release GOTO Release -goto Error - -:Debug -xcopy "$(ZIVID_INSTALL_FOLDER)\bin_debug\*.dll" "$(TargetDir)" /Y -exit /B 0 - -:Release -xcopy "$(ZIVID_INSTALL_FOLDER)\bin\*.dll" "$(TargetDir)" /Y -exit /B 0 - -:Error -echo Unsupported config -exit /B 1 - - \ No newline at end of file diff --git a/source/ZividNETSamples.sln b/source/ZividNETSamples.sln index ba38af7..50eb9bf 100644 --- a/source/ZividNETSamples.sln +++ b/source/ZividNETSamples.sln @@ -1,6 +1,7 @@ + Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.8.34511.84 +# Visual Studio 15 +VisualStudioVersion = 15.0.28307.902 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Capture", "Camera\Basic\Capture\Capture.csproj", "{DD533F88-E34D-41A8-B734-1B94A5A4A31F}" EndProject @@ -24,8 +25,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CaptureHDRLoop", "Camera\Ad EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CaptureHDRPrintNormals", "Camera\Advanced\CaptureHDRPrintNormals\CaptureHDRPrintNormals.csproj", "{064AA724-CD81-462F-8A07-26440EA41103}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AutomaticNetworkConfigurationForCameras", "Camera\InfoUtilOther\AutomaticNetworkConfigurationForCameras\AutomaticNetworkConfigurationForCameras.csproj", "{FEE22B4E-A257-443B-8B29-E1C8124A18F4}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CameraInfo", "Camera\InfoUtilOther\CameraInfo\CameraInfo.csproj", "{6117292F-5426-48A7-91FB-B801126E576E}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GetCameraIntrinsics", "Camera\InfoUtilOther\GetCameraIntrinsics\GetCameraIntrinsics.csproj", "{A4F8D63B-E3E9-48DD-A950-276245BACE7B}" @@ -38,16 +37,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Warmup", "Camera\InfoUtilOt EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FirmwareUpdater", "Camera\InfoUtilOther\FirmwareUpdater\FirmwareUpdater.csproj", "{E47CD88B-1A5D-4EFB-97A6-42AA81C5D722}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NetworkConfiguration", "Camera\InfoUtilOther\NetworkConfiguration\NetworkConfiguration.csproj", "{121101E4-E682-4850-8638-6C47873A57EA}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CorrectCameraInField", "Camera\Maintenance\CorrectCameraInField\CorrectCameraInField.csproj", "{8D35FE40-515E-416A-9C44-503B0D1B6674}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ResetCameraInField", "Camera\Maintenance\ResetCameraInField\ResetCameraInField.csproj", "{007E5DE9-EB5C-4EAA-A609-FEA14196F3BD}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VerifyCameraInField", "Camera\Maintenance\VerifyCameraInField\VerifyCameraInField.csproj", "{471E7FCF-9689-460F-810C-B8C0EBC81EC3}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VerifyCameraInFieldFromZDF", "Camera\Maintenance\VerifyCameraInFieldFromZDF\VerifyCameraInFieldFromZDF.csproj", "{D8884156-1127-40ED-902A-7DD610786E5A}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CaptureFromFileCameraVis3D", "Applications\Basic\Visualization\CaptureFromFileCameraVis3D\CaptureFromFileCameraVis3D.csproj", "{8108F859-85B2-4063-9D6F-D7B852ADA83B}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CaptureVis3D", "Applications\Basic\Visualization\CaptureVis3D\CaptureVis3D.csproj", "{68EB8781-17AA-42E9-9524-0C18A45278C3}" @@ -72,12 +61,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MultiCameraCalibration", "A EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TransformPointCloudViaCheckerboard", "Applications\Advanced\TransformPointCloudViaCheckerboard\TransformPointCloudViaCheckerboard.csproj", "{05DAC246-781C-45B9-8E57-AC58D013522A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TransformPointCloudViaArucoMarker", "Applications\Advanced\TransformPointCloudViaArucoMarker\TransformPointCloudViaArucoMarker.csproj", "{2F721053-DE2A-4714-853C-CDDBB5828AB0}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ROIBoxViaCheckerboard", "Applications\Advanced\ROIBoxViaCheckerboard\ROIBoxViaCheckerboard.csproj", "{FDAE54C3-5924-462B-BCE9-E8C51CB637B3}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ROIBoxViaArucoMarker", "Applications\Advanced\ROIBoxViaArucoMarker\ROIBoxViaArucoMarker.csproj", "{96CC8163-6D2F-4FF9-B89C-FD2A137AC672}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PoseConversions", "Applications\Advanced\HandEyeCalibration\PoseConversions\PoseConversions.csproj", "{69416F6A-75DF-436E-85F2-3881CCBEAA9A}" EndProject Global @@ -130,10 +113,6 @@ Global {064AA724-CD81-462F-8A07-26440EA41103}.Debug|x64.Build.0 = Debug|x64 {064AA724-CD81-462F-8A07-26440EA41103}.Release|x64.ActiveCfg = Release|x64 {064AA724-CD81-462F-8A07-26440EA41103}.Release|x64.Build.0 = Release|x64 - {FEE22B4E-A257-443B-8B29-E1C8124A18F4}.Debug|x64.ActiveCfg = Debug|x64 - {FEE22B4E-A257-443B-8B29-E1C8124A18F4}.Debug|x64.Build.0 = Debug|x64 - {FEE22B4E-A257-443B-8B29-E1C8124A18F4}.Release|x64.ActiveCfg = Release|x64 - {FEE22B4E-A257-443B-8B29-E1C8124A18F4}.Release|x64.Build.0 = Release|x64 {6117292F-5426-48A7-91FB-B801126E576E}.Debug|x64.ActiveCfg = Debug|x64 {6117292F-5426-48A7-91FB-B801126E576E}.Debug|x64.Build.0 = Debug|x64 {6117292F-5426-48A7-91FB-B801126E576E}.Release|x64.ActiveCfg = Release|x64 @@ -158,26 +137,6 @@ Global {E47CD88B-1A5D-4EFB-97A6-42AA81C5D722}.Debug|x64.Build.0 = Debug|x64 {E47CD88B-1A5D-4EFB-97A6-42AA81C5D722}.Release|x64.ActiveCfg = Release|x64 {E47CD88B-1A5D-4EFB-97A6-42AA81C5D722}.Release|x64.Build.0 = Release|x64 - {121101E4-E682-4850-8638-6C47873A57EA}.Debug|x64.ActiveCfg = Debug|x64 - {121101E4-E682-4850-8638-6C47873A57EA}.Debug|x64.Build.0 = Debug|x64 - {121101E4-E682-4850-8638-6C47873A57EA}.Release|x64.ActiveCfg = Release|x64 - {121101E4-E682-4850-8638-6C47873A57EA}.Release|x64.Build.0 = Release|x64 - {8D35FE40-515E-416A-9C44-503B0D1B6674}.Debug|x64.ActiveCfg = Debug|x64 - {8D35FE40-515E-416A-9C44-503B0D1B6674}.Debug|x64.Build.0 = Debug|x64 - {8D35FE40-515E-416A-9C44-503B0D1B6674}.Release|x64.ActiveCfg = Release|x64 - {8D35FE40-515E-416A-9C44-503B0D1B6674}.Release|x64.Build.0 = Release|x64 - {007E5DE9-EB5C-4EAA-A609-FEA14196F3BD}.Debug|x64.ActiveCfg = Debug|x64 - {007E5DE9-EB5C-4EAA-A609-FEA14196F3BD}.Debug|x64.Build.0 = Debug|x64 - {007E5DE9-EB5C-4EAA-A609-FEA14196F3BD}.Release|x64.ActiveCfg = Release|x64 - {007E5DE9-EB5C-4EAA-A609-FEA14196F3BD}.Release|x64.Build.0 = Release|x64 - {471E7FCF-9689-460F-810C-B8C0EBC81EC3}.Debug|x64.ActiveCfg = Debug|x64 - {471E7FCF-9689-460F-810C-B8C0EBC81EC3}.Debug|x64.Build.0 = Debug|x64 - {471E7FCF-9689-460F-810C-B8C0EBC81EC3}.Release|x64.ActiveCfg = Release|x64 - {471E7FCF-9689-460F-810C-B8C0EBC81EC3}.Release|x64.Build.0 = Release|x64 - {D8884156-1127-40ED-902A-7DD610786E5A}.Debug|x64.ActiveCfg = Debug|x64 - {D8884156-1127-40ED-902A-7DD610786E5A}.Debug|x64.Build.0 = Debug|x64 - {D8884156-1127-40ED-902A-7DD610786E5A}.Release|x64.ActiveCfg = Release|x64 - {D8884156-1127-40ED-902A-7DD610786E5A}.Release|x64.Build.0 = Release|x64 {8108F859-85B2-4063-9D6F-D7B852ADA83B}.Debug|x64.ActiveCfg = Debug|x64 {8108F859-85B2-4063-9D6F-D7B852ADA83B}.Debug|x64.Build.0 = Debug|x64 {8108F859-85B2-4063-9D6F-D7B852ADA83B}.Release|x64.ActiveCfg = Release|x64 @@ -226,18 +185,6 @@ Global {05DAC246-781C-45B9-8E57-AC58D013522A}.Debug|x64.Build.0 = Debug|x64 {05DAC246-781C-45B9-8E57-AC58D013522A}.Release|x64.ActiveCfg = Release|x64 {05DAC246-781C-45B9-8E57-AC58D013522A}.Release|x64.Build.0 = Release|x64 - {2F721053-DE2A-4714-853C-CDDBB5828AB0}.Debug|x64.ActiveCfg = Debug|x64 - {2F721053-DE2A-4714-853C-CDDBB5828AB0}.Debug|x64.Build.0 = Debug|x64 - {2F721053-DE2A-4714-853C-CDDBB5828AB0}.Release|x64.ActiveCfg = Release|x64 - {2F721053-DE2A-4714-853C-CDDBB5828AB0}.Release|x64.Build.0 = Release|x64 - {FDAE54C3-5924-462B-BCE9-E8C51CB637B3}.Debug|x64.ActiveCfg = Debug|x64 - {FDAE54C3-5924-462B-BCE9-E8C51CB637B3}.Debug|x64.Build.0 = Debug|x64 - {FDAE54C3-5924-462B-BCE9-E8C51CB637B3}.Release|x64.ActiveCfg = Release|x64 - {FDAE54C3-5924-462B-BCE9-E8C51CB637B3}.Release|x64.Build.0 = Release|x64 - {96CC8163-6D2F-4FF9-B89C-FD2A137AC672}.Debug|x64.ActiveCfg = Debug|x64 - {96CC8163-6D2F-4FF9-B89C-FD2A137AC672}.Debug|x64.Build.0 = Debug|x64 - {96CC8163-6D2F-4FF9-B89C-FD2A137AC672}.Release|x64.ActiveCfg = Release|x64 - {96CC8163-6D2F-4FF9-B89C-FD2A137AC672}.Release|x64.Build.0 = Release|x64 {69416F6A-75DF-436E-85F2-3881CCBEAA9A}.Debug|x64.ActiveCfg = Debug|x64 {69416F6A-75DF-436E-85F2-3881CCBEAA9A}.Debug|x64.Build.0 = Debug|x64 {69416F6A-75DF-436E-85F2-3881CCBEAA9A}.Release|x64.ActiveCfg = Release|x64