aspose.barcode 23.12.0 → 24.2.0

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.
@@ -1127,269 +1127,6 @@ class Code128ExtendedParameters extends joint.BaseJavaClass
1127
1127
  }
1128
1128
  }
1129
1129
 
1130
- /**
1131
- * Barcode detector settings.
1132
- */
1133
- class BarcodeSvmDetectorSettings extends joint.BaseJavaClass
1134
- {
1135
- static get javaClassName()
1136
- {
1137
- return "com.aspose.mw.barcode.recognition.MwBarcodeSvmDetectorSettings";
1138
- }
1139
-
1140
- constructor(aType)
1141
- {
1142
- let java_class_link = new java.import(BarcodeSvmDetectorSettings.javaClassName);
1143
- let javaClass = new java_class_link(BarcodeSvmDetectorSettings.NormalQuality);
1144
- switch (aType)
1145
- {
1146
- case BarcodeSvmDetectorSettings.HighPerformance:
1147
- javaClass = new java_class_link(BarcodeSvmDetectorSettings.HighPerformance);
1148
- break;
1149
- case BarcodeSvmDetectorSettings.HighQuality:
1150
- javaClass = new java_class_link(BarcodeSvmDetectorSettings.HighQuality);
1151
- break;
1152
- case BarcodeSvmDetectorSettings.MaxQuality:
1153
- javaClass = new java_class_link(BarcodeSvmDetectorSettings.MaxQuality);
1154
- break;
1155
- }
1156
- super(javaClass);
1157
- }
1158
-
1159
- static construct(javaClass)
1160
- {
1161
- let barcodeSvmDetectorSettings = new BarcodeSvmDetectorSettings(BarcodeSvmDetectorSettings.NormalQuality);
1162
- barcodeSvmDetectorSettings.setJavaClass(javaClass);
1163
- return barcodeSvmDetectorSettings;
1164
- }
1165
-
1166
- /**
1167
- * High performance detection preset.<br>
1168
- *
1169
- * Default for {@code QualitySettings.PresetType.HighPerformance}
1170
- */
1171
- static get HighPerformance()
1172
- {
1173
- return 0;
1174
- }
1175
-
1176
- /**
1177
- * Normal quality detection preset.
1178
- *
1179
- * Default for {@code QualitySettings.PresetType.NormalQuality}
1180
- */
1181
- static get NormalQuality()
1182
- {
1183
- return 1;
1184
- }
1185
-
1186
- /**
1187
- * High quality detection preset.
1188
- *
1189
- * Default for {@code QualitySettings.PresetType.HighQualityDetection} and {@code QualitySettings.PresetType.HighQuality}
1190
- */
1191
- static get HighQuality()
1192
- {
1193
- return 2;
1194
- }
1195
-
1196
- /**
1197
- * Max quality detection preset.
1198
- *
1199
- * Default for {@code QualitySettings.PresetType.MaxQualityDetection} and {@code QualitySettings.PresetType.MaxBarCodes}
1200
- */
1201
- static get MaxQuality()
1202
- {
1203
- return 3;
1204
- }
1205
-
1206
- scanWindowSizes;
1207
-
1208
- init()
1209
- {
1210
- this.scanWindowSizes = BarcodeSvmDetectorSettings.convertScanWindowSizes(this.getJavaClass().getScanWindowSizesSync());
1211
- }
1212
-
1213
- static convertScanWindowSizes(javaScanWindowSizes)
1214
- {
1215
- let scanWindowSizes = [];
1216
- for (let i = 0; i < javaScanWindowSizes.size(); i++)
1217
- {
1218
- scanWindowSizes[i] = javaScanWindowSizes.get(i);
1219
- }
1220
- return scanWindowSizes;
1221
- }
1222
-
1223
- /**
1224
- * Scan window sizes in pixels.<br>
1225
- *
1226
- * Allowed sizes are 10, 15, 20, 25, 30.<br>
1227
- * Scanning with small window size takes more time and provides more accuracy but may fail in detecting very big barcodes.<br>
1228
- * Combining of several window sizes can improve detection quality.
1229
- */
1230
- getScanWindowSizes()
1231
- {
1232
- return this.scanWindowSizes;
1233
- }
1234
-
1235
- /**
1236
- * Scan window sizes in pixels.<br>
1237
- *
1238
- * Allowed sizes are 10, 15, 20, 25, 30.<br>
1239
- * Scanning with small window size takes more time and provides more accuracy but may fail in detecting very big barcodes.<br>
1240
- * Combining of several window sizes can improve detection quality.
1241
- */
1242
- setScanWindowSizes(value)
1243
- {
1244
- this.scanWindowSizes = value;
1245
- var ArrayList = java.import('java.util.ArrayList');
1246
- var valueList = new ArrayList();
1247
- value.forEach(function (item, i, value)
1248
- {
1249
- valueList.addSync(item);
1250
- });
1251
- this.getJavaClass().setScanWindowSizesSync(valueList);
1252
- }
1253
-
1254
- /**
1255
- * Similarity coefficient depends on how homogeneous barcodes are.<br>
1256
- *
1257
- * Use high value for for clear barcodes.<br>
1258
- * Use low values to detect barcodes that ara partly damaged or not lighten evenly.<br>
1259
- * Similarity coefficient must be between [0.5, 0.9]
1260
- */
1261
- getSimilarityCoef()
1262
- {
1263
- return this.getJavaClass().getSimilarityCoefSync();
1264
- }
1265
-
1266
- /**
1267
- * Similarity coefficient depends on how homogeneous barcodes are.<br>
1268
- *
1269
- * Use high value for for clear barcodes.<br>
1270
- * Use low values to detect barcodes that ara partly damaged or not lighten evenly.<br>
1271
- * Similarity coefficient must be between [0.5, 0.9]
1272
- */
1273
- setSimilarityCoef(value)
1274
- {
1275
- this.getJavaClass().setSimilarityCoefSync(value);
1276
- }
1277
-
1278
- /**
1279
- * Sets threshold for detected regions that may contain barcodes.<br>
1280
- *
1281
- * Value 0.7 means that bottom 70% of possible regions are filtered out and not processed further.<br>
1282
- * Region likelihood threshold must be between [0.05, 0.9]<br>
1283
- * Use high values for clear images with few barcodes.<br>
1284
- * Use low values for images with many barcodes or for noisy images.<br>
1285
- * Low value may lead to a bigger recognition time.<br>
1286
- */
1287
- getRegionLikelihoodThresholdPercent()
1288
- {
1289
- return this.getJavaClass().getRegionLikelihoodThresholdPercentSync();
1290
- }
1291
-
1292
- /**
1293
- * Sets threshold for detected regions that may contain barcodes.<br>
1294
- *
1295
- * Value 0.7 means that bottom 70% of possible regions are filtered out and not processed further.<br>
1296
- * Region likelihood threshold must be between [0.05, 0.9]<br>
1297
- * Use high values for clear images with few barcodes.<br>
1298
- * Use low values for images with many barcodes or for noisy images.<br>
1299
- * Low value may lead to a bigger recognition time.
1300
- */
1301
- setRegionLikelihoodThresholdPercent(value)
1302
- {
1303
- this.getJavaClass().setRegionLikelihoodThresholdPercentSync(value);
1304
- }
1305
-
1306
- /**
1307
- * Allows detector to skip search for diagonal barcodes.<br>
1308
- *
1309
- * Setting it to false will increase detection time but allow to find diagonal barcodes that can be missed otherwise.<br>
1310
- * Enabling of diagonal search leads to a bigger detection time.
1311
- */
1312
- getSkipDiagonalSearch()
1313
- {
1314
- return this.getJavaClass().getSkipDiagonalSearchSync();
1315
- }
1316
-
1317
- /**
1318
- * Allows detector to skip search for diagonal barcodes.<br>
1319
- *
1320
- * Setting it to false will increase detection time but allow to find diagonal barcodes that can be missed otherwise.<br>
1321
- * Enabling of diagonal search leads to a bigger detection time.
1322
- */
1323
- setSkipDiagonalSearch(value)
1324
- {
1325
- this.getJavaClass().setSkipDiagonalSearchSync(value);
1326
- }
1327
-
1328
- /**
1329
- * Window size for median smoothing.<br>
1330
- *
1331
- * Typical values are 3 or 4. 0 means no median smoothing.<br>
1332
- * Default value is 0.<br>
1333
- * Median filter window size must be between [0, 10]
1334
- */
1335
- getMedianFilterWindowSize()
1336
- {
1337
- return this.getJavaClass().getMedianFilterWindowSizeSync();
1338
- }
1339
-
1340
- /**
1341
- * Window size for median smoothing.<br>
1342
- *
1343
- * Typical values are 3 or 4. 0 means no median smoothing.<br>
1344
- * Default value is 0.<br>
1345
- * Median filter window size must be between [0, 10]
1346
- */
1347
- setMedianFilterWindowSize(value)
1348
- {
1349
- this.getJavaClass().setMedianFilterWindowSizeSync(value);
1350
- }
1351
-
1352
- /**
1353
- * High performance detection preset.<br>
1354
- *
1355
- * Default for QualitySettings.PresetType.HighPerformance
1356
- */
1357
- static getHighPerformance()
1358
- {
1359
- return new BarcodeSvmDetectorSettings(QualitySettings.HighPerformance);
1360
- }
1361
-
1362
- /**
1363
- * Normal quality detection preset.<br>
1364
- *
1365
- * Default for QualitySettings.PresetType.NormalQuality
1366
- */
1367
- static getNormalQuality()
1368
- {
1369
- return new BarcodeSvmDetectorSettings(QualitySettings.NormalQuality);
1370
- }
1371
-
1372
- /**
1373
- * High quality detection preset.<br>
1374
- *
1375
- * Default for QualitySettings.PresetType.HighQualityDetection and QualitySettings.PresetType.HighQuality
1376
- */
1377
- static getHighQuality()
1378
- {
1379
- return new BarcodeSvmDetectorSettings(QualitySettings.HighQuality);
1380
- }
1381
-
1382
- /**
1383
- * Max quality detection preset.<br>
1384
- *
1385
- * Default for QualitySettings.PresetType.MaxQualityDetection and QualitySettings.PresetType.MaxBarCodes
1386
- */
1387
- static getMaxQuality()
1388
- {
1389
- return new BarcodeSvmDetectorSettings(QualitySettings.MaxQuality);
1390
- }
1391
- }
1392
-
1393
1130
  /**
1394
1131
  * Stores recognized barcode data like SingleDecodeType type, {@code string} codetext,<br>
1395
1132
  * BarCodeRegionParameters region and other parameters
@@ -1860,8 +1597,6 @@ class QualitySettings extends joint.BaseJavaClass
1860
1597
  return "com.aspose.mw.barcode.recognition.MwQualitySettings";
1861
1598
  }
1862
1599
 
1863
- detectorSettings;
1864
-
1865
1600
  constructor(qualitySettings)
1866
1601
  {
1867
1602
  super(QualitySettings.initQualitySettings(qualitySettings));
@@ -1888,7 +1623,6 @@ class QualitySettings extends joint.BaseJavaClass
1888
1623
 
1889
1624
  init()
1890
1625
  {
1891
- this.detectorSettings = BarcodeSvmDetectorSettings.construct(this.getJavaClass().getDetectorSettingsSync());
1892
1626
  }
1893
1627
 
1894
1628
  /**
@@ -1958,426 +1692,149 @@ class QualitySettings extends joint.BaseJavaClass
1958
1692
  }
1959
1693
 
1960
1694
  /**
1961
- * MaxBarCodes recognition quality preset. This preset is developed to recognize all possible barcodes, even incorrect barcodes.
1962
- *
1963
- * @example
1964
- * let reader = new BarCodeReader("test.png");
1965
- * reader.setQualitySettings(QualitySettings.getMaxBarCodes());
1695
+ * Recognition mode which sets size (from 1 to infinity) of barcode minimal element: matrix cell or bar.
1696
+ * @return size (from 1 to infinity) of barcode minimal element: matrix cell or bar.
1966
1697
  */
1967
- static getMaxBarCodes()
1698
+ getXDimension()
1968
1699
  {
1969
- let JavaQualitySettings = java.import(QualitySettings.javaClassName);
1970
- return new QualitySettings(JavaQualitySettings.getMaxBarCodesSync());
1700
+ return this.getJavaClass().getXDimensionSync();
1971
1701
  }
1972
-
1973
-
1974
1702
  /**
1975
- * Allows engine to recognize inverse color image as additional scan. Mode can be used when barcode is white on black background.
1703
+ * Recognition mode which sets size (from 1 to infinity) of barcode minimal element: matrix cell or bar.
1704
+ * @param value (from 1 to infinity) of barcode minimal element: matrix cell or bar.
1976
1705
  */
1977
- getAllowInvertImage()
1706
+ setXDimension(value)
1978
1707
  {
1979
- return this.getJavaClass().getAllowInvertImageSync();
1708
+ this.getJavaClass().setXDimensionSync(value);
1980
1709
  }
1981
1710
 
1982
1711
  /**
1983
- * Allows engine to recognize inverse color image as additional scan. Mode can be used when barcode is white on black background.
1712
+ * Minimal size of XDimension in pixels which is used with UseMinimalXDimension.
1713
+ * @return Minimal size of XDimension in pixels which is used with UseMinimalXDimension.
1984
1714
  */
1985
- setAllowInvertImage(value)
1715
+ getMinimalXDimension()
1986
1716
  {
1987
- this.getJavaClass().setAllowInvertImageSync(value);
1717
+ return this.getJavaClass().getMinimalXDimensionSync();
1988
1718
  }
1989
1719
 
1990
1720
  /**
1991
- * Allows engine to recognize barcodes which has incorrect checksumm or incorrect values.<br>
1992
- * Mode can be used to recognize damaged barcodes with incorrect text.
1721
+ * Minimal size of XDimension in pixels which is used with UseMinimalXDimension.
1722
+ * @param value Minimal size of XDimension in pixels which is used with UseMinimalXDimension.
1993
1723
  */
1994
- getAllowIncorrectBarcodes()
1724
+ setMinimalXDimension(value)
1995
1725
  {
1996
- return this.getJavaClass().getAllowIncorrectBarcodesSync();
1726
+ this.getJavaClass().setMinimalXDimensionSync(value);
1997
1727
  }
1998
1728
 
1999
1729
  /**
2000
- * Allows engine to recognize barcodes which has incorrect checksumm or incorrect values.<br>
2001
- * Mode can be used to recognize damaged barcodes with incorrect text.
1730
+ * Mode which enables methods to recognize barcode elements with the selected quality. Barcode element with lower quality requires more hard methods which slows the recognition.
1731
+ * @return Mode which enables methods to recognize barcode elements with the selected quality.
2002
1732
  */
2003
- setAllowIncorrectBarcodes(value)
1733
+ getBarcodeQuality()
2004
1734
  {
2005
- this.getJavaClass().setAllowIncorrectBarcodesSync(value);
1735
+ return this.getJavaClass().getBarcodeQualitySync();
2006
1736
  }
2007
-
2008
1737
  /**
2009
- * Allows engine to recognize tiny barcodes on large images. Ignored if <see cref="AllowIncorrectBarcodes"/> is set to True. Default value: False.
2010
- * @return If True, allows engine to recognize tiny barcodes on large images.
1738
+ * Mode which enables methods to recognize barcode elements with the selected quality. Barcode element with lower quality requires more hard methods which slows the recognition.
1739
+ * @param value Mode which enables methods to recognize barcode elements with the selected quality.
2011
1740
  */
2012
- getReadTinyBarcodes()
2013
- {
2014
- return this.getJavaClass().getReadTinyBarcodesSync();
2015
- }
2016
-
2017
- /**
2018
- * Allows engine to recognize tiny barcodes on large images. Ignored if <see cref="AllowIncorrectBarcodes"/> is set to True. Default value: False.
2019
- * @param value If True, allows engine to recognize tiny barcodes on large images.
2020
- */
2021
- setReadTinyBarcodes(value)
2022
- {
2023
- this.getJavaClass().setReadTinyBarcodesSync(value);
2024
- }
2025
-
2026
- /**
2027
- * Allows engine to recognize 1D barcodes with checksum by checking more recognition variants. Default value: False.
2028
- * @return If True, allows engine to recognize 1D barcodes with checksum.
2029
- */
2030
- getCheckMore1DVariants()
2031
- {
2032
- return this.getJavaClass().getCheckMore1DVariantsSync();
2033
- }
2034
-
2035
- /**
2036
- * Allows engine to recognize 1D barcodes with checksum by checking more recognition variants. Default value: False.
2037
- * @param value If True, allows engine to recognize 1D barcodes with checksum.
2038
- */
2039
- setCheckMore1DVariants(value)
2040
- {
2041
- this.getJavaClass().setCheckMore1DVariantsSync(value);
2042
- }
2043
-
2044
- /**
2045
- * Allows engine to recognize color barcodes on color background as additional scan. Extremely slow mode.
2046
- */
2047
- getAllowComplexBackground()
2048
- {
2049
- return this.getJavaClass().getAllowComplexBackgroundSync();
2050
- }
2051
-
2052
- /**
2053
- * Allows engine to recognize color barcodes on color background as additional scan. Extremely slow mode.
2054
- */
2055
- setAllowComplexBackground(value)
2056
- {
2057
- this.getJavaClass().setAllowComplexBackgroundSync(value);
2058
- }
2059
-
2060
- /**
2061
- * Allows engine to enable median smoothing as additional scan. Mode helps to recognize noised barcodes.
2062
- */
2063
- getAllowMedianSmoothing()
2064
- {
2065
- return this.getJavaClass().getAllowMedianSmoothingSync();
2066
- }
2067
-
2068
- /**
2069
- * Allows engine to enable median smoothing as additional scan. Mode helps to recognize noised barcodes.
2070
- */
2071
- setAllowMedianSmoothing(value)
2072
- {
2073
- this.getJavaClass().setAllowMedianSmoothingSync(value);
2074
- }
2075
-
2076
- /**
2077
- * Window size for median smoothing. Typical values are 3 or 4. Default value is 3. AllowMedianSmoothing must be set.
2078
- */
2079
- getMedianSmoothingWindowSize()
2080
- {
2081
- return this.getJavaClass().getMedianSmoothingWindowSizeSync();
2082
- }
2083
-
2084
- /**
2085
- * Window size for median smoothing. Typical values are 3 or 4. Default value is 3. AllowMedianSmoothing must be set.
2086
- */
2087
- setMedianSmoothingWindowSize(value)
2088
- {
2089
- this.getJavaClass().setMedianSmoothingWindowSizeSync(value);
2090
- }
2091
-
2092
- /**
2093
- * Allows engine to recognize regular image without any restorations as main scan. Mode to recognize image as is.
2094
- */
2095
-
2096
- getAllowRegularImage()
1741
+ setBarcodeQuality(value)
2097
1742
  {
2098
- return this.getJavaClass().getAllowRegularImageSync();
1743
+ this.getJavaClass().setBarcodeQualitySync(value);
2099
1744
  }
2100
1745
 
2101
1746
  /**
2102
- * Allows engine to recognize regular image without any restorations as main scan. Mode to recognize image as is.
2103
- */
2104
-
2105
- setAllowRegularImage(value)
2106
- {
2107
- this.getJavaClass().setAllowRegularImageSync(value);
2108
- }
2109
-
2110
- /**
2111
- * Allows engine to recognize decreased image as additional scan. Size for decreasing is selected by internal engine algorithms.<br>
2112
- * Mode helps to recognize barcodes which are noised and blurred but captured with high resolution.
2113
- */
2114
- getAllowDecreasedImage()
2115
- {
2116
- return this.getJavaClass().getAllowDecreasedImageSync();
2117
- }
2118
-
2119
- /**
2120
- * Allows engine to recognize decreased image as additional scan. Size for decreasing is selected by internal engine algorithms.<br>
2121
- * Mode helps to recognize barcodes which are noised and blurred but captured with high resolution.
2122
- */
2123
- setAllowDecreasedImage(value)
2124
- {
2125
- this.getJavaClass().setAllowDecreasedImageSync(value);
2126
- }
2127
-
2128
- /**
2129
- * Allows engine to recognize image without small white spots as additional scan. Mode helps to recognize noised image as well as median smoothing filtering.
2130
- */
2131
-
2132
- getAllowWhiteSpotsRemoving()
2133
- {
2134
- return this.getJavaClass().getAllowWhiteSpotsRemovingSync();
2135
- }
2136
-
2137
- /**
2138
- * Allows engine to recognize image without small white spots as additional scan. Mode helps to recognize noised image as well as median smoothing filtering.
2139
- */
2140
- setAllowWhiteSpotsRemoving(value)
2141
- {
2142
- this.getJavaClass().setAllowWhiteSpotsRemovingSync(value);
2143
- }
2144
-
2145
- /**
2146
- * Allows engine for 1D barcodes to recognize regular image with different params as additional scan. Mode helps to recongize low height 1D barcodes.
1747
+ * <p>
1748
+ * Deconvolution (image restorations) mode which defines level of image degradation. Originally deconvolution is a function which can restore image degraded
1749
+ * (convoluted) by any natural function like blur, during obtaining image by camera. Because we cannot detect image function which corrupt the image,
1750
+ * we have to check most well know functions like sharp or mathematical morphology.
1751
+ * @return Deconvolution mode which defines level of image degradation.
2147
1752
  */
2148
- getAllowOneDAdditionalScan()
1753
+ getDeconvolution()
2149
1754
  {
2150
- return this.getJavaClass().getAllowOneDAdditionalScanSync();
1755
+ return this.getJavaClass().getDeconvolutionSync();
2151
1756
  }
2152
-
2153
1757
  /**
2154
- * Allows engine for 1D barcodes to recognize regular image with different params as additional scan. Mode helps to recongize low height 1D barcodes.
1758
+ * Deconvolution (image restorations) mode which defines level of image degradation. Originally deconvolution is a function which can restore image degraded
1759
+ * (convoluted) by any natural function like blur, during obtaining image by camera. Because we cannot detect image function which corrupt the image,
1760
+ * we have to check most well know functions like sharp or mathematical morphology.
1761
+ * @param value Deconvolution mode which defines level of image degradation.
2155
1762
  */
2156
- setAllowOneDAdditionalScan(value)
1763
+ setDeconvolution(value)
2157
1764
  {
2158
- this.getJavaClass().setAllowOneDAdditionalScanSync(value);
1765
+ this.getJavaClass().setDeconvolutionSync(value);
2159
1766
  }
2160
1767
 
2161
1768
  /**
2162
- * Allows engine for 1D barcodes to quickly recognize high quality barcodes which fill almost whole image.<br>
2163
- * Mode helps to quickly recognize generated barcodes from Internet.
1769
+ * <p>
1770
+ * Mode which enables or disables additional recognition of barcodes on images with inverted colors (luminance).
1771
+ * @return Additional recognition of barcodes on images with inverse colors
2164
1772
  */
2165
- getAllowOneDFastBarcodesDetector()
1773
+ getInverseImage()
2166
1774
  {
2167
- return this.getJavaClass().getAllowOneDFastBarcodesDetectorSync();
1775
+ return this.getJavaClass().getInverseImageSync();
2168
1776
  }
2169
-
2170
1777
  /**
2171
- * Allows engine for 1D barcodes to quickly recognize high quality barcodes which fill almost whole image.<br>
2172
- * Mode helps to quickly recognize generated barcodes from Internet.
1778
+ * Mode which enables or disables additional recognition of barcodes on images with inverted colors (luminance).
1779
+ * @param value Additional recognition of barcodes on images with inverse colors
2173
1780
  */
2174
- setAllowOneDFastBarcodesDetector(value)
1781
+ setInverseImage(value)
2175
1782
  {
2176
- this.getJavaClass().setAllowOneDFastBarcodesDetectorSync(value);
1783
+ this.getJavaClass().setInverseImageSync(value);
2177
1784
  }
2178
1785
 
2179
1786
  /**
2180
- * Switches to the old barcode detector.
1787
+ * Mode which enables or disables additional recognition of color barcodes on color images.
1788
+ * @return Additional recognition of color barcodes on color images.
2181
1789
  */
2182
- getUseOldBarcodeDetector()
1790
+ getComplexBackground()
2183
1791
  {
2184
- try
2185
- {
2186
- this.getJavaClass().getUseOldBarcodeDetectorSync();
2187
- } catch (ex)
2188
- {
2189
- throw new BarcodeException(ex.getMessage());
2190
- }
1792
+ return this.getJavaClass().getComplexBackgroundSync();
2191
1793
  }
2192
1794
 
2193
1795
  /**
2194
- * Switches to the old barcode detector.
1796
+ * Mode which enables or disables additional recognition of color barcodes on color images.
1797
+ * @param value Additional recognition of color barcodes on color images.
2195
1798
  */
2196
- setUseOldBarcodeDetector(value)
1799
+ setComplexBackground(value)
2197
1800
  {
2198
- try
2199
- {
2200
- this.getJavaClass().setUseOldBarcodeDetectorSync(value);
2201
- } catch (ex)
2202
- {
2203
- throw new BarcodeException(ex.getMessage());
2204
- }
1801
+ this.getJavaClass().setComplexBackgroundSync(value);
2205
1802
  }
2206
1803
 
2207
1804
  /**
2208
1805
  * <p>
2209
- * Allows engine using additional image restorations to recognize corrupted barcodes. At this time, it is used only in MicroPdf417 barcode type.
2210
- * </p>Value:
2211
- * Allows engine using additional image restorations to recognize corrupted barcodes.
1806
+ * Allows engine to recognize barcodes which has incorrect checksumm or incorrect values. Mode can be used to recognize damaged barcodes with incorrect text.
1807
+ * @return Allows engine to recognize incorrect barcodes.
2212
1808
  */
2213
- getAllowAdditionalRestorations()
1809
+ getAllowIncorrectBarcodes()
2214
1810
  {
2215
- return this.getJavaClass().getAllowAdditionalRestorationsSync();
1811
+ return this.getJavaClass().getAllowIncorrectBarcodesSync();
2216
1812
  }
