diff --git a/README.md b/README.md
index 8d5f1f9..d2df9d0 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
# HDevelop samples
-This repository contains halcon code samples for Zivid SDK v2.13.1. For
+This repository contains halcon 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-halcon-samples/tree/master/../../releases).
@@ -74,8 +74,7 @@ from the camera can be used.
If you want to use Zivid in HALCON, we provide a GenICam GenTL producer
that comes with the [Zivid Software](http://www.zivid.com/downloads).
-Zivid and HALCON are compatible with Windows 10 and 11, and Ubuntu
-20.04, 22.04, 24.04.
+Zivid and HALCON are compatible with Windows 10 and Ubuntu 20.04, 22.04.
-----
diff --git a/source/Applications/Advanced/ObjectMatching/SurfaceMatchingCreateModel.hdev b/source/Applications/Advanced/ObjectMatching/SurfaceMatchingCreateModel.hdev
index 346588b..a36c838 100644
--- a/source/Applications/Advanced/ObjectMatching/SurfaceMatchingCreateModel.hdev
+++ b/source/Applications/Advanced/ObjectMatching/SurfaceMatchingCreateModel.hdev
@@ -9,8 +9,8 @@
* It should be used together with the SurfaceMatchingFindModel.hdev where the model created by this program is utilized for surface-based 3D matching algorithm.
* This example comes with HDR settings and other parameters which were used to create models of the following three objects:
* Twinings tea box
- * Pepsi can (0.3 l)
- * plastic Coca-Cola bottle (2 l)
+ * Pringles can (190 g)
+ * plastic Coca-Cola bottle (0.5 l)
*
* Please note that you first need to install Zivid Software and correctly set the environment variables. After this, you can access the camera with the HALCON
* GenICamTL interface.
@@ -37,33 +37,34 @@
* Resetting any previous HDR settings
set_framegrabber_param (AcqHandle, 'ResetAcquisitions', 1)
- * Setting global settings
- set_framegrabber_param (AcqHandle, 'Engine', 'stripe')
- set_framegrabber_param (AcqHandle, 'SamplingColor', 'rgb')
- set_framegrabber_param (AcqHandle, 'SamplingPixel', 'blueSubsample2x2')
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersSmoothingGaussianEnabled', 1)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersSmoothingGaussianSigma', 2.0)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersNoiseRemovalEnabled', 1)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersNoiseRemovalThreshold', 2.0)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersNoiseSuppressionEnabled', 1)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersNoiseRepairEnabled', 1)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersOutlierRemovalEnabled', 1)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersOutlierRemovalThreshold', 10.0)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersReflectionRemovalEnabled', 1)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersClusterRemovalEnabled', 1)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersClusterRemovalMaxNeighborDistance', 6)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersClusterRemovalMinArea', 600)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersExperimentalContrastDistortionCorrectionEnabled', 0)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersExperimentalContrastDistortionRemovalEnabled', 0)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersHoleRepairEnabled', 1)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersHoleRepairHoleSize', 0.7)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersHoleRepairStrictness', 1)
-
- * Configuring HDR settings
+ * Configuring HDR settings (Twinings tea box)
+ *set_framegrabber_param (AcqHandle, 'ExposureTime', 10000)
+ *set_framegrabber_param (AcqHandle, 'Aperture', 5.65)
+ *set_framegrabber_param (AcqHandle, 'AddAcquisition', 1)
+ *set_framegrabber_param (AcqHandle, 'Aperture', 4.0)
+ *set_framegrabber_param (AcqHandle, 'AddAcquisition', 1)
+
+ * Configuring HDR settings (Pringles can)
+ *set_framegrabber_param (AcqHandle, 'ExposureTime', 10000)
+ *set_framegrabber_param (AcqHandle, 'Aperture', 4.36)
+ *set_framegrabber_param (AcqHandle, 'AddAcquisition', 1)
+ *set_framegrabber_param (AcqHandle, 'Aperture', 2.0)
+ *set_framegrabber_param (AcqHandle, 'AddAcquisition', 1)
+
+ * Configuring HDR settings (Coca-Cola bottle)
+ *set_framegrabber_param (AcqHandle, 'ExposureTime', 10000)
+ *set_framegrabber_param (AcqHandle, 'Aperture', 6.16)
+ *set_framegrabber_param (AcqHandle, 'AddAcquisition', 1)
+ *set_framegrabber_param (AcqHandle, 'Aperture', 3.08)
+ *set_framegrabber_param (AcqHandle, 'AddAcquisition', 1)
+
+ * Configuring HDR settings (Your own object)
set_framegrabber_param (AcqHandle, 'ExposureTime', 10000)
- set_framegrabber_param (AcqHandle, 'Aperture', 2.64)
+ set_framegrabber_param (AcqHandle, 'Aperture', 10.37)
set_framegrabber_param (AcqHandle, 'AddAcquisition', 1)
- set_framegrabber_param (AcqHandle, 'Aperture', 2.64)
+ set_framegrabber_param (AcqHandle, 'Aperture', 5.50)
+ set_framegrabber_param (AcqHandle, 'AddAcquisition', 1)
+ set_framegrabber_param (AcqHandle, 'Aperture', 2.37)
set_framegrabber_param (AcqHandle, 'AddAcquisition', 1)
* Capturing frame (HDR)
diff --git a/source/Applications/Advanced/ObjectMatching/SurfaceMatchingCreateModelFromFile.hdev b/source/Applications/Advanced/ObjectMatching/SurfaceMatchingCreateModelFromFile.hdev
index a46209e..974c7a2 100644
--- a/source/Applications/Advanced/ObjectMatching/SurfaceMatchingCreateModelFromFile.hdev
+++ b/source/Applications/Advanced/ObjectMatching/SurfaceMatchingCreateModelFromFile.hdev
@@ -9,8 +9,8 @@
* It should be used together with the SurfaceMatchingFindModelFromFile.hdev where the model created by this program is utilized for surface-based 3D matching algorithm.
* This example comes with models of three following objects:
* Twinings tea box
- * Pepsi can (0.3 l)
- * plastic Coca-Cola bottle (2 l)
+ * Pringles can (190 g)
+ * plastic Coca-Cola bottle (0.5 l)
*
* Please note that you first need to install Zivid Software and correctly set the environment variables. After this, you can access the camera with the HALCON
* GenICamTL interface.
@@ -25,18 +25,18 @@
* Reading a 3D point cloud of the scene
* Twinings tea box
SurfaceModelFile:= 'TwiningsTeaBox'
- * Pepsi can
- * SurfaceModelFile:= 'PepsiCan'
+ * Pringles can
+ * SurfaceModelFile:= 'PringlesCan'
* Coca-Cola bottle
* SurfaceModelFile:= 'CocaColaBottle'
import './../../../Procedures'
get_zivid_sample_data_dir(ZividDataDir)
ScenePath := ZividDataDir + '/ObjectMatching/' + SurfaceModelFile + '/Im1.ply'
- * Specify the camera that point cloud was taken with.
- Camera := 'Zivid 2+'
- * Specify SamplingPixel that point cloud was taken with.
- SamplingPixel := 'blueSubsample2x2'
+ * Specify the camera that point cloud was taken with; options are: 'Zivid One+', 'Zivid 2', and 'Zivid 2+'.
+ Camera := 'Zivid One+'
+ * Specify SamplingPixel that point cloud was taken with; options are: 'all', 'blueSubsample2x2', and 'redSubsample2x2'
+ SamplingPixel := 'all'
get_zivid_camera_width (Camera, SamplingPixel, MapWidth)
read_object_model_3d (ScenePath, 'm', ['xyz_map_width'], MapWidth, ObjectModel3D_Scene, Status)
diff --git a/source/Applications/Advanced/ObjectMatching/SurfaceMatchingFindModel.hdev b/source/Applications/Advanced/ObjectMatching/SurfaceMatchingFindModel.hdev
index 3c9bd8e..c9c1375 100644
--- a/source/Applications/Advanced/ObjectMatching/SurfaceMatchingFindModel.hdev
+++ b/source/Applications/Advanced/ObjectMatching/SurfaceMatchingFindModel.hdev
@@ -9,8 +9,8 @@
* The model used for matching is created from a reference view of the object, see SurfaceMatchingCreateModel.hdev or SurfaceMatchingCreateModel.hdevFromFile.
* The model is then searched for in a newly captured 3D point cloud. This example comes with models for the three following objects:
* Twinings tea box
- * Pepsi can (0.3 l)
- * plastic Coca-Cola bottle (2 l)
+ * Pringles can (190 g)
+ * plastic Coca-Cola bottle (0.5 l)
*
* Please note that you first need to install Zivid Software and correctly set the environment variables. After this, you can access the camera with the HALCON
* GenICamTL interface.
@@ -23,8 +23,8 @@
* Specify the HALCON model for surface-based 3D matching
* Existing Twinings tea box model
SurfaceModelFile := 'TwiningsTeaBox'
- * Existing Pepsi can model
- * SurfaceModelFile := 'PepsiCan'
+ * Existing Pringles can model
+ * SurfaceModelFile := 'PringlesCan'
* Existing Coca-Cola bottle model
* SurfaceModelFile := 'CocaColaBottle'
* Your own model created with the SurfaceMatchingCreateModel.hdev
@@ -54,34 +54,41 @@
* Reseting any previous HDR settings
set_framegrabber_param (AcqHandle, 'ResetAcquisitions', 1)
- * Setting global settings
- set_framegrabber_param (AcqHandle, 'Engine', 'stripe')
- set_framegrabber_param (AcqHandle, 'SamplingColor', 'rgb')
- set_framegrabber_param (AcqHandle, 'SamplingPixel', 'blueSubsample2x2')
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersSmoothingGaussianEnabled', 1)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersSmoothingGaussianSigma', 2.0)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersNoiseRemovalEnabled', 1)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersNoiseRemovalThreshold', 2.0)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersNoiseSuppressionEnabled', 1)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersNoiseRepairEnabled', 1)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersOutlierRemovalEnabled', 1)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersOutlierRemovalThreshold', 10.0)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersReflectionRemovalEnabled', 1)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersClusterRemovalEnabled', 1)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersClusterRemovalMaxNeighborDistance', 6)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersClusterRemovalMinArea', 600)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersExperimentalContrastDistortionCorrectionEnabled', 0)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersExperimentalContrastDistortionRemovalEnabled', 0)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersHoleRepairEnabled', 1)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersHoleRepairHoleSize', 0.7)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersHoleRepairStrictness', 1)
-
* Configuring HDR settings
- set_framegrabber_param (AcqHandle, 'ExposureTime', 10000)
- set_framegrabber_param (AcqHandle, 'Aperture', 2.64)
- set_framegrabber_param (AcqHandle, 'AddAcquisition', 1)
- set_framegrabber_param (AcqHandle, 'Aperture', 2.64)
- set_framegrabber_param (AcqHandle, 'AddAcquisition', 1)
+ * Twinings tea box
+ if (SurfaceModelFile = 'TwiningsTeaBox')
+ set_framegrabber_param (AcqHandle, 'ExposureTime', 10000)
+ set_framegrabber_param (AcqHandle, 'Aperture', 5.50)
+ set_framegrabber_param (AcqHandle, 'AddAcquisition', 1)
+ set_framegrabber_param (AcqHandle, 'Aperture', 4.00)
+ set_framegrabber_param (AcqHandle, 'AddAcquisition', 1)
+ endif
+ * Pringles can
+ if (SurfaceModelFile = 'PringlesCan')
+ set_framegrabber_param (AcqHandle, 'ExposureTime', 10000)
+ set_framegrabber_param (AcqHandle, 'Aperture', 4.36)
+ set_framegrabber_param (AcqHandle, 'AddAcquisition', 1)
+ set_framegrabber_param (AcqHandle, 'Aperture', 2.37)
+ set_framegrabber_param (AcqHandle, 'AddAcquisition', 1)
+ endif
+ * Coca-Cola bottle
+ if (SurfaceModelFile = 'CocaColaBottle')
+ set_framegrabber_param (AcqHandle, 'ExposureTime', 10000)
+ set_framegrabber_param (AcqHandle, 'Aperture', 6.16)
+ set_framegrabber_param (AcqHandle, 'AddAcquisition', 1)
+ set_framegrabber_param (AcqHandle, 'Aperture', 3.08)
+ set_framegrabber_param (AcqHandle, 'AddAcquisition', 1)
+ endif
+ * Your own model created with the SurfaceMatchingCreateModel.hdev
+ if (SurfaceModelFile = '')
+ set_framegrabber_param (AcqHandle, 'ExposureTime', 10000)
+ set_framegrabber_param (AcqHandle, 'Aperture', 16.00)
+ set_framegrabber_param (AcqHandle, 'AddAcquisition', 1)
+ set_framegrabber_param (AcqHandle, 'Aperture', 5.50)
+ set_framegrabber_param (AcqHandle, 'AddAcquisition', 1)
+ set_framegrabber_param (AcqHandle, 'Aperture', 2.37)
+ set_framegrabber_param (AcqHandle, 'AddAcquisition', 1)
+ endif
* Loading the HALCON model for surface-based 3D matching
if (MySurfaceModelFile)
@@ -132,15 +139,15 @@
* RelSamplingDistance - point cloud downsampling (0 = no downsampling)
* Twinings tea box
if (SurfaceModelFile = 'TwiningsTeaBox')
- RelSamplingDistance := 0.03
- endif
- * Pepsi can
- if (SurfaceModelFile = 'PepsiCan')
RelSamplingDistance := 0.01
endif
+ * Pringles can
+ if (SurfaceModelFile = 'PringlesCan')
+ RelSamplingDistance := 0.03
+ endif
* Coca-Cola bottle
if (SurfaceModelFile = 'CocaColaBottle')
- RelSamplingDistance := 0.02
+ RelSamplingDistance := 0.003
endif
* Your own model created with the SurfaceMatchingCreateModel.hdev
if (SurfaceModelFile = '')
diff --git a/source/Applications/Advanced/ObjectMatching/SurfaceMatchingFindModelFromFile.hdev b/source/Applications/Advanced/ObjectMatching/SurfaceMatchingFindModelFromFile.hdev
index 0c7519e..38465d6 100644
--- a/source/Applications/Advanced/ObjectMatching/SurfaceMatchingFindModelFromFile.hdev
+++ b/source/Applications/Advanced/ObjectMatching/SurfaceMatchingFindModelFromFile.hdev
@@ -9,8 +9,8 @@
* The model used for matching is created from a reference view of the object, see SurfaceMatchingCreateModelFromFile.hdev. The model is then searched for in a newly
* captured 3D point cloud. This example comes with models for the three following objects:
* Twinings tea box
- * Pepsi can (0.3 l)
- * plastic Coca-Cola bottle (2 l)
+ * Pringles can (190 g)
+ * plastic Coca-Cola bottle (0.5 l)
*
* Please note that you first need to install Zivid Software and correctly set the environment variables. After this, you can access the camera with the HALCON
* GenICamTL interface.
@@ -24,19 +24,19 @@
* Specify the object for surface-based 3D matching
* Existing Twinings tea box model
- * SurfaceModelFile := 'TwiningsTeaBox'
- * Existing Pepsi can model
- * SurfaceModelFile := 'PepsiCan'
+ SurfaceModelFile := 'TwiningsTeaBox'
+ * Existing Pringles can model
+ * SurfaceModelFile := 'PringlesCan'
* Existing Coca-Cola bottle model
- SurfaceModelFile := 'CocaColaBottle'
+ * SurfaceModelFile := 'CocaColaBottle'
import './../../../Procedures'
get_zivid_sample_data_dir(ZividDataDir)
ScenePath := ZividDataDir + '/ObjectMatching/' + SurfaceModelFile
- * Specify the camera that point cloud was taken with; options are: 'Zivid 2' and 'Zivid 2+'.
- Camera := 'Zivid 2+'
+ * Specify the camera that point cloud was taken with; options are: 'Zivid One+', 'Zivid 2', and 'Zivid 2+'.
+ Camera := 'Zivid One+'
* Specify SamplingPixel that point cloud was taken with; options are: 'all', 'blueSubsample2x2', and 'redSubsample2x2'
- SamplingPixel := 'blueSubsample2x2'
+ SamplingPixel := 'all'
get_zivid_camera_width (Camera, SamplingPixel, MapWidth)
* Specify whether you want to use your own model created with the SurfaceMatchingCreateModelFromFile.hdev
@@ -100,15 +100,15 @@
* RelSamplingDistance - point cloud downsampling (0 = no downsampling)
* Twinings tea box
if (SurfaceModelFile = 'TwiningsTeaBox')
- RelSamplingDistance := 0.03
- endif
- * Pepsi can
- if (SurfaceModelFile = 'PepsiCan')
RelSamplingDistance := 0.01
endif
+ * Pringles can
+ if (SurfaceModelFile = 'PringlesCan')
+ RelSamplingDistance := 0.03
+ endif
* Coca-Cola bottle
if (SurfaceModelFile = 'CocaColaBottle')
- RelSamplingDistance := 0.02
+ RelSamplingDistance := 0.003
endif
* KeyPointFraction - additional downsampling for the detection (1 = all points used)
KeyPointFraction := 1
diff --git a/source/Applications/Basic/FileFormats/ReadPLY.hdev b/source/Applications/Basic/FileFormats/ReadPLY.hdev
index cd97c43..ae45dcd 100644
--- a/source/Applications/Basic/FileFormats/ReadPLY.hdev
+++ b/source/Applications/Basic/FileFormats/ReadPLY.hdev
@@ -20,10 +20,10 @@
import './../../../Procedures'
get_zivid_sample_data_dir(ZividDataDir)
PointCloudFile := ZividDataDir + '/Zivid3D.ply'
- * Specify the camera that point cloud was taken with; options are: 'Zivid 2' and 'Zivid 2+'.
- Camera := 'Zivid 2+'
+ * Specify the camera that point cloud was taken with; options are: 'Zivid One+', 'Zivid 2', and 'Zivid 2+'.
+ Camera := 'Zivid One+'
* Specify SamplingPixel that point cloud was taken with; options are: 'all', 'blueSubsample2x2', and 'redSubsample2x2'
- SamplingPixel := 'blueSubsample2x2'
+ SamplingPixel := 'all'
get_zivid_camera_width (Camera, SamplingPixel, MapWidth)
read_object_model_3d (PointCloudFile, 'mm', ['xyz_map_width'], MapWidth, ObjectModel3D, Status)
diff --git a/source/Camera/Basic/Capture.hdev b/source/Camera/Basic/Capture.hdev
index 1dd1fc2..e8a29d0 100644
--- a/source/Camera/Basic/Capture.hdev
+++ b/source/Camera/Basic/Capture.hdev
@@ -32,6 +32,16 @@
* Switching to single Frame mode
set_framegrabber_param (AcqHandle, 'AcquisitionMode', 'SingleFrame')
+ * Configuring settings
+ set_framegrabber_param (AcqHandle, 'Aperture', 5.66)
+ set_framegrabber_param (AcqHandle, 'ExposureTime', 6500)
+ set_framegrabber_param (AcqHandle, 'Gain', 1)
+ set_framegrabber_param (AcqHandle, 'Brightness', 1)
+ set_framegrabber_param (AcqHandle, 'ProcessingFiltersOutlierRemovalEnabled', 1)
+ set_framegrabber_param (AcqHandle, 'ProcessingFiltersOutlierRemovalThreshold', 5)
+ set_framegrabber_param (AcqHandle, 'ProcessingFiltersSmoothingGaussianEnabled', 1)
+ set_framegrabber_param (AcqHandle, 'ProcessingFiltersSmoothingGaussianSigma', 1.5)
+
* Capturing frame
grab_data (Image, Region, Contours, AcqHandle, ObjectModel3D)
diff --git a/source/Camera/Basic/CaptureHDRCompleteSettings.hdev b/source/Camera/Basic/CaptureHDRCompleteSettings.hdev
index e6cd99c..3d31a2a 100644
--- a/source/Camera/Basic/CaptureHDRCompleteSettings.hdev
+++ b/source/Camera/Basic/CaptureHDRCompleteSettings.hdev
@@ -43,7 +43,7 @@
* Configuring HDR settings for the first image
set_framegrabber_param (AcqHandle, 'Aperture', 8)
set_framegrabber_param (AcqHandle, 'ExposureTime', 10000)
- set_framegrabber_param (AcqHandle, 'Brightness', 1.8)
+ set_framegrabber_param (AcqHandle, 'Brightness', 1)
set_framegrabber_param (AcqHandle, 'Gain', 1)
set_framegrabber_param (AcqHandle, 'AddAcquisition', 1)
@@ -51,7 +51,7 @@
* Configuring HDR settings for the second image
set_framegrabber_param (AcqHandle, 'Aperture', 4.00)
set_framegrabber_param (AcqHandle, 'ExposureTime', 10000)
- set_framegrabber_param (AcqHandle, 'Brightness', 1.8)
+ set_framegrabber_param (AcqHandle, 'Brightness', 1)
set_framegrabber_param (AcqHandle, 'Gain', 1)
set_framegrabber_param (AcqHandle, 'AddAcquisition', 1)
@@ -59,15 +59,15 @@
* Configuring HDR settings for the third image
set_framegrabber_param (AcqHandle, 'Aperture', 4.00)
set_framegrabber_param (AcqHandle, 'ExposureTime', 40000)
- set_framegrabber_param (AcqHandle, 'Brightness', 1.8)
+ set_framegrabber_param (AcqHandle, 'Brightness', 1)
set_framegrabber_param (AcqHandle, 'Gain', 1)
set_framegrabber_param (AcqHandle, 'AddAcquisition', 1)
* Setting global settings
- set_framegrabber_param (AcqHandle, 'Engine', 'phase')
+ set_framegrabber_param (AcqHandle, 'ExperimentalEngine', 'phase')
set_framegrabber_param (AcqHandle, 'SamplingColor', 'rgb')
- set_framegrabber_param (AcqHandle, 'SamplingPixel', 'blueSubsample2x2')
+ set_framegrabber_param (AcqHandle, 'SamplingPixel', 'all')
set_framegrabber_param (AcqHandle, 'RegionOfInterestBoxEnabled', 1)
set_framegrabber_param (AcqHandle, 'RegionOfInterestBoxPointOX', 1000)
set_framegrabber_param (AcqHandle, 'RegionOfInterestBoxPointOY', 1000)
@@ -99,10 +99,9 @@
set_framegrabber_param (AcqHandle, 'ProcessingFiltersExperimentalContrastDistortionCorrectionStrength', 0.4)
set_framegrabber_param (AcqHandle, 'ProcessingFiltersExperimentalContrastDistortionRemovalEnabled', 1)
set_framegrabber_param (AcqHandle, 'ProcessingFiltersExperimentalContrastDistortionRemovalThreshold', 0.5)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersHoleRepairEnabled', 1)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersHoleRepairHoleSize', 0.2)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersHoleRepairStrictness', 1)
- set_framegrabber_param (AcqHandle, 'ProcessingResamplingMode', 'upsample2x2')
+ set_framegrabber_param (AcqHandle, 'ProcessingFiltersExperimentalHoleFillingEnabled', 1)
+ set_framegrabber_param (AcqHandle, 'ProcessingFiltersExperimentalHoleFillingHoleSize', 0.2)
+ set_framegrabber_param (AcqHandle, 'ProcessingFiltersExperimentalHoleFillingStrictness', 1)
set_framegrabber_param (AcqHandle, 'ProcessingColorBalanceBlue', 1)
set_framegrabber_param (AcqHandle, 'ProcessingColorBalanceGreen', 1)
set_framegrabber_param (AcqHandle, 'ProcessingColorBalanceRed', 1)
diff --git a/source/Camera/Basic/CaptureSavePLY.hdev b/source/Camera/Basic/CaptureSavePLY.hdev
index af6d7d9..71aab96 100644
--- a/source/Camera/Basic/CaptureSavePLY.hdev
+++ b/source/Camera/Basic/CaptureSavePLY.hdev
@@ -31,6 +31,12 @@
* Switching to single acquisition mode
set_framegrabber_param (AcqHandle, 'AcquisitionMode', 'SingleFrame')
+ * Configuring settings
+ set_framegrabber_param (AcqHandle, 'Aperture', 5.66)
+ set_framegrabber_param (AcqHandle, 'ExposureTime', 6500)
+ set_framegrabber_param (AcqHandle, 'Gain', 1)
+ set_framegrabber_param (AcqHandle, 'Brightness', 1)
+
* Capturing frame
grab_data (Image, Region, Contours, AcqHandle, ObjectModel3D)
diff --git a/source/Procedures/get_zivid_camera_width.hdvp b/source/Procedures/get_zivid_camera_width.hdvp
index 0bdbcc9..f4de5e7 100644
--- a/source/Procedures/get_zivid_camera_width.hdvp
+++ b/source/Procedures/get_zivid_camera_width.hdvp
@@ -11,7 +11,9 @@
- if (Camera == 'Zivid 2')
+ if (Camera == 'Zivid One+')
+ Width := 1920
+ elseif (Camera == 'Zivid 2')
Width := 1944
elseif (Camera == 'Zivid 2+')
Width := 2448
diff --git a/source/Procedures/get_zivid_model_folder_name.hdvp b/source/Procedures/get_zivid_model_folder_name.hdvp
index 8350d31..7e8f6ab 100644
--- a/source/Procedures/get_zivid_model_folder_name.hdvp
+++ b/source/Procedures/get_zivid_model_folder_name.hdvp
@@ -11,7 +11,9 @@
tuple_split(DeviceModelName, ' ', Substrings)
- if (Substrings[1] == '2')
+ if (Substrings[1] == 'One')
+ ZividFolder := 'zividOne'
+ elseif (Substrings[1] == '2')
ZividFolder := 'zivid2'
elseif (Substrings[1] == '2+')
ZividFolder := 'zivid2Plus'
diff --git a/source/Procedures/read_zivid_json_params.hdvp b/source/Procedures/read_zivid_json_params.hdvp
index e1fd37f..3988d61 100644
--- a/source/Procedures/read_zivid_json_params.hdvp
+++ b/source/Procedures/read_zivid_json_params.hdvp
@@ -12,8 +12,6 @@
get_dict_tuple (Settings, 'Acquisitions', Acquisitions)
get_dict_param (Acquisitions, 'keys', [], AllKeys)
- NonExistingKeys := []
-
* Single Capture or HDR
if (|AllKeys|==1)
set_framegrabber_param (AcqHandle, 'AcquisitionMode', 'SingleFrame')
@@ -37,242 +35,149 @@
endfor
* Engine
- get_dict_param(Settings, 'key_exists', 'Engine', KeyExists)
- if (KeyExists)
- get_dict_tuple (Settings, 'Engine', Engine)
- set_framegrabber_param (AcqHandle, 'Engine', Engine)
- else
- NonExistingKeys := [NonExistingKeys, 'Engine']
- endif
+ get_dict_tuple (Settings, 'Experimental', Experimental)
+ get_dict_tuple (Experimental, 'Engine', Engine)
+ set_framegrabber_param (AcqHandle, 'ExperimentalEngine', Engine)
* Sampling
- get_dict_param(Settings, 'key_exists', 'Sampling', KeyExists)
- if (KeyExists)
- get_dict_tuple (Settings, 'Sampling', Sampling)
- get_dict_tuple (Sampling, 'Color', SamplingColor)
- get_dict_tuple (Sampling, 'Pixel', SamplingPixel)
- set_framegrabber_param (AcqHandle, 'SamplingColor', SamplingColor)
- set_framegrabber_param (AcqHandle, 'SamplingPixel', SamplingPixel)
- else
- NonExistingKeys := [NonExistingKeys, 'Sampling']
- endif
+ get_dict_tuple (Settings, 'Sampling', Sampling)
+ get_dict_tuple (Sampling, 'Color', SamplingColor)
+ get_dict_tuple (Sampling, 'Pixel', SamplingPixel)
+ set_framegrabber_param (AcqHandle, 'SamplingColor', SamplingColor)
+ set_framegrabber_param (AcqHandle, 'SamplingPixel', SamplingPixel)
* RegionOfInterest
- get_dict_param(Settings, 'key_exists', 'RegionOfInterest', KeyExists)
- if (KeyExists)
- get_dict_tuple (Settings, 'RegionOfInterest', RegionOfInterest)
- else
- NonExistingKeys := [NonExistingKeys, 'RegionOfInterest']
- endif
+ get_dict_tuple (Settings, 'RegionOfInterest', RegionOfInterest)
* Box
- get_dict_param(RegionOfInterest, 'key_exists', 'Box', KeyExists)
- if (KeyExists)
- get_dict_tuple (RegionOfInterest, 'Box', Box)
- get_dict_tuple (Box, 'Enabled', Enabled)
- set_framegrabber_param (AcqHandle, 'RegionOfInterestBoxEnabled', Enabled)
- get_dict_tuple (Box, 'Extents', Extents)
- get_dict_tuple (Extents, 0, ExtentsMin)
- set_framegrabber_param (AcqHandle, 'RegionOfInterestBoxExtentsMin', ExtentsMin)
- get_dict_tuple (Extents, 1, ExtentsMax)
- set_framegrabber_param (AcqHandle, 'RegionOfInterestBoxExtentsMax', ExtentsMax)
- get_dict_tuple (Box, 'PointO', PointO)
- get_dict_tuple (PointO, 0, PointOX)
- set_framegrabber_param (AcqHandle, 'RegionOfInterestBoxPointOX', PointOX)
- get_dict_tuple (PointO, 1, PointOY)
- set_framegrabber_param (AcqHandle, 'RegionOfInterestBoxPointOY', PointOY)
- get_dict_tuple (PointO, 2, PointOZ)
- set_framegrabber_param (AcqHandle, 'RegionOfInterestBoxPointOZ', PointOZ)
- get_dict_tuple (Box, 'PointA', PointA)
- get_dict_tuple (PointA, 0, PointAX)
- set_framegrabber_param (AcqHandle, 'RegionOfInterestBoxPointAX', PointAX)
- get_dict_tuple (PointA, 1, PointAY)
- set_framegrabber_param (AcqHandle, 'RegionOfInterestBoxPointAY', PointAY)
- get_dict_tuple (PointA, 2, PointAZ)
- set_framegrabber_param (AcqHandle, 'RegionOfInterestBoxPointAZ', PointAZ)
- get_dict_tuple (Box, 'PointB', PointB)
- get_dict_tuple (PointB, 0, PointBX)
- set_framegrabber_param (AcqHandle, 'RegionOfInterestBoxPointBX', PointBX)
- get_dict_tuple (PointB, 1, PointBY)
- set_framegrabber_param (AcqHandle, 'RegionOfInterestBoxPointBY', PointBY)
- get_dict_tuple (PointB, 2, PointBZ)
- set_framegrabber_param (AcqHandle, 'RegionOfInterestBoxPointBZ', PointBZ)
- else
- NonExistingKeys := [NonExistingKeys, 'RegionOfInterestBox']
- endif
+ get_dict_tuple (RegionOfInterest, 'Box', Box)
+ get_dict_tuple (Box, 'Enabled', Enabled)
+ set_framegrabber_param (AcqHandle, 'RegionOfInterestBoxEnabled', Enabled)
+ get_dict_tuple (Box, 'Extents', Extents)
+ get_dict_tuple (Extents, 0, ExtentsMin)
+ set_framegrabber_param (AcqHandle, 'RegionOfInterestBoxExtentsMin', ExtentsMin)
+ get_dict_tuple (Extents, 1, ExtentsMax)
+ set_framegrabber_param (AcqHandle, 'RegionOfInterestBoxExtentsMax', ExtentsMax)
+ get_dict_tuple (Box, 'PointO', PointO)
+ get_dict_tuple (PointO, 0, PointOX)
+ set_framegrabber_param (AcqHandle, 'RegionOfInterestBoxPointOX', PointOX)
+ get_dict_tuple (PointO, 1, PointOY)
+ set_framegrabber_param (AcqHandle, 'RegionOfInterestBoxPointOY', PointOY)
+ get_dict_tuple (PointO, 2, PointOZ)
+ set_framegrabber_param (AcqHandle, 'RegionOfInterestBoxPointOZ', PointOZ)
+ get_dict_tuple (Box, 'PointA', PointA)
+ get_dict_tuple (PointA, 0, PointAX)
+ set_framegrabber_param (AcqHandle, 'RegionOfInterestBoxPointAX', PointAX)
+ get_dict_tuple (PointA, 1, PointAY)
+ set_framegrabber_param (AcqHandle, 'RegionOfInterestBoxPointAY', PointAY)
+ get_dict_tuple (PointA, 2, PointAZ)
+ set_framegrabber_param (AcqHandle, 'RegionOfInterestBoxPointAZ', PointAZ)
+ get_dict_tuple (Box, 'PointB', PointB)
+ get_dict_tuple (PointB, 0, PointBX)
+ set_framegrabber_param (AcqHandle, 'RegionOfInterestBoxPointBX', PointBX)
+ get_dict_tuple (PointB, 1, PointBY)
+ set_framegrabber_param (AcqHandle, 'RegionOfInterestBoxPointBY', PointBY)
+ get_dict_tuple (PointB, 2, PointBZ)
+ set_framegrabber_param (AcqHandle, 'RegionOfInterestBoxPointBZ', PointBZ)
* Depth
- get_dict_param(RegionOfInterest, 'key_exists', 'Depth', KeyExists)
- if (KeyExists)
- get_dict_tuple (RegionOfInterest, 'Depth', Depth)
- get_dict_tuple (Depth, 'Enabled', Enabled)
- set_framegrabber_param (AcqHandle, 'RegionOfInterestDepthEnabled', 1)
- get_dict_tuple (Depth, 'Range', Range)
- get_dict_tuple (Range, 0, RangeMin)
- set_framegrabber_param (AcqHandle, 'RegionOfInterestDepthRangeMin', RangeMin)
- get_dict_tuple (Range, 1, RangeMax)
- set_framegrabber_param (AcqHandle, 'RegionOfInterestDepthRangeMax', RangeMax)
- else
- NonExistingKeys := [NonExistingKeys, 'RegionOfInterestDepth']
- endif
+ get_dict_tuple (RegionOfInterest, 'Depth', Depth)
+ get_dict_tuple (Depth, 'Enabled', Enabled)
+ set_framegrabber_param (AcqHandle, 'RegionOfInterestDepthEnabled', 1)
+ get_dict_tuple (Depth, 'Range', Range)
+ get_dict_tuple (Range, 0, RangeMin)
+ set_framegrabber_param (AcqHandle, 'RegionOfInterestDepthRangeMin', RangeMin)
+ get_dict_tuple (Range, 1, RangeMax)
+ set_framegrabber_param (AcqHandle, 'RegionOfInterestDepthRangeMax', RangeMax)
* Processing Settings
get_dict_tuple (Settings, 'Processing', Processing)
get_dict_tuple (Processing, 'Filters', Filters)
* Cluster Filter
- get_dict_param(Filters, 'key_exists', 'Cluster', KeyExists)
- if (KeyExists)
- get_dict_tuple (Filters, 'Cluster', Cluster)
- get_dict_tuple (Cluster, 'Removal', Removal)
- get_dict_tuple (Removal, 'Enabled', Enabled)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersClusterRemovalEnabled', Enabled)
- get_dict_tuple (Removal, 'MaxNeighborDistance', MaxNeighborDistance)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersClusterRemovalMaxNeighborDistance', MaxNeighborDistance)
- get_dict_tuple (Removal, 'MinArea', MinArea)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersClusterRemovalMinArea', MinArea)
- else
- NonExistingKeys := [NonExistingKeys, 'ClusterFilter']
- endif
+ get_dict_tuple (Filters, 'Cluster', Cluster)
+ get_dict_tuple (Cluster, 'Removal', Removal)
+ get_dict_tuple (Removal, 'Enabled', Enabled)
+ set_framegrabber_param (AcqHandle, 'ProcessingFiltersClusterRemovalEnabled', Enabled)
+ get_dict_tuple (Removal, 'MaxNeighborDistance', MaxNeighborDistance)
+ set_framegrabber_param (AcqHandle, 'ProcessingFiltersClusterRemovalMaxNeighborDistance', MaxNeighborDistance)
+ get_dict_tuple (Removal, 'MinArea', MinArea)
+ set_framegrabber_param (AcqHandle, 'ProcessingFiltersClusterRemovalMinArea', MinArea)
* Noise Filter
- get_dict_param(Filters, 'key_exists', 'Noise', KeyExists)
- if (KeyExists)
- get_dict_tuple (Filters, 'Noise', Noise)
- get_dict_tuple (Noise, 'Removal', Removal)
- get_dict_tuple (Removal, 'Enabled', Enabled)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersNoiseRemovalEnabled', Enabled)
- get_dict_tuple (Removal, 'Threshold', Threshold)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersNoiseRemovalThreshold', Threshold)
- get_dict_tuple (Noise, 'Suppression', Suppression)
- get_dict_tuple (Suppression, 'Enabled', Enabled)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersNoiseSuppressionEnabled', Enabled)
- get_dict_tuple (Noise, 'Repair', Repair)
- get_dict_tuple (Repair, 'Enabled', Enabled)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersNoiseRepairEnabled', Enabled)
- else
- NonExistingKeys := [NonExistingKeys, 'NoiseFilter']
- endif
+ get_dict_tuple (Filters, 'Noise', Noise)
+ get_dict_tuple (Noise, 'Removal', Removal)
+ get_dict_tuple (Removal, 'Enabled', Enabled)
+ set_framegrabber_param (AcqHandle, 'ProcessingFiltersNoiseRemovalEnabled', Enabled)
+ get_dict_tuple (Removal, 'Threshold', Threshold)
+ set_framegrabber_param (AcqHandle, 'ProcessingFiltersNoiseRemovalThreshold', Threshold)
+ get_dict_tuple (Noise, 'Suppression', Suppression)
+ get_dict_tuple (Suppression, 'Enabled', Enabled)
+ set_framegrabber_param (AcqHandle, 'ProcessingFiltersNoiseSuppressionEnabled', Enabled)
+ get_dict_tuple (Noise, 'Repair', Repair)
+ get_dict_tuple (Repair, 'Enabled', Enabled)
+ set_framegrabber_param (AcqHandle, 'ProcessingFiltersNoiseRepairEnabled', Enabled)
* Outlier Filter
- get_dict_param(Filters, 'key_exists', 'Outlier', KeyExists)
- if (KeyExists)
- get_dict_tuple (Filters, 'Outlier', Outlier)
- get_dict_tuple (Outlier, 'Removal', Removal)
- get_dict_tuple (Removal, 'Enabled', Enabled)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersOutlierRemovalEnabled', Enabled)
- get_dict_tuple (Removal, 'Threshold', Threshold)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersOutlierRemovalThreshold', Threshold)
- else
- NonExistingKeys := [NonExistingKeys, 'OutlierFilter']
- endif
+ get_dict_tuple (Filters, 'Outlier', Outlier)
+ get_dict_tuple (Outlier, 'Removal', Removal)
+ get_dict_tuple (Removal, 'Enabled', Enabled)
+ set_framegrabber_param (AcqHandle, 'ProcessingFiltersOutlierRemovalEnabled', Enabled)
+ get_dict_tuple (Removal, 'Threshold', Threshold)
+ set_framegrabber_param (AcqHandle, 'ProcessingFiltersOutlierRemovalThreshold', Threshold)
* Reflection Filter
- get_dict_param(Filters, 'key_exists', 'Reflection', KeyExists)
- if (KeyExists)
- get_dict_tuple (Filters, 'Reflection', Reflection)
- get_dict_tuple (Reflection, 'Removal', Removal)
- get_dict_tuple (Removal, 'Enabled', Enabled)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersReflectionRemovalEnabled', Enabled)
- get_dict_tuple (Removal, 'Mode', Mode)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersReflectionRemovalMode', Mode)
- else
- NonExistingKeys := [NonExistingKeys, 'ReflectionFilter']
- endif
+ get_dict_tuple (Filters, 'Reflection', Reflection)
+ get_dict_tuple (Reflection, 'Removal', Removal)
+ get_dict_tuple (Removal, 'Enabled', Enabled)
+ set_framegrabber_param (AcqHandle, 'ProcessingFiltersReflectionRemovalEnabled', Enabled)
+ get_dict_tuple (Removal, 'Experimental', Experimental)
+ get_dict_tuple (Experimental, 'Mode', Mode)
+ set_framegrabber_param (AcqHandle, 'ProcessingFiltersReflectionRemovalExperimentalMode', Mode)
* Smoothing Filter
- get_dict_param(Filters, 'key_exists', 'Smoothing', KeyExists)
- if (KeyExists)
- get_dict_tuple (Filters, 'Smoothing', Smoothing)
- get_dict_tuple (Smoothing, 'Gaussian', Gaussian)
- get_dict_tuple (Gaussian, 'Enabled', Enabled)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersSmoothingGaussianEnabled', Enabled)
- get_dict_tuple (Gaussian, 'Sigma', Sigma)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersSmoothingGaussianSigma', Sigma)
- else
- NonExistingKeys := [NonExistingKeys, 'SmoothingFilter']
- endif
+ get_dict_tuple (Filters, 'Smoothing', Smoothing)
+ get_dict_tuple (Smoothing, 'Gaussian', Gaussian)
+ get_dict_tuple (Gaussian, 'Enabled', Enabled)
+ set_framegrabber_param (AcqHandle, 'ProcessingFiltersSmoothingGaussianEnabled', Enabled)
+ get_dict_tuple (Gaussian, 'Sigma', Sigma)
+ set_framegrabber_param (AcqHandle, 'ProcessingFiltersSmoothingGaussianSigma', Sigma)
* ContrastDistortion Filter
- get_dict_param(Filters, 'key_exists', 'Experimental', KeyExists)
- if (KeyExists)
- get_dict_tuple (Filters, 'Experimental', Experimental)
- get_dict_param(Experimental, 'key_exists', 'ContrastDistortion', KeyExists)
- if (KeyExists)
- get_dict_tuple (Experimental, 'ContrastDistortion', ContrastDistortion)
- get_dict_tuple (ContrastDistortion, 'Correction', Correction)
- get_dict_tuple (Correction, 'Enabled', Enabled)
- get_dict_tuple (Correction, 'Strength', Strength)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersExperimentalContrastDistortionCorrectionEnabled', Enabled)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersExperimentalContrastDistortionCorrectionStrength', Strength)
- get_dict_tuple (ContrastDistortion, 'Removal', Removal)
- get_dict_tuple (Removal, 'Enabled', Enabled)
- get_dict_tuple (Removal, 'Threshold', Threshold)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersExperimentalContrastDistortionRemovalEnabled', Enabled)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersExperimentalContrastDistortionRemovalThreshold', Threshold)
- else
- NonExistingKeys := [NonExistingKeys, 'ContrastDistortionFilter']
- endif
- else
- NonExistingKeys := [NonExistingKeys, 'Experimental']
- endif
-
- * Hole Repair Filter
- get_dict_param(Filters, 'key_exists', 'Hole', KeyExists)
- if (KeyExists)
- get_dict_tuple (Filters, 'Hole', Hole)
- get_dict_tuple (Hole, 'Repair', Repair)
- get_dict_tuple (Repair, 'Enabled', Enabled)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersHoleRepairEnabled', Enabled)
- get_dict_tuple (Repair, 'HoleSize', HoleSize)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersHoleRepairHoleSize', HoleSize)
- get_dict_tuple (Repair, 'Strictness', Strictness)
- set_framegrabber_param (AcqHandle, 'ProcessingFiltersHoleRepairStrictness', Strictness)
- else
- NonExistingKeys := [NonExistingKeys, 'HoleRepairFilter']
- endif
-
- * Resampling
- get_dict_param(Processing, 'key_exists', 'Resampling', KeyExists)
- if (KeyExists)
- get_dict_tuple(Processing, 'Resampling', Resampling)
- get_dict_tuple(Resampling, 'Mode', Mode)
- set_framegrabber_param(AcqHandle, 'ProcessingResamplingMode', Mode)
- else
- NonExistingKeys := [NonExistingKeys, 'Resampling']
- endif
+ get_dict_tuple (Filters, 'Experimental', Experimental)
+ get_dict_tuple (Experimental, 'ContrastDistortion', ContrastDistortion)
+ get_dict_tuple (ContrastDistortion, 'Correction', Correction)
+ get_dict_tuple (Correction, 'Enabled', Enabled)
+ get_dict_tuple (Correction, 'Strength', Strength)
+ set_framegrabber_param (AcqHandle, 'ProcessingFiltersExperimentalContrastDistortionCorrectionEnabled', Enabled)
+ set_framegrabber_param (AcqHandle, 'ProcessingFiltersExperimentalContrastDistortionCorrectionStrength', Strength)
+ get_dict_tuple (ContrastDistortion, 'Removal', Removal)
+ get_dict_tuple (Removal, 'Enabled', Enabled)
+ get_dict_tuple (Removal, 'Threshold', Threshold)
+ set_framegrabber_param (AcqHandle, 'ProcessingFiltersExperimentalContrastDistortionRemovalEnabled', Enabled)
+ set_framegrabber_param (AcqHandle, 'ProcessingFiltersExperimentalContrastDistortionRemovalThreshold', Threshold)
+
+ * Hole Filling Filter
+ get_dict_tuple (Experimental, 'HoleFilling', HoleFilling)
+ get_dict_tuple (HoleFilling, 'Enabled', Enabled)
+ set_framegrabber_param (AcqHandle, 'ProcessingFiltersExperimentalHoleFillingEnabled', Enabled)
+ get_dict_tuple (HoleFilling, 'HoleSize', HoleSize)
+ set_framegrabber_param (AcqHandle, 'ProcessingFiltersExperimentalHoleFillingHoleSize', HoleSize)
+ get_dict_tuple (HoleFilling, 'Strictness', Strictness)
+ set_framegrabber_param (AcqHandle, 'ProcessingFiltersExperimentalHoleFillingStrictness', Strictness)
* Color Settings
- get_dict_param(Processing, 'key_exists', 'Color', KeyExists)
- if (KeyExists)
- get_dict_tuple (Processing, 'Color', Color)
- get_dict_tuple (Color, 'Balance', Balance)
- get_dict_tuple (Balance, 'Blue', Blue)
- get_dict_tuple (Balance, 'Green', Green)
- get_dict_tuple (Balance, 'Red', Red)
- set_framegrabber_param (AcqHandle, 'ProcessingColorBalanceBlue', Blue)
- set_framegrabber_param (AcqHandle, 'ProcessingColorBalanceGreen', Green)
- set_framegrabber_param (AcqHandle, 'ProcessingColorBalanceRed', Red)
- get_dict_tuple (Color, 'Experimental', Experimental)
- get_dict_tuple (Experimental, 'Mode', Mode)
- set_framegrabber_param (AcqHandle, 'ProcessingColorExperimentalMode', Mode)
- else
- NonExistingKeys := [NonExistingKeys, 'Color']
- endif
-
- tuple_length(NonExistingKeys, NumberOfNonExistingKeys)
- if (NumberOfNonExistingKeys > 0)
- dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
- DisplayText := 'Could not find the following capture settings:\n'
- for Index := 0 to |NumberOfNonExistingKeys| - 1 by 1
- tuple_select(NonExistingKeys, Index, NonExistingKey)
- DisplayText := DisplayText + '\t\t- ' + NonExistingKey + '\n'
- endfor
- DisplayText := DisplayText + 'Using default settings instead.'
- dev_disp_text(DisplayText, 'window', 0, 0, 'red', ['box'], ['false'])
- wait_seconds(5)
- dev_close_window()
- endif
+ get_dict_tuple (Processing, 'Color', Color)
+ get_dict_tuple (Color, 'Balance', Balance)
+ get_dict_tuple (Balance, 'Blue', Blue)
+ get_dict_tuple (Balance, 'Green', Green)
+ get_dict_tuple (Balance, 'Red', Red)
+ set_framegrabber_param (AcqHandle, 'ProcessingColorBalanceBlue', Blue)
+ set_framegrabber_param (AcqHandle, 'ProcessingColorBalanceGreen', Green)
+ set_framegrabber_param (AcqHandle, 'ProcessingColorBalanceRed', Red)
+ get_dict_tuple (Color, 'Experimental', Experimental)
+ get_dict_tuple (Experimental, 'Mode', Mode)
+ set_framegrabber_param (AcqHandle, 'ProcessingColorExperimentalMode', Mode)
return ()
diff --git a/source/SampleUtils/convert_intrinsics_opencv_to_halcon.py b/source/SampleUtils/convert_intrinsics_opencv_to_halcon.py
index a30759d..002af3d 100644
--- a/source/SampleUtils/convert_intrinsics_opencv_to_halcon.py
+++ b/source/SampleUtils/convert_intrinsics_opencv_to_halcon.py
@@ -20,8 +20,6 @@
GetCameraIntrinsics.cpp code sample from https://github.com/zivid/zivid-cpp-samples. An
example YML file for this sample can be found under the main instructions for Zivid samples.
-Note: This example uses experimental SDK features, which may be modified, moved, or deleted in the future without notice.
-
"""
import argparse
@@ -239,6 +237,14 @@ def from_file(cls, filepath: Path, model_name: str, sampling: str):
if sampling in ["blueSubsample2x2", "redSubsample2x2"]:
pixel_size *= 2
image_size = (image_size / 2).astype(np.int32)
+ elif model_name in [
+ "zivid one",
+ "zivid one plus",
+ ]:
+ pixel_size = 5.86e-6
+ image_size = np.array([np.int32(1920), np.int32(1200)])
+ if sampling != "all":
+ raise ValueError(f"{sampling} is not supported for {model_name.title()}")
return cls(pixel_size, image_size, intrinsics)
@@ -264,8 +270,13 @@ def from_camera(cls, settings_path: Optional[Path] = None):
if settings and settings.sampling.pixel in ["blueSubsample2x2", "redSubsample2x2"]:
pixel_size *= 2
image_size = (image_size / 2).astype(np.int32)
+ elif "zividOne" in camera.info.model:
+ pixel_size = 5.86e-6
+ image_size = np.array([np.int32(1920), np.int32(1200)])
+ if settings and settings.sampling.pixel != "all":
+ raise ValueError(f"{settings.sampling.pixel} is not supported for {camera.info.model_name}")
else:
- raise RuntimeError("Unsupported camera model")
+ raise RuntimeError("Unsupported camera model in this sample")
return cls(pixel_size, image_size, intrinsics)
@@ -347,7 +358,7 @@ def _args() -> argparse.Namespace:
parser.add_argument(
"--model-name",
type=str,
- choices=["zivid 2", "zivid 2+"],
+ choices=["zivid one", "zivid one plus", "zivid 2", "zivid 2+"],
required="--input-intrinsics" in sys.argv,
help="Zivid camera model",
)