ilabs-flir 1.0.2 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/Flir.podspec +31 -31
  2. package/README.md +1271 -1271
  3. package/android/Flir/build.gradle.kts +85 -80
  4. package/android/Flir/src/main/AndroidManifest.xml +31 -31
  5. package/android/Flir/src/main/java/com/flir/thermalsdk/ErrorCodeException.java +14 -0
  6. package/android/Flir/src/main/java/com/flir/thermalsdk/image/ImageBuffer.java +11 -0
  7. package/android/Flir/src/main/java/com/flir/thermalsdk/image/JavaImageBuffer.java +35 -0
  8. package/android/Flir/src/main/java/com/flir/thermalsdk/image/Palette.java +15 -0
  9. package/android/Flir/src/main/java/com/flir/thermalsdk/image/PaletteManager.java +16 -0
  10. package/android/Flir/src/main/java/com/flir/thermalsdk/image/Point.java +11 -0
  11. package/android/Flir/src/main/java/com/flir/thermalsdk/image/ThermalImage.java +23 -0
  12. package/android/Flir/src/main/java/com/flir/thermalsdk/image/ThermalValue.java +9 -0
  13. package/android/Flir/src/main/java/com/flir/thermalsdk/live/CameraType.java +8 -0
  14. package/android/Flir/src/main/java/com/flir/thermalsdk/live/CommunicationInterface.java +16 -0
  15. package/android/Flir/src/main/java/com/flir/thermalsdk/live/Identity.java +23 -0
  16. package/android/Flir/src/main/java/com/flir/thermalsdk/live/IpSettings.java +9 -0
  17. package/android/Flir/src/main/java/com/flir/thermalsdk/live/connectivity/ConnectionStatusListener.java +7 -0
  18. package/android/Flir/src/main/java/com/flir/thermalsdk/live/remote/OnReceived.java +5 -0
  19. package/android/Flir/src/main/java/com/flir/thermalsdk/live/remote/OnRemoteError.java +7 -0
  20. package/android/Flir/src/main/java/flir/android/CameraHandler.java +224 -194
  21. package/android/Flir/src/main/java/flir/android/FlirCommands.java +111 -0
  22. package/android/Flir/src/main/java/flir/android/FlirConnectionManager.java +354 -0
  23. package/android/Flir/src/main/java/flir/android/FlirController.kt +11 -11
  24. package/android/Flir/src/main/java/flir/android/FlirDiscoveryManager.java +236 -0
  25. package/android/Flir/src/main/java/flir/android/FlirDownloadManager.kt +75 -75
  26. package/android/Flir/src/main/java/flir/android/FlirDownloadPackage.kt +16 -16
  27. package/android/Flir/src/main/java/flir/android/FlirFrameCache.kt +6 -6
  28. package/android/Flir/src/main/java/flir/android/FlirManager.kt +254 -248
  29. package/android/Flir/src/main/java/flir/android/FlirModule.kt +74 -74
  30. package/android/Flir/src/main/java/flir/android/FlirPackage.kt +19 -19
  31. package/android/Flir/src/main/java/flir/android/FlirSDKLoader.kt +195 -195
  32. package/android/Flir/src/main/java/flir/android/FlirSdkManager.java +890 -0
  33. package/android/Flir/src/main/java/flir/android/FlirStatus.kt +12 -12
  34. package/android/Flir/src/main/java/flir/android/FlirView.kt +48 -48
  35. package/android/Flir/src/main/java/flir/android/FlirViewManager.kt +13 -13
  36. package/android/Flir/src/main/java/flir/android/FrameDataHolder.java +14 -14
  37. package/app.plugin.js +264 -264
  38. package/expo-module.config.json +5 -5
  39. package/ios/Flir/Framework/ThermalSDK/FLIRBattery.h +76 -76
  40. package/ios/Flir/Framework/ThermalSDK/FLIRCalibration.h +108 -108
  41. package/ios/Flir/Framework/ThermalSDK/FLIRCamera.h +156 -156
  42. package/ios/Flir/Framework/ThermalSDK/FLIRCameraDeviceInfo.h +53 -53
  43. package/ios/Flir/Framework/ThermalSDK/FLIRCameraEvent.h +132 -132
  44. package/ios/Flir/Framework/ThermalSDK/FLIRCameraImport.h +204 -204
  45. package/ios/Flir/Framework/ThermalSDK/FLIRColorDistributionSettings.h +204 -204
  46. package/ios/Flir/Framework/ThermalSDK/FLIRColorizer.h +82 -82
  47. package/ios/Flir/Framework/ThermalSDK/FLIRDiscoveredCamera.h +44 -44
  48. package/ios/Flir/Framework/ThermalSDK/FLIRDiscovery.h +132 -132
  49. package/ios/Flir/Framework/ThermalSDK/FLIRDisplaySettings.h +29 -29
  50. package/ios/Flir/Framework/ThermalSDK/FLIRFocus.h +70 -70
  51. package/ios/Flir/Framework/ThermalSDK/FLIRFusion.h +192 -192
  52. package/ios/Flir/Framework/ThermalSDK/FLIRFusionController.h +136 -136
  53. package/ios/Flir/Framework/ThermalSDK/FLIRFusionTransformation.h +35 -35
  54. package/ios/Flir/Framework/ThermalSDK/FLIRIdentity.h +264 -264
  55. package/ios/Flir/Framework/ThermalSDK/FLIRImageBase.h +196 -196
  56. package/ios/Flir/Framework/ThermalSDK/FLIRImageColorizer.h +26 -26
  57. package/ios/Flir/Framework/ThermalSDK/FLIRImageStatistics.h +61 -61
  58. package/ios/Flir/Framework/ThermalSDK/FLIRIsotherms.h +208 -208
  59. package/ios/Flir/Framework/ThermalSDK/FLIRMeasurementArea.h +38 -38
  60. package/ios/Flir/Framework/ThermalSDK/FLIRMeasurementCollection.h +147 -147
  61. package/ios/Flir/Framework/ThermalSDK/FLIRMeasurementDelta.h +62 -62
  62. package/ios/Flir/Framework/ThermalSDK/FLIRMeasurementDimensions.h +33 -33
  63. package/ios/Flir/Framework/ThermalSDK/FLIRMeasurementEllipse.h +49 -49
  64. package/ios/Flir/Framework/ThermalSDK/FLIRMeasurementLine.h +66 -66
  65. package/ios/Flir/Framework/ThermalSDK/FLIRMeasurementMarker.h +69 -69
  66. package/ios/Flir/Framework/ThermalSDK/FLIRMeasurementParameters.h +41 -41
  67. package/ios/Flir/Framework/ThermalSDK/FLIRMeasurementRectangle.h +36 -36
  68. package/ios/Flir/Framework/ThermalSDK/FLIRMeasurementReference.h +27 -27
  69. package/ios/Flir/Framework/ThermalSDK/FLIRMeasurementShape.h +46 -46
  70. package/ios/Flir/Framework/ThermalSDK/FLIRMeasurementSpot.h +33 -33
  71. package/ios/Flir/Framework/ThermalSDK/FLIRMeasurementsController.h +160 -160
  72. package/ios/Flir/Framework/ThermalSDK/FLIRMeterLinkSensorPoll.h +247 -247
  73. package/ios/Flir/Framework/ThermalSDK/FLIROverlayController.h +27 -27
  74. package/ios/Flir/Framework/ThermalSDK/FLIRPalette.h +60 -60
  75. package/ios/Flir/Framework/ThermalSDK/FLIRPaletteController.h +36 -36
  76. package/ios/Flir/Framework/ThermalSDK/FLIRPaletteManager.h +97 -97
  77. package/ios/Flir/Framework/ThermalSDK/FLIRQuantification.h +55 -55
  78. package/ios/Flir/Framework/ThermalSDK/FLIRRemoteControl.h +393 -393
  79. package/ios/Flir/Framework/ThermalSDK/FLIRRenderer.h +35 -35
  80. package/ios/Flir/Framework/ThermalSDK/FLIRRendererImpl.h +17 -17
  81. package/ios/Flir/Framework/ThermalSDK/FLIRScale.h +99 -99
  82. package/ios/Flir/Framework/ThermalSDK/FLIRScaleController.h +44 -44
  83. package/ios/Flir/Framework/ThermalSDK/FLIRStream.h +109 -109
  84. package/ios/Flir/Framework/ThermalSDK/FLIRStreamer.h +124 -124
  85. package/ios/Flir/Framework/ThermalSDK/FLIRSystem.h +40 -40
  86. package/ios/Flir/Framework/ThermalSDK/FLIRTemperatureRange.h +43 -43
  87. package/ios/Flir/Framework/ThermalSDK/FLIRThermalDelta.h +77 -77
  88. package/ios/Flir/Framework/ThermalSDK/FLIRThermalImage.h +331 -331
  89. package/ios/Flir/Framework/ThermalSDK/FLIRThermalImageFile.h +56 -56
  90. package/ios/Flir/Framework/ThermalSDK/FLIRThermalParameters.h +31 -31
  91. package/ios/Flir/Framework/ThermalSDK/FLIRThermalValue.h +92 -92
  92. package/ios/Flir/Framework/ThermalSDK/FLIRWirelessCameraDetails.h +88 -88
  93. package/ios/Flir/Framework/ThermalSDK/ThermalSDK.h +73 -73
  94. package/ios/Flir/SDKLoader/FlirSDKLoader.m +13 -13
  95. package/ios/Flir/SDKLoader/FlirSDKLoader.swift +175 -175
  96. package/ios/Flir/src/FlirEventEmitter.h +12 -12
  97. package/ios/Flir/src/FlirEventEmitter.m +33 -33
  98. package/ios/Flir/src/FlirModule.h +10 -10
  99. package/ios/Flir/src/FlirModule.m +381 -381
  100. package/ios/Flir/src/FlirPreviewView.h +13 -13
  101. package/ios/Flir/src/FlirPreviewView.m +24 -24
  102. package/ios/Flir/src/FlirState.h +20 -20
  103. package/ios/Flir/src/FlirState.m +79 -79
  104. package/ios/Flir/src/FlirViewManager.h +9 -9
  105. package/ios/Flir/src/FlirViewManager.m +16 -16
  106. package/package.json +60 -60
  107. package/react-native.config.js +14 -14
  108. package/scripts/copy_ios_libs.sh +32 -32
  109. package/scripts/create_stubs.py +174 -174
  110. package/scripts/download-sdk.js +62 -62
  111. package/scripts/prepare-binaries.sh +171 -171
  112. package/sdk-manifest.json +30 -30
  113. package/src/FlirDownload.ts +78 -78
  114. package/src/index.d.ts +17 -17
  115. package/src/index.js +7 -7
  116. package/src/index.ts +7 -7