2217
-
2218
1813
  /**
2219
1814
  * <p>
2220
- * Allows engine using additional image restorations to recognize corrupted barcodes. At this time, it is used only in MicroPdf417 barcode type.
2221
- * </p>Value:
2222
- * Allows engine using additional image restorations to recognize corrupted barcodes.
2223
- */
2224
- setAllowAdditionalRestorations(value)
2225
- {
2226
- this.getJavaClass().setAllowAdditionalRestorationsSync(value);
2227
- }
2228
-
2229
- /**
2230
- * Allows engine for Postal barcodes to recognize slightly noised images. Mode helps to recognize sligtly damaged Postal barcodes.
2231
- */
2232
- getAllowMicroWhiteSpotsRemoving()
2233
- {
2234
- return this.getJavaClass().getAllowMicroWhiteSpotsRemovingSync();
2235
- }
2236
-
2237
- /**
2238
- * Allows engine for Postal barcodes to recognize slightly noised images. Mode helps to recognize sligtly damaged Postal barcodes.
2239
- */
2240
- setAllowMicroWhiteSpotsRemoving(value)
2241
- {
2242
- this.getJavaClass().setAllowMicroWhiteSpotsRemovingSync(value);
2243
- }
2244
-
2245
- /**
2246
- * Allows engine for 1D barcodes to quickly recognize middle slice of an image and return result without using any time-consuming algorithms.<br>
2247
- * @return Allows engine for 1D barcodes to quickly recognize high quality barcodes.
2248
- */
2249
- getFastScanOnly()
2250
- {
2251
- return this.getJavaClass().getFastScanOnlySync();
2252
- }
2253
-
2254
- /**
2255
- * Allows engine for 1D barcodes to quickly recognize middle slice of an image and return result without using any time-consuming algorithms.<br>
2256
- * @param value Allows engine for 1D barcodes to quickly recognize high quality barcodes.
2257
- */
2258
- setFastScanOnly(value)
2259
- {
2260
- this.getJavaClass().setFastScanOnlySync(value);
2261
- }
2262
-
2263
- /**
2264
- * Allows engine to recognize barcodes with salt and paper noise type. Mode can remove small noise with white and black dots.
2265
- */
2266
- getAllowSaltAndPaperFiltering()
2267
- {
2268
- return this.getJavaClass().getAllowSaltAndPaperFilteringSync();
2269
- }
2270
-
2271
- /**
2272
- * Allows engine to recognize barcodes with salt and paper noise type. Mode can remove small noise with white and black dots.
2273
- */
2274
- setAllowSaltAndPaperFiltering(value)
2275
- {
2276
- this.getJavaClass().setAllowSaltAndPaperFilteringSync(value);
2277
- }
2278
-
2279
- /**
2280
- * Allows engine to use gap between scans to increase recognition speed. Mode can make recognition problems with low height barcodes.
2281
- */
2282
- getAllowDetectScanGap()
2283
- {
2284
- return this.getJavaClass().getAllowDetectScanGapSync();
2285
- }
2286
-
2287
- /**
2288
- * Allows engine to use gap between scans to increase recognition speed. Mode can make recognition problems with low height barcodes.
2289
- */
2290
- setAllowDetectScanGap(value)
2291
- {
2292
- this.getJavaClass().setAllowDetectScanGapSync(value);
2293
- }
2294
-
2295
- /**
2296
- * Allows engine for Datamatrix to recognize dashed industrial Datamatrix barcodes.<br>
2297
- * Slow mode which helps only for dashed barcodes which consist from spots.
2298
- */
2299
- getAllowDatamatrixIndustrialBarcodes()
2300
- {
2301
- return this.getJavaClass().getAllowDatamatrixIndustrialBarcodesSync();
2302
- }
2303
-
2304
- /**
2305
- * Allows engine for Datamatrix to recognize dashed industrial Datamatrix barcodes.<br>
2306
- * Slow mode which helps only for dashed barcodes which consist from spots.
2307
- */
2308
- setAllowDatamatrixIndustrialBarcodes(value)
2309
- {
2310
- this.getJavaClass().setAllowDatamatrixIndustrialBarcodesSync(value);
2311
- }
2312
-
2313
- /**
2314
- * Allows engine for QR/MicroQR to recognize damaged MicroQR barcodes.
2315
- */
2316
- getAllowQRMicroQrRestoration()
2317
- {
2318
- return this.getJavaClass().getAllowQRMicroQrRestorationSync();
2319
- }
2320
-
2321
- /**
2322
- * Allows engine for QR/MicroQR to recognize damaged MicroQR barcodes.
2323
- */
2324
- setAllowQRMicroQrRestoration(value)
2325
- {
2326
- this.getJavaClass().setAllowQRMicroQrRestorationSync(value);
2327
- }
2328
-
2329
- /**
2330
- * Allows engine for 1D barcodes to recognize barcodes with single wiped/glued bars in pattern.
2331
- */
2332
- getAllowOneDWipedBarsRestoration()
2333
- {
2334
- return this.getJavaClass().getAllowOneDWipedBarsRestorationSync();
2335
- }
2336
-
2337
- /**
2338
- * Allows engine for 1D barcodes to recognize barcodes with single wiped/glued bars in pattern.
1815
+ * Allows engine to recognize barcodes which has incorrect checksumm or incorrect values. Mode can be used to recognize damaged barcodes with incorrect text.
1816
+ * @param value Allows engine to recognize incorrect barcodes.
2339
1817
  */
2340
- setAllowOneDWipedBarsRestoration(value)
2341
- {
2342
- this.getJavaClass().setAllowOneDWipedBarsRestorationSync(value);
2343
- }
2344
-
2345
- /**
2346
- * Barcode detector settings.
2347
- */
2348
- getDetectorSettings()
2349
- {
2350
- return this.detectorSettings;
2351
- }
2352
-
2353
- /**
2354
- * Barcode detector settings.
2355
- */
2356
- setDetectorSettings(value)
1818
+ setAllowIncorrectBarcodes(value)
2357
1819
  {
2358
- this.getJavaClass().setDetectorSettingsSync(value.getJavaClass());
2359
- this.detectorSettings = value;
1820
+ this.getJavaClass().setAllowIncorrectBarcodesSync(value);
2360
1821
  }
2361
1822
 
2362
1823
  /**
2363
- * apply all values from Src setting to this<br>
1824
+ * <p>
1825
+ * Function apply all values from Src setting to Dst
1826
+ * </p>
2364
1827
  * @param Src source settings
2365
1828
  */
2366
1829
  applyAll(Src)
2367
1830
  {
2368
- this.setAllowInvertImage(Src.getAllowInvertImage());
1831
+ this.setXDimension(Src.getXDimension());
1832
+ this.setMinimalXDimension(Src.getMinimalXDimension());
1833
+ this.setBarcodeQuality(Src.getBarcodeQuality());
1834
+ this.setDeconvolution(Src.getDeconvolution());
1835
+ this.setInverseImage(Src.getInverseImage());
1836
+ this.setComplexBackground(Src.getComplexBackground());
2369
1837
  this.setAllowIncorrectBarcodes(Src.getAllowIncorrectBarcodes());
2370
- this.setAllowComplexBackground(Src.getAllowComplexBackground());
2371
- this.setAllowMedianSmoothing(Src.getAllowMedianSmoothing());
2372
- this.setMedianSmoothingWindowSize(Src.getMedianSmoothingWindowSize());
2373
- this.setAllowRegularImage(Src.getAllowRegularImage());
2374
- this.setAllowDecreasedImage(Src.getAllowDecreasedImage());
2375
- this.setAllowWhiteSpotsRemoving(Src.getAllowWhiteSpotsRemoving());
2376
- this.setAllowOneDAdditionalScan(Src.getAllowOneDAdditionalScan());
2377
- this.setAllowOneDFastBarcodesDetector(Src.getAllowOneDFastBarcodesDetector());
2378
- this.setAllowMicroWhiteSpotsRemoving(Src.getAllowMicroWhiteSpotsRemoving());
2379
- this.setAllowSaltAndPaperFiltering(Src.getAllowSaltAndPaperFiltering());
2380
- this.setAllowDetectScanGap(Src.getAllowDetectScanGap());
2381
1838
  }
2382
1839
  }
2383
1840
 
@@ -3755,6 +3212,11 @@ DecodeType =
3755
3212
  */
3756
3213
  MICRO_QR: 56,
3757
3214
 
3215
+ /**
3216
+ * Specifies that the data should be decoded with <b>RectMicroQR (rMQR) Code</b> barcode specification
3217
+ */
3218
+ RECT_MICRO_QR: 83,
3219
+
3758
3220
  /**
3759
3221
  * Specifies that the data should be decoded with {@code <b>CompactPdf417</b>} (Pdf417Truncated) barcode specification
3760
3222
  */
@@ -4125,6 +3587,182 @@ BarCodeConfidence =
4125
3587
  STRONG: 100
4126
3588
  };
4127
3589
 