@@ -1,204 +1,204 @@
1
- //
2
- // FLIRColorDistributionSettings.h
3
- // ThermalSDK
4
- //
5
- // Created by FLIR on 2021-09-03.
6
- // Copyright © 2022 Teledyne FLIR. All rights reserved.
7
- //
8
-
9
- #import <Foundation/Foundation.h>
10
-
11
- NS_ASSUME_NONNULL_BEGIN
12
-
13
- /**
14
- * These methods transform each slot histogram bin x into the weight y.
15
- */
16
- typedef NS_ENUM(NSUInteger, FLIRHistogramModifier) {
17
- /** y = x^(1/2).
18
- * If all pixels in a slot were collected within a circle,
19
- * the radius of this circle is proportional to the slot weight.
20
- */
21
- FLIRSquareRoot,
22
-
23
- /** y = x^(1/3) */
24
- FLIRCubicRoot,
25
-
26
- /** ln(x) if x >= 2 else 0. Every doubling of a slot's pixel count
27
- * will increase the slot weight by a fixed amount.
28
- */
29
- FLIRLn,
30
-
31
- /** Scaled LN (y = y_LN / 2.3), which has no effect on the normalized weights. */
32
- FLIRLog10,
33
-
34
- /** y = min(x, plateauCount)
35
- * Put the cap @p ulPlateauCount on each of this histogram's bins.
36
- */
37
- FLIRPlateau,
38
-
39
- /** y = x */
40
- FLIRNone
41
- };
42
-
43
- /**
44
- * Specifies the color distributions used when running the colorizer on an image.
45
- */
46
- @interface FLIRColorDistributionSettings : NSObject
47
-
48
- @end
49
-
50
- /**
51
- * The color information in the image is distributed linear to the temperature values of the image.
52
- *
53
- * @note The palette colors used for each pixel is mapped in a linear fashion between the min and max temperatures of the image.
54
- * Pixels above and below min and max will contain a color defined in the @ref atlas::image::Palette.
55
- */
56
- @interface FLIRTemperatureLinearSettings : FLIRColorDistributionSettings
57
-
58
- @end
59
-
60
- /**
61
- * The colors are evenly distributed over the existing temperatures of the image and enhance the contrast.
62
- *
63
- * This color distribution can be particularly successful when the image contains few peaks of very low or
64
- * high temperature's values.
65
- */
66
- @interface FLIRHistogramEqualizationSettings : FLIRColorDistributionSettings
67
-
68
- /** Minimum heq slope limit. */
69
- @property (nonatomic, assign) float linearPercent;
70
- /** Maximum heq slope limit. */
71
- @property (nonatomic, assign) int plateauTruncation;
72
- /** How many pixels to ignore. */
73
- @property (nonatomic, assign) float tailPercent;
74
- /** Decrease to make the histogram more responsive to new scene content. */
75
- @property (nonatomic, assign) float histogramDf;
76
- /** Temporal filtering of span limits. */
77
- @property (nonatomic, assign) float scaleDf;
78
- /** Mode to transform each slot histogram bin x into the weight y. */
79
- @property (nonatomic, assign) FLIRHistogramModifier modifierMode;
80
-
81
- @end
82
-
83
- /**
84
- * The color information in the image is distributed linear to the signal values of the image.
85
- *
86
- * @note The palette colors used for each pixel is mapped in a linear fashion between the min and max signal values of the image. Pixels above and below min and max will contain a color defined in the @ref atlas::image::Palette.
87
- */
88
- @interface FLIRSignalLinearSettings : FLIRColorDistributionSettings
89
-
90
- @end
91
-
92
- /**
93
- * Specifies parameters for the plateau histogram equalization mode.
94
- *
95
- * The colors are evenly distributed over the existing temperatures of the image and enhance the contrast.
96
- * @note This color distribution can be particularly successful when the image contains few peaks
97
- * of very low or high temperature's values.
98
- */
99
- @interface FLIRPlateauHistogramEqSettings : FLIRColorDistributionSettings
100
-
101
- /** Limits the maximum slope of the mapping function. */
102
- @property (nonatomic, assign) float maxGain;
103
- /** Limits the population of any single histogram bin. */
104
- @property (nonatomic, assign) float percentPerBin;
105
- /** Increasing values of Linear Percent more accurately preserves the visual representation of an object */
106
- @property (nonatomic, assign) float linearPercent;
107
- /** Determines the percentage of the histogram tails which are not ignored when generating the mapping function.*/
108
- @property (nonatomic, assign) float outlierPercent;
109
- /** Used to adjust the perceived brightness of the image. */
110
- @property (nonatomic, assign) float gamma;
111
-
112
- @end
113
-
114
- /**
115
- * Specifies parameters for the Digital Detail Enhancement (DDE) and Entropy modes.
116
- * Entropy modes reserve more shades of gray/colors for areas with more entropy by assigning areas with lower entropy lesser gray shades.
117
- *
118
- * @note In this mode one color might not map to a specific temperature. Which means that the output
119
- * scale is not radiometric accurate.
120
- */
121
- @interface FLIRDDESettings : FLIRPlateauHistogramEqSettings
122
-
123
- /** Detail to background ratio. */
124
- @property (nonatomic, assign) float detailToBackground;
125
- /** DDE smoothing factor */
126
- @property (nonatomic, assign) float smoothingFactor;
127
- /** Headroom for detail at dynamic range extremes */
128
- @property (nonatomic, assign) float detailHeadroom;
129
-
130
- @end
131
-
132
-
133
- /**
134
- * Specifies parameters for Entropy modes.
135
- * Entropy modes reserve more shades of gray/colors for areas with more entropy by assigning areas
136
- * with lower entropy lesser gray shades.
137
- *
138
- * @note In this mode one color might not map to a specific temperature. Which means that the output
139
- * scale is not radiometric accurate.
140
- */
141
- @interface FLIREntropySettings : FLIRDDESettings
142
-
143
- @end
144
-
145
- /**
146
- * Specifies parameters for the Adaptive Detail Enhancement (ADE) mode.
147
- * Adaptive detail enhancement which is using a edge-preserving and noise-reducing smoothing filter
148
- * to enhance the contrast in the image.
149
- *
150
- * @note In this mode one color might not map to a specific temperature. Which means that the
151
- * output scale is not radiometric accurate.
152
- */
153
- @interface FLIRADESettings : FLIRColorDistributionSettings
154
-
155
- /** Noise amplification limit (LF) (Low value=Disable this feature) */
156
- @property (nonatomic, assign) float alphaNoise;
157
- /** Edge preserving limit (LF); Too avoid halos around sharp edges (High value=Disable this feature). */
158
- @property (nonatomic, assign) float betaLf;
159
- /** Edge preserving limit (HF); Too avoid halos around sharp edges (High value=Disable this feature). */
160
- @property (nonatomic, assign) float betaHf;
161
- /** LF/HF crossover level; Low value=Only HF enhancement;High value=Only LF enhancement. */
162
- @property (nonatomic, assign) float betaMix;
163
- /** Amount of the high pass filter that should be used. */
164
- @property (nonatomic, assign) float hpBlendingAmount;
165
- /** Low part of the histogram that is discarded. */
166
- @property (nonatomic, assign) float lowLimit;
167
- /** High part of the histogram that is discarded. */
168
- @property (nonatomic, assign) float highLimit;
169
- /** Headroom for details at dynamic range extremes. */
170
- @property (nonatomic, assign) float headRoom;
171
- /** Footroom for details at dynamic range extremes. */
172
- @property (nonatomic, assign) float footRoom;
173
- /** Limits the maximum slope of the mapping function. */
174
- @property (nonatomic, assign) float gain;
175
- /** Linear portion used for mapping the colors. */
176
- @property (nonatomic, assign) float linearMix;
177
-
178
- @end
179
-
180
- /**
181
- * Specifies parameters for the FSX mode.
182
- * FSX is using a edge-preserving and noise-reducing smoothing filter
183
- * to enhance the contrast in the image.
184
- */
185
- @interface FLIRFSXSettings : FLIRColorDistributionSettings
186
-
187
- /** Maximum allowed difference in the bilateral filtering. */
188
- @property (nonatomic, assign) float sigmaR;
189
- /** The weight factor applied to image details. */
190
- @property (nonatomic, assign) unsigned short alpha;
191
-
192
- @end
193
-
194
- /**
195
- * Specifies parameters for the local contrast enhancement (LCE) mode.
196
- */
197
- @interface FLIRLCESettings : FLIRDDESettings
198
-
199
- /** Can be used to enhance the contrast. */
200
- @property (nonatomic, assign) int contrast;
201
-
202
- @end
203
-
204
- NS_ASSUME_NONNULL_END
1
+ //
2
+ // FLIRColorDistributionSettings.h
3
+ // ThermalSDK
4
+ //
5
+ // Created by FLIR on 2021-09-03.
6
+ // Copyright © 2022 Teledyne FLIR. All rights reserved.
7
+ //
8
+
9
+ #import <Foundation/Foundation.h>
10
+
11
+ NS_ASSUME_NONNULL_BEGIN
12
+
13
+ /**
14
+ * These methods transform each slot histogram bin x into the weight y.
15
+ */
16
+ typedef NS_ENUM(NSUInteger, FLIRHistogramModifier) {
17
+ /** y = x^(1/2).
18
+ * If all pixels in a slot were collected within a circle,
19
+ * the radius of this circle is proportional to the slot weight.
20
+ */
21
+ FLIRSquareRoot,
22
+
23
+ /** y = x^(1/3) */
24
+ FLIRCubicRoot,
25
+
26
+ /** ln(x) if x >= 2 else 0. Every doubling of a slot's pixel count
27
+ * will increase the slot weight by a fixed amount.
28
+ */
29
+ FLIRLn,
30
+
31
+ /** Scaled LN (y = y_LN / 2.3), which has no effect on the normalized weights. */
32
+ FLIRLog10,
33
+
34
+ /** y = min(x, plateauCount)
35
+ * Put the cap @p ulPlateauCount on each of this histogram's bins.
36
+ */
37
+ FLIRPlateau,
38
+
39
+ /** y = x */
40
+ FLIRNone
41
+ };
42
+
43
+ /**
44
+ * Specifies the color distributions used when running the colorizer on an image.
45
+ */
46
+ @interface FLIRColorDistributionSettings : NSObject
47
+
48
+ @end
49
+
50
+ /**
51
+ * The color information in the image is distributed linear to the temperature values of the image.
52
+ *
53
+ * @note The palette colors used for each pixel is mapped in a linear fashion between the min and max temperatures of the image.
54
+ * Pixels above and below min and max will contain a color defined in the @ref atlas::image::Palette.
55
+ */
56
+ @interface FLIRTemperatureLinearSettings : FLIRColorDistributionSettings
57
+
58
+ @end
59
+
60
+ /**
61
+ * The colors are evenly distributed over the existing temperatures of the image and enhance the contrast.
62
+ *
63
+ * This color distribution can be particularly successful when the image contains few peaks of very low or
64
+ * high temperature's values.
65
+ */
66
+ @interface FLIRHistogramEqualizationSettings : FLIRColorDistributionSettings
67
+
68
+ /** Minimum heq slope limit. */
69
+ @property (nonatomic, assign) float linearPercent;
70
+ /** Maximum heq slope limit. */
71
+ @property (nonatomic, assign) int plateauTruncation;
72
+ /** How many pixels to ignore. */
73
+ @property (nonatomic, assign) float tailPercent;
74
+ /** Decrease to make the histogram more responsive to new scene content. */
75
+ @property (nonatomic, assign) float histogramDf;
76
+ /** Temporal filtering of span limits. */
77
+ @property (nonatomic, assign) float scaleDf;
78
+ /** Mode to transform each slot histogram bin x into the weight y. */
79
+ @property (nonatomic, assign) FLIRHistogramModifier modifierMode;
80
+
81
+ @end
82
+
83
+ /**
84
+ * The color information in the image is distributed linear to the signal values of the image.
85
+ *
86
+ * @note The palette colors used for each pixel is mapped in a linear fashion between the min and max signal values of the image. Pixels above and below min and max will contain a color defined in the @ref atlas::image::Palette.
87
+ */
88
+ @interface FLIRSignalLinearSettings : FLIRColorDistributionSettings
89
+
90
+ @end
91
+
92
+ /**
93
+ * Specifies parameters for the plateau histogram equalization mode.
94
+ *
95
+ * The colors are evenly distributed over the existing temperatures of the image and enhance the contrast.
96
+ * @note This color distribution can be particularly successful when the image contains few peaks
97
+ * of very low or high temperature's values.
98
+ */
99
+ @interface FLIRPlateauHistogramEqSettings : FLIRColorDistributionSettings
100
+
101
+ /** Limits the maximum slope of the mapping function. */
102
+ @property (nonatomic, assign) float maxGain;
103
+ /** Limits the population of any single histogram bin. */
104
+ @property (nonatomic, assign) float percentPerBin;
105
+ /** Increasing values of Linear Percent more accurately preserves the visual representation of an object */
106
+ @property (nonatomic, assign) float linearPercent;
107
+ /** Determines the percentage of the histogram tails which are not ignored when generating the mapping function.*/
108
+ @property (nonatomic, assign) float outlierPercent;
109
+ /** Used to adjust the perceived brightness of the image. */
110
+ @property (nonatomic, assign) float gamma;
111
+
112
+ @end
113
+
114
+ /**
115
+ * Specifies parameters for the Digital Detail Enhancement (DDE) and Entropy modes.
116
+ * Entropy modes reserve more shades of gray/colors for areas with more entropy by assigning areas with lower entropy lesser gray shades.
117
+ *
118
+ * @note In this mode one color might not map to a specific temperature. Which means that the output
119
+ * scale is not radiometric accurate.
120
+ */
121
+ @interface FLIRDDESettings : FLIRPlateauHistogramEqSettings
122
+
123
+ /** Detail to background ratio. */
124
+ @property (nonatomic, assign) float detailToBackground;
125
+ /** DDE smoothing factor */
126
+ @property (nonatomic, assign) float smoothingFactor;
127
+ /** Headroom for detail at dynamic range extremes */
128
+ @property (nonatomic, assign) float detailHeadroom;
129
+
130
+ @end
131
+
132
+
133
+ /**
134
+ * Specifies parameters for Entropy modes.
135
+ * Entropy modes reserve more shades of gray/colors for areas with more entropy by assigning areas
136
+ * with lower entropy lesser gray shades.
137
+ *
138
+ * @note In this mode one color might not map to a specific temperature. Which means that the output
139
+ * scale is not radiometric accurate.
140
+ */
141
+ @interface FLIREntropySettings : FLIRDDESettings
142
+
143
+ @end
144
+
145
+ /**
146
+ * Specifies parameters for the Adaptive Detail Enhancement (ADE) mode.
147
+ * Adaptive detail enhancement which is using a edge-preserving and noise-reducing smoothing filter
148
+ * to enhance the contrast in the image.
149
+ *
150
+ * @note In this mode one color might not map to a specific temperature. Which means that the
151
+ * output scale is not radiometric accurate.
152
+ */
153
+ @interface FLIRADESettings : FLIRColorDistributionSettings
154
+
155
+ /** Noise amplification limit (LF) (Low value=Disable this feature) */
156
+ @property (nonatomic, assign) float alphaNoise;
157
+ /** Edge preserving limit (LF); Too avoid halos around sharp edges (High value=Disable this feature). */
158
+ @property (nonatomic, assign) float betaLf;
159
+ /** Edge preserving limit (HF); Too avoid halos around sharp edges (High value=Disable this feature). */
160
+ @property (nonatomic, assign) float betaHf;
161
+ /** LF/HF crossover level; Low value=Only HF enhancement;High value=Only LF enhancement. */
162
+ @property (nonatomic, assign) float betaMix;
163
+ /** Amount of the high pass filter that should be used. */
164
+ @property (nonatomic, assign) float hpBlendingAmount;
165
+ /** Low part of the histogram that is discarded. */
166
+ @property (nonatomic, assign) float lowLimit;
167
+ /** High part of the histogram that is discarded. */
168
+ @property (nonatomic, assign) float highLimit;
169
+ /** Headroom for details at dynamic range extremes. */
170
+ @property (nonatomic, assign) float headRoom;
171
+ /** Footroom for details at dynamic range extremes. */
172
+ @property (nonatomic, assign) float footRoom;
173
+ /** Limits the maximum slope of the mapping function. */
174
+ @property (nonatomic, assign) float gain;
175
+ /** Linear portion used for mapping the colors. */
176
+ @property (nonatomic, assign) float linearMix;
177
+
178
+ @end
179
+
180
+ /**
181
+ * Specifies parameters for the FSX mode.
182
+ * FSX is using a edge-preserving and noise-reducing smoothing filter
183
+ * to enhance the contrast in the image.
184
+ */
185
+ @interface FLIRFSXSettings : FLIRColorDistributionSettings
186
+
187
+ /** Maximum allowed difference in the bilateral filtering. */
188
+ @property (nonatomic, assign) float sigmaR;
189
+ /** The weight factor applied to image details. */
190
+ @property (nonatomic, assign) unsigned short alpha;
191
+
192
+ @end
193
+
194
+ /**
195
+ * Specifies parameters for the local contrast enhancement (LCE) mode.
196
+ */
197
+ @interface FLIRLCESettings : FLIRDDESettings
198
+
199
+ /** Can be used to enhance the contrast. */
200
+ @property (nonatomic, assign) int contrast;
201
+
202
+ @end
203
+
204
+ NS_ASSUME_NONNULL_END
@@ -1,82 +1,82 @@
1
- //
2
- // FLIRColorizer.h
3
- // ThermalSDK
4
- //
5
- // Created by FLIR on 2021-10-27.
6
- // Copyright © 2021 Teledyne FLIR. All rights reserved.
7
- //
8
-
9
-
10
- #pragma once
11
-
12
- #import <UIKit/UIKit.h>
13
-
14
- #import "FLIRRenderer.h"
15
-
16
- @class FLIRRange;
17
-
18
- /**
19
- * Protocol for classes colorizing thermal images or streams
20
- */
21
- @protocol FLIRColorizer<FLIRRenderer>
22
-
23
- /**
24
- * Automatic scale
25
- *
26
- * If true rendered images will have scale automatically set based on the min and max values in the image.
27
- * @note auto-adjusted scale is disabled by default
28
- *
29
- * @note Calling this function does not trigger any render. Use `getImage()` if necessary to "re-render".
30
- * @note it is recommended to keep the rendering setting consistent with the FLIRThermalImage information within FLIRScale.
31
- * For this purpose code similar to the following could be used:
32
- * // auto scale enabled
33
- * let colorizer = ... // FLIRColorizer
34
- * colorizer.autoScale = true
35
- * // calling getImage(), among other internal work, will re-calculate scale range that we can then apply to Scale object
36
- * colorizer.getImage()
37
- * let scale = ... // obtain FLIRScale instance from FLIRThermalImage or in live stream from FLIRThermalStreamer.withThermalImage()
38
- * // set the range calculated by the colorizer
39
- * auto tempRange = colorizer.getScaleRange();
40
- * scale.setRangeMin(tempRange.min);
41
- * scale.setRangeMax(tempRange.max);
42
- * //
43
- * // auto scale disabled
44
- * let colorizer = ... // FLIRColorizer
45
- * colorizer.autoScale = false
46
- * // first get scale
47
- * let scale = ... // obtain FLIRScale instance from FLIRThermalImage or in live stream from FLIRThermalStreamer.withThermalImage()
48
- * // then set manual range provided from the user
49
- * scale.setRangeMin(userMinScaleValue);
50
- * scale.setRangeMax(userMaxScaleValue);
51
- * // finally update the colorizer so the rendered image is colorized using user-defined scale range
52
- * colorizer.getImage()
53
- */
54
- @property (nonatomic, assign) BOOL autoScale;
55
-
56
- /**
57
- * Render scale
58
- *
59
- * If true the scale will be rendered when the image is rendered
60
- * @note scale rendering is disabled by default
61
- */
62
- @property (nonatomic, assign) BOOL renderScale;
63
-
64
- /**
65
- * Get an image with the scale
66
- *
67
- * @note if scale rendering was disabled during last call to @ref update, the result from this function may be out of sync .
68
- * @note For getting rendered image without scale, see @ref getImage
69
- * @return Returns an UIImage, or nil if update hasn't been called with scale rendering enabled
70
- */
71
- - (UIImage * _Nullable)getScaleImage;
72
-
73
- /**
74
- * Get the range of the scale
75
- *
76
- * If auto scale is on, get the min and max temperature
77
- * @return FLIRRange with min and max
78
- */
79
-
80
- - (FLIRRange * _Nullable)getScaleRange;
81
-
82
- @end
1
+ //
2
+ // FLIRColorizer.h
3
+ // ThermalSDK
4
+ //
5
+ // Created by FLIR on 2021-10-27.
6
+ // Copyright © 2021 Teledyne FLIR. All rights reserved.
7
+ //
8
+
9
+
10
+ #pragma once
11
+
12
+ #import <UIKit/UIKit.h>
13
+
14
+ #import "FLIRRenderer.h"
15
+
16
+ @class FLIRRange;
17
+
18
+ /**
19
+ * Protocol for classes colorizing thermal images or streams
20
+ */
21
+ @protocol FLIRColorizer<FLIRRenderer>
22
+
23
+ /**
24
+ * Automatic scale
25
+ *
26
+ * If true rendered images will have scale automatically set based on the min and max values in the image.
27
+ * @note auto-adjusted scale is disabled by default
28
+ *
29
+ * @note Calling this function does not trigger any render. Use `getImage()` if necessary to "re-render".
30
+ * @note it is recommended to keep the rendering setting consistent with the FLIRThermalImage information within FLIRScale.
31
+ * For this purpose code similar to the following could be used:
32
+ * // auto scale enabled
33
+ * let colorizer = ... // FLIRColorizer
34
+ * colorizer.autoScale = true
35
+ * // calling getImage(), among other internal work, will re-calculate scale range that we can then apply to Scale object
36
+ * colorizer.getImage()
37
+ * let scale = ... // obtain FLIRScale instance from FLIRThermalImage or in live stream from FLIRThermalStreamer.withThermalImage()
38
+ * // set the range calculated by the colorizer
39
+ * auto tempRange = colorizer.getScaleRange();
40
+ * scale.setRangeMin(tempRange.min);
41
+ * scale.setRangeMax(tempRange.max);
42
+ * //
43
+ * // auto scale disabled
44
+ * let colorizer = ... // FLIRColorizer
45
+ * colorizer.autoScale = false
46
+ * // first get scale
47
+ * let scale = ... // obtain FLIRScale instance from FLIRThermalImage or in live stream from FLIRThermalStreamer.withThermalImage()
48
+ * // then set manual range provided from the user
49
+ * scale.setRangeMin(userMinScaleValue);
50
+ * scale.setRangeMax(userMaxScaleValue);
51
+ * // finally update the colorizer so the rendered image is colorized using user-defined scale range
52
+ * colorizer.getImage()
53
+ */
54
+ @property (nonatomic, assign) BOOL autoScale;
55
+
56
+ /**
57
+ * Render scale
58
+ *
59
+ * If true the scale will be rendered when the image is rendered
60
+ * @note scale rendering is disabled by default
61
+ */
62
+ @property (nonatomic, assign) BOOL renderScale;
63
+
64
+ /**
65
+ * Get an image with the scale
66
+ *
67
+ * @note if scale rendering was disabled during last call to @ref update, the result from this function may be out of sync .
68
+ * @note For getting rendered image without scale, see @ref getImage
69
+ * @return Returns an UIImage, or nil if update hasn't been called with scale rendering enabled
70
+ */
71
+ - (UIImage * _Nullable)getScaleImage;
72
+
73
+ /**
74
+ * Get the range of the scale
75
+ *
76
+ * If auto scale is on, get the min and max temperature
77
+ * @return FLIRRange with min and max
78
+ */
79
+
80
+ - (FLIRRange * _Nullable)getScaleRange;
81
+
82
+ @end
@@ -1,44 +1,44 @@
1
- //
2
- // FLIRDiscoveredCamera.h
3
- // ThermalSDK
4
- //
5
- // Created by FLIR on 2022-02-03.
6
- // Copyright © 2022 Teledyne FLIR. All rights reserved.
7
- //
8
-
9
- #import <Foundation/Foundation.h>
10
-
11
- @class FLIRIdentity;
12
- @class FLIRWirelessCameraDetails;
13
-
14
- NS_ASSUME_NONNULL_BEGIN
15
-
16
- /// Describes how connect may be called
17
- typedef NS_OPTIONS(NSUInteger, FLIRConnectMethod) {
18
- /// Allows normal usage of connect
19
- CM_normal = 0x1,
20
- /// Allows connect "connecting" over SSL
21
- CM_secure = 0x2,
22
- };
23
-
24
- /// Plain information of discovered camera, including connection settings.
25
- @interface FLIRDiscoveredCamera : NSObject
26
-
27
- /// The Identity to use when connecting to a camera
28
- @property (nonatomic, nonnull, readonly, strong) FLIRIdentity *identity;
29
-
30
- /// Human readable name of the camera
31
- @property (nonatomic, nonnull, readonly) NSString *displayName;
32
-
33
- /// Describes how connect may be called
34
- @property (nonatomic, readonly) FLIRConnectMethod supportedConnectMethods;
35
-
36
- /// Additional custom data received during discovery
37
- @property (nonatomic, nonnull, readonly) NSDictionary<NSString *, NSString *> *records;
38
-
39
- /// Optional wireless details for F1 wireless
40
- @property (nonatomic, nullable, readonly, strong) FLIRWirelessCameraDetails* wirelessCameraDetails;
41
-
42
- @end
43
-
44
- NS_ASSUME_NONNULL_END
1
+ //
2
+ // FLIRDiscoveredCamera.h
3
+ // ThermalSDK
4
+ //
5
+ // Created by FLIR on 2022-02-03.
6
+ // Copyright © 2022 Teledyne FLIR. All rights reserved.
7
+ //
8
+
9
+ #import <Foundation/Foundation.h>
10
+
11
+ @class FLIRIdentity;
12
+ @class FLIRWirelessCameraDetails;
13
+
14
+ NS_ASSUME_NONNULL_BEGIN
15
+
16
+ /// Describes how connect may be called
17
+ typedef NS_OPTIONS(NSUInteger, FLIRConnectMethod) {
18
+ /// Allows normal usage of connect
19
+ CM_normal = 0x1,
20
+ /// Allows connect "connecting" over SSL
21
+ CM_secure = 0x2,
22
+ };
23
+
24
+ /// Plain information of discovered camera, including connection settings.
25
+ @interface FLIRDiscoveredCamera : NSObject
26
+
27
+ /// The Identity to use when connecting to a camera
28
+ @property (nonatomic, nonnull, readonly, strong) FLIRIdentity *identity;
29
+
30
+ /// Human readable name of the camera
31
+ @property (nonatomic, nonnull, readonly) NSString *displayName;
32
+
33
+ /// Describes how connect may be called
34
+ @property (nonatomic, readonly) FLIRConnectMethod supportedConnectMethods;
35
+
36
+ /// Additional custom data received during discovery
37
+ @property (nonatomic, nonnull, readonly) NSDictionary<NSString *, NSString *> *records;
38
+
39
+ /// Optional wireless details for F1 wireless
40
+ @property (nonatomic, nullable, readonly, strong) FLIRWirelessCameraDetails* wirelessCameraDetails;
41
+
42
+ @end
43
+
44
+ NS_ASSUME_NONNULL_END