3590
+ /**
3591
+ * <p>
3592
+ * <p>
3593
+ * Deconvolution (image restorations) mode which defines level of image degradation. Originally deconvolution is a function which can restore image degraded
3594
+ * (convoluted) by any natural function like blur, during obtaining image by camera. Because we cannot detect image function which corrupt the image,
3595
+ * we have to check most well know functions like sharp or mathematical morphology.
3596
+ * </p>
3597
+ * </p><p><hr><blockquote><pre>
3598
+ * This sample shows how to use Deconvolution mode
3599
+ * <pre>
3600
+ * let reader = new BarCodeReader("test.png", null, [DecodeType.CODE_39_EXTENDED, DecodeType.CODE_128]);
3601
+ * reader.getQualitySettings().setDeconvolution(DeconvolutionMode.SLOW);
3602
+ * reader.readBarCodes().forEach(function(result, i, results)
3603
+ * {
3604
+ * console.log("BarCode CodeText: " + result.getCodeText());
3605
+ * });
3606
+ * </pre>
3607
+ * </pre></blockquote></hr></p>
3608
+ */
3609
+ DeconvolutionMode =
3610
+ {
3611
+ /**
3612
+ * <p>Enables fast deconvolution methods for high quality images.</p>
3613
+ */
3614
+ FAST: 0,
3615
+ /**
3616
+ * <p>Enables normal deconvolution methods for common images.</p>
3617
+ */
3618
+ NORMAL: 1,
3619
+ /**
3620
+ * <p>Enables slow deconvolution methods for low quality images.</p>
3621
+ */
3622
+ SLOW: 2
3623
+ };
3624
+ /**
3625
+ * <p>
3626
+ * <p>
3627
+ * Mode which enables or disables additional recognition of barcodes on images with inverted colors (luminance).
3628
+ * </p>
3629
+ * </p><p><hr><blockquote><pre>
3630
+ * This sample shows how to use InverseImage mode
3631
+ * <pre>
3632
+ *
3633
+ * let reader = new BarCodeReader("test.png", null, [DecodeType.CODE_39_EXTENDED, DecodeType.CODE_128]);
3634
+ * reader.getQualitySettings().setInverseImage(InverseImageMode.ENABLED);
3635
+ * reader.readBarCodes().forEach(function(result, i, results)
3636
+ * {
3637
+ * console.log("BarCode CodeText: " + result.getCodeText());
3638
+ * });
3639
+ * </pre>
3640
+ * </pre></blockquote></hr></p>
3641
+ */
3642
+ InverseImageMode =
3643
+ {
3644
+ /**
3645
+ * <p>At this time the same as Disabled. Disables additional recognition of barcodes on inverse images.</p>
3646
+ */
3647
+ AUTO: 0,
3648
+ /**
3649
+ * <p>Disables additional recognition of barcodes on inverse images.</p>
3650
+ */
3651
+ DISABLED: 1,
3652
+ /**
3653
+ * <p>Enables additional recognition of barcodes on inverse images</p>
3654
+ */
3655
+ ENABLED: 2
3656
+ };
3657
+
3658
+ /**
3659
+ * <p>
3660
+ * <p>
3661
+ * Recognition mode which sets size (from 1 to infinity) of barcode minimal element: matrix cell or bar.
3662
+ * </p>
3663
+ * </p><p><hr><blockquote><pre>
3664
+ * This sample shows how to use XDimension mode
3665
+ * <pre>
3666
+ * let reader = new BarCodeReader("test.png", null, [DecodeType.CODE_39_EXTENDED, DecodeType.CODE_128]);
3667
+ * reader.getQualitySettings().setXDimension(XDimensionMode.SMALL);
3668
+ * reader.readBarCodes().forEach(function(result, i, results)
3669
+ * {
3670
+ * console.log("BarCode CodeText: " + result.getCodeText());
3671
+ * });
3672
+ * </pre>
3673
+ * </pre></blockquote></hr></p>
3674
+ */
3675
+ XDimensionMode =
3676
+ {
3677
+ /**
3678
+ * <p>Value of XDimension is detected by AI (SVM). At this time the same as Normal</p>
3679
+ */
3680
+ AUTO: 0,
3681
+ /**
3682
+ * <p>Detects barcodes with small XDimension in 1 pixel or more with quality from BarcodeQuality</p>
3683
+ */
3684
+ SMALL: 1,
3685
+ /**
3686
+ * <p>Detects barcodes with classic XDimension in 2 pixels or more with quality from BarcodeQuality or high quality barcodes.</p>
3687
+ */
3688
+ NORMAL: 2,
3689
+ /**
3690
+ * <p>Detects barcodes with large XDimension with quality from BarcodeQuality captured with high-resolution cameras.</p>
3691
+ */
3692
+ LARGE: 3,
3693
+ /**
3694
+ * <p>Detects barcodes from size set in MinimalXDimension with quality from BarcodeQuality</p>
3695
+ */
3696
+ USE_MINIMAL_X_DIMENSION: 4
3697
+ }
3698
+
3699
+ /**
3700
+ * <p>
3701
+ * <p>
3702
+ * Mode which enables or disables additional recognition of color barcodes on color images.
3703
+ * </p>
3704
+ * </p><p><hr><blockquote><pre>
3705
+ * This sample shows how to use ComplexBackground mode
3706
+ * <pre>
3707
+ * let reader = new BarCodeReader("test.png", null, [DecodeType.CODE_39_EXTENDED, DecodeType.CODE_128]);
3708
+ * reader.getQualitySettings().setComplexBackground(ComplexBackgroundMode.ENABLED);
3709
+ * reader.readBarCodes().forEach(function(result, i, results)
3710
+ * {
3711
+ * console.log("BarCode CodeText: " + result.getCodeText());
3712
+ * });
3713
+ * </pre>
3714
+ * </pre></blockquote></hr></p>
3715
+ */
3716
+ ComplexBackgroundMode =
3717
+ {
3718
+ /**
3719
+ * <p>At this time the same as Disabled. Disables additional recognition of color barcodes on color images.</p>
3720
+ */
3721
+ AUTO: 0,
3722
+ /**
3723
+ * <p>Disables additional recognition of color barcodes on color images.</p>
3724
+ */
3725
+ DISABLED: 1,
3726
+ /**
3727
+ * <p>Enables additional recognition of color barcodes on color images.</p>
3728
+ */
3729
+ ENABLED: 2
3730
+
3731
+ }
3732
+
3733
+ /**
3734
+ * <p>
3735
+ * <p>
3736
+ * Mode which enables methods to recognize barcode elements with the selected quality. Barcode element with lower quality requires more hard methods which slows the recognition.
3737
+ * </p>
3738
+ * </p><p><hr><blockquote><pre>
3739
+ * This sample shows how to use BarcodeQuality mode
3740
+ * <pre>
3741
+ * let reader = new BarCodeReader("test.png", null, [DecodeType.CODE_39_EXTENDED, DecodeType.CODE_128]);
3742
+ * reader.getQualitySettings().setBarcodeQuality(BarcodeQualityMode.LOW);
3743
+ * reader.readBarCodes().forEach(function(result, i, results)
3744
+ * {
3745
+ * console.log("BarCode CodeText: " + result.getCodeText());
3746
+ * });
3747
+ * </pre>
3748
+ * </pre></blockquote></hr></p>
3749
+ */
3750
+ BarcodeQualityMode =
3751
+ {
3752
+ /**
3753
+ * <p>Enables recognition methods for High quality barcodes.</p>
3754
+ */
3755
+ HIGH: 0,
3756
+ /**
3757
+ * <p>Enables recognition methods for Common(Normal) quality barcodes.</p>
3758
+ */
3759
+ NORMAL: 1,
3760
+ /**
3761
+ * <p>Enables recognition methods for Low quality barcodes.</p>
3762
+ */
3763
+ LOW: 2
3764
+ }
3765
+
4128
3766
  module.exports = {
4129
3767
  BarCodeReader,
4130
3768
  Quadrangle,
@@ -4132,7 +3770,6 @@ module.exports = {
4132
3770
  Pdf417ExtendedParameters,
4133
3771
  OneDExtendedParameters,
4134
3772
  Code128ExtendedParameters,
4135
- BarcodeSvmDetectorSettings,
4136
3773
  DecodeType,
4137
3774
  BarCodeResult,
4138
3775
  BarCodeRegionParameters,
@@ -4148,5 +3785,10 @@ module.exports = {
4148
3785
  RecognitionAbortedException,
4149
3786
  DotCodeExtendedParameters,
4150
3787
  DataMatrixExtendedParameters,
4151
- GS1CompositeBarExtendedParameters
3788
+ GS1CompositeBarExtendedParameters,
3789
+ DeconvolutionMode,
3790
+ InverseImageMode,
3791
+ XDimensionMode,
3792
+ ComplexBackgroundMode,
3793
+ BarcodeQualityMode
4152
3794
  };