Skip to main content

Changelog for the Linux Data Capture Modules

Version 10.0.0 (1 Oct 2026)​

  • πŸ“– Release notes:
    • Explore the release highlights and key improvements here.
  • πŸŽ‰ New:
    • General:
      • The Python and C wrappers now run on Windows.
    • Barcode Scanner:
      • Added the selectionConfig field to BarcodeScannerConfiguration. Its selectionMethod determines whether all detected barcodes are returned (All), only the barcode closest to the center (CenterClosest), or only the barcode touching the center (Center). For CenterClosest and Center, the center point can be configured with the normalized values centerCoordX and centerCoordY (default: 0.5, 0.5). For Center, a centerDistanceTolerance can also be configured.
      • 2D barcode configurations have a new field fallbackEncoding, used when the barcode doesn't specify an encoding. The default is Unknown, where the SDK guesses the encoding, as in previous versions.
    • Document Data Extractor:
      • Added support for the new German passports introduced in October 2025 (distinguishable by the Type value PP).
      • Added support for provisional German ID cards via MRZ fallback.
    • Document Scanner:
      • The Document Cleanup feature lets the user remove artifacts from a document by drawing over them while preserving the text.
      • Added the documentCropOptimization argument to the ImageProcessor.crop method with a default of OPTIMIZE_QUAD, which corresponds to the existing behavior (reduces the input quad by 0.5%). To turn it off, pass NONE.
    • Image Processing:
      • The stroke weight (line thickness) of binarized images with anti-aliasing enabled can now be controlled with the strokeWeight parameter.
    • Text Pattern Scanner:
      • Added the inputHeightLimit option. It limits the input image height to avoid text that's too large for the text detection model.
  • πŸš€ Improvements:
    • Barcode Scanner:
      • BarcodeFormatUpcEanConfiguration has a new field convertUpceToUpca, which converts the 6-digit UPC-E result into a 12-digit UPC-A result. It's false by default.
      • The DataBar and DataBar Expanded barcode configurations now support minimum and maximum text lengths. For GS1 messages, both limits apply to the parsed text.
      • In single-shot mode, larger internal image sizes are allowed for the engine modes NEXT_GEN_FAR_DISTANCE (up to 4K for the barcode detector model) and NEXT_GEN_MAX_DISTANCE (unlimited input size for the barcode detector model). Use these modes with caution, because they can require substantial memory depending on the input resolution.
      • Improved recall for heavily damaged barcodes in the Code 128, Code 39, EAN-8, and EAN-13 formats, where every single scanline is corrupted, via a new field damagedBarcodeReconstruction (enabled by default) in the barcode configurations.
    • Check Scanner:
      • Now uses the same accumulation logic as the Document Data Extractor. This makes the results substantially more reliable and accurate in both live and single-shot modes.
      • Canadian checks with a leading dash in the account number are now supported.
    • Credit Card Scanner:
      • Documents with the wrong aspect ratio are now ignored.
      • Uses a digit-only list of characters for card number recognition.
    • Document Data Extractor:
      • Extraction for Driver Qualification Certificates is more lenient towards printing offsets.
      • Increased stability when scanning the country field on European Health Insurance Cards.
      • Improved data consistency for surnames on German ID cards.
    • Image Processing:
      • Binarized images with anti-aliasing enabled are more legible and have higher contrast.
      • Improved behavior of the ColorDocumentShadowRemovalFilter on documents with tables.
  • 🐞 Bug fixes:
    • Barcode Scanner:
      • stripCheckDigits now applies correctly to UPC and EAN formats.
      • Fixed undefined behavior for some clean input scanlines in the HMM decoder.
      • Fixed a rare bug when scanning UPC and EAN barcodes with a 5-digit (EAN-5) extension while the scanner was configured to accept only barcodes with a 2-digit extension.
      • Fixed an issue where vCards containing a colon in their value were silently ignored.
      • Fixed the orientation of quads for DataBar and DataBar Expanded barcodes with multiple stacks.
      • Fixed some duplicated results for UPC and EAN barcodes with extensions.
      • Document parser: Fixed HIBC parsing to allow a trailing slash and an alphanumeric lot number.
      • Reduced the false positive rate for corrupted barcodes in strong light.
      • Fixed an issue where EAN-8 barcodes were returned when the EAN-8 format was disabled and damagedBarcodeReconstruction was enabled.
      • Fixed crashes when scanning Data Matrix barcodes with engineMode set to Legacy.
      • For the Micro QR Code and rMQR Code formats, the scanner now returns rawBytesEncodings.
    • Check Scanner:
      • Fixed an issue where a Canadian check was incorrectly recognized as a USA check.
    • Credit Card Scanner:
      • If frame accumulation is used in single-shot mode and the scanner doesn't find a document on some attempts, it returns the accumulated result.
      • Fixed the quad (the corner coordinates of the detected card) returned in single-shot mode.
      • Fixed the returned status of document detection in single-shot mode.
    • Document Data Extractor:
      • Fixed incorrect crops for the country field on European Health Insurance Cards.
      • Fixed the document detection result points in single-shot mode.
      • Fixed the Document Data Extractor crop results when returnCrops = true.
    • Image Processing:
      • Fixed the chessboard artifacts produced by the ColorDocumentShadowRemovalFilter on images smaller than 1 megapixel.
    • MRZ Scanner:
      • The Nationality field is no longer shown for Swiss driver's license MRZ documents.
    • OCR Engine:
      • Fixed an issue that could sometimes produce wrong bounding boxes.
      • Fixed an issue where the allowedCharacters set was sometimes ignored.
    • Text Pattern Scanner:
      • Fixed how the VIN Scanner and Text Pattern Scanner apply the input image height limit.
  • ⚠️ Breaking changes:
    • Barcode Scanner:
      • The boolean enableOneDBlurScanner was replaced by the ConfigState enum blurryOneDScanner.
    • Check Scanner:
      • The Check Scanner now features improved result accumulation across frames, which significantly reduces the likelihood of OCR errors. It can be configured via CheckScannerConfiguration.resultAccumulationConfig.
      • In live scanning mode, by default, 3 frames need to yield the same scanning result to produce a scan with the status SUCCESS. During accumulation, the status SCANNING_IN_PROGRESS is returned along with the current best intermediate result.
      • In single-shot scanning mode, up to 9 detections are run on small perturbations of the input image. Again, by default, a result with the status SUCCESS is returned only if at least 3 of these scans are identical and successful. If fewer successful scans are obtained, a result with the status SUCCESS_BUT_LOW_CONFIDENCE_RESULT is produced.
      • Both live and single-shot scanning modes can still produce results with the statuses INCOMPLETE_VALIDATION (if a MICR line with an unknown format was found) or ERROR_NOTHING_FOUND (if no check was found at all).
      • Live scanning no longer yields the status IncompleteValidation. If a check is detected that doesn't pass validation, the status ScanningInProgress is returned instead.
    • Document Data Extractor:
      • The new status OK_BUT_LOW_CONFIDENCE_RESULTS was introduced. This status can only be returned in single-shot mode.
      • OK_BUT_NOT_CONFIRMED was renamed to the SCANNING_IN_PROGRESS status, which is now only returned in live scanning mode.
    • Document Scanner:
      • The DocumentEnhancer class with the straighten method was renamed to the DocumentStraightener class with the run method.
    • Image Processing:
      • ImageProcessor.crop() has a new argument, documentCropOptimization, that controls how the crop is optimized, assuming the cropped image is a document. The argument has a default value. As a consequence, this is expected to be a breaking change only on platforms that don't support default argument values.
      • Binarized images with anti-aliasing enabled now have higher contrast by default. To get the previous behavior, set strokeWeight=0 in the CustomBinarizationFilter's configuration. To get the previous behavior of the ScanbotBinarizationFilter, use CustomBinarizationFilter with PRESET_4 and strokeWeight=0.
    • MRZ Scanner:
      • The internal MRZ field Unknown was previously returned but is now removed from the result.
      • The Nationality field is now optional.
  • ⚠️ Deprecations:
    • Text Pattern Scanner:
      • The OcrResolutionLimit option is deprecated in favor of InputHeightLimit.
  • πŸš™ Under the hood:
    • General:
      • Updated gs1-json to version 1.2.

Version 9.0.0 (6 Jul 2026)​

  • πŸ“– Release notes:
    • Explore the release highlights and key improvements here.
  • πŸŽ‰ New:
    • General:
      • ImageRef: optimize flag added to saveImage and encodeImage. When set to true, the encoder spends additional time to improve JPEG output quality.
    • Document Scanner:
      • Added DocumentEnhancer with a straighten method that removes crinkles, creases, folds, and curl from document photos. See the Document Enhancer documentation for details.
      • Support for recognizing cropped documents. DocumentScannerParameters now includes alreadyCroppedScoreThreshold, and DocumentDetectionScores now includes alreadyCroppedScore. In single-shot mode, if no document is detected and the score exceeds this threshold, a new DocumentDetectionStatus value OK_BUT_ALREADY_CROPPED is returned, along with a quad (points) corresponding to the image corners. This feature is supported by all downstream components of the Document Scanner (Check Scanner, Credit Card Scanner, Document Classifier, Document Data Extractor, and Medical Certificate Scanner).
    • Document Quality Analyzer:
      • A new Document Quality Analyzer algorithm was introduced. The result object's quality property can now be ACCEPTABLE, UNACCEPTABLE, or UNCERTAIN, indicating whether a user-provided document image meets the required quality standard. Advanced configuration is available using the qualityAnalysisModel parameter, which allows the Document Quality Analyzer to be fine-tuned for specific use cases using an external script. This capability is currently in closed beta. To request access and obtain the script, sign up here.
      • Added a threshold parameter for categorizing documents into three classes: ACCEPTABLE, UNACCEPTABLE, and UNCERTAIN.
      • Added the inputScales option to run the model at multiple resolutions and automatically select the best result.
      • Added the inputScaleThresholdToProcessEntireImage option to run the Document Quality Analyzer on the entire image, even when minProcessedFraction and maxProcessedFraction are not equal to 1 for small input scales.
      • The resulting bestInputScale is now included in the output.
    • Check Scanner:
      • Added support for more USA check formats. Newly supported formats: (TT)xxx(TT)xxxx(UU)xxx(UU), and the ones enumerated in the MICR line identification documentation.
      • Added support for xxx-xxx-x account number format for Canadian checks.
    • Barcode Scanner:
      • Added a TwoDDecodingMode to the barcode configuration. It defaults to HIGH_EFFORT and can be set to LOW_EFFORT for very low-power devices requiring higher frame rates.
  • πŸš€ Improvements:
    • General:
      • Node.js wrapper: Added Deno compatibility (deno.com).
      • Python wrapper: Added __getitem__, __len__, and __iter__ utilities to the Point and PointF classes.
    • Document Scanner:
      • Updated document detector models with improved accuracy.
      • Partially visible documents are now supported in all processing modes. Auto and single-shot modes now return the ERROR_PARTIALLY_VISIBLE document status when only 1–3 document corners are visible in the input image and the scanner is configured with allowPartiallyVisibleDocuments = true.
    • Document Quality Analyzer:
      • Increased the default threshold for minRequiredOrientationConfidence to 0.9, reducing false positives in orientation estimation.
      • Orientation detection now considers text at any angle, not just within Β±10Β° of 0Β°, 90Β°, 180Β°, or 270Β°. For orientation estimation, text at any angle is rounded to the nearest multiple of 90Β° β€” for example, a 30Β° angle yields a predicted orientation of 0Β°.
      • Improved performance on very bright or very dark images.
    • OCR Engine:
      • Improved ß/ẞ recognition.
      • Increased accuracy without increasing inference time.
    • VIN Scanner:
      • Live or single-shot mode, derived from the input image, is now propagated to the internal barcode scanner.
    • Document Data Extractor:
      • Document types are now classified using an ML model, resulting in higher quality and faster recognition.
    • Check Scanner:
      • For Canadian checks, the scanner now allows more whitespace characters in the MICR line.
    • Credit Card Scanner:
      • Various improvements to check digit validation and aspect ratio handling.
    • Barcode Scanner:
      • Reduced the false positive rate for barcode formats EAN-8, EAN-13, and UPC-A when enableOneDBlurScanner is enabled (now the default).
      • Improved recall and precision for barcode formats EAN-8, EAN-13, UPC-A, and UPC-E when ink spread is present.
      • Data Matrix codes can now be scanned under harsher conditions. With HIGH_EFFORT enabled, scanning works even on curved surfaces or when the code is partially occluded.
  • 🐞 Bug fixes:
    • Document Quality Analyzer:
      • Fixed ProcessByTileConfiguration.enabled being ignored regardless of its value.
    • Document Data Extractor:
      • Fixed an issue where documents containing Cyrillic text were sometimes classified incorrectly.
    • Check Scanner:
      • Fixed missing support for longer check number fields on Canadian checks.
    • Barcode Scanner:
      • Fixed an arithmetic exception occurring when processing images with very small heights (lower than 5 px) in single-shot mode.
      • Fixed the orientation of quads for barcode formats DataBar and DataBar Expanded with multiple stacks.
      • Fixed a rare issue with the DataBar barcode format, which could lead to a crash.
      • Fixed a thread-safety issue in HMM-based barcode decoding.
  • ⚠️ Breaking changes:
    • General:
      • All APIs that receive or return normalized coordinates of points assume that normalization is performed by dividing image coordinates by (width - 1, height - 1) instead of (width, height). This ensures that rotation operations that are performed on the normalized coordinates are mathematically correct. Callers that call functions that receive normalized coordinates or process results with normalized points and perform conversion on their own should adjust their implementations.
    • PDF & TIFF Generation:
      • When adding a PNG file to a PDF, the image is now always re-encoded as JPEG. Previously, this occurred only in specific situations.
    • Document Quality Analyzer:
      • The configuration properties qualityThresholds and qualityIndices have been renamed to qualityLevelThresholds and qualityLevelIndices. The renamed properties are now deprecated; use the new qualityAnalysisModel property instead.
      • The detectOrientation option has been removed. Orientation detection now always runs.
      • The inspectSmallText option has been removed.
    • Document Data Extractor:
      • When initialized with no accepted document types, or only invalid ones, and with MRZ fallback disabled, an InvalidArgument error is now thrown.
    • Check Scanner:
      • Leading and trailing whitespace for all USA check fields is now trimmed.
      • A group of numbers in the Canadian check account number section preceding the first dash is now treated as a designation number only if its length is 4. Previously, a sequence of any length was treated as a designation number. Dashes present in the MICR line are preserved in the Account Number parsed field.
  • ⚠️ Deprecations:
    • Document Quality Analyzer:
      • The DocumentQuality enum and result object property are deprecated; use DocumentQualityAssessment instead.
      • The DocumentQualityAnalyzerResult.documentFound property is now deprecated. This deprecated property indicates if too few characters are detected. The new DocumentQualityAssessment will be reported as UNCERTAIN in this situation. If this is not suitable for your use case, consider using the Document Scanner instead to determine if an image contains a document.
      • qualityLevelThresholds and qualityLevelIndices are deprecated (see Breaking changes).
  • πŸš™ Under the hood:
    • Updated magic_enum to version 0.9.7.
    • Added a new barcode decoding model, increasing SDK size by approximately 650 KB.

Version 8.1.0 (2 Apr 2026)​

  • πŸŽ‰ New:
    • Image Processing:
      • New ColorDocumentShadowRemoval capable of removing shadows from documents without damaging text, barcodes, or images.
    • Document Data Extractor:
      • Added support for Romanian, Italian, Turkish, and Polish ID cards.
  • πŸš€ Improvements:
    • OCR Engine:
      • New model with better performance for German diacritics and the ß character.
      • Added support for TR, PO, IT, and RO alphabets.
    • Document Data Extractor:
      • Reduced the likelihood of reading incorrect values for eye color on German ID cards (e.g., GRUN instead of GRÜN).
    • Barcode Scanner:
      • Clean barcodes (QR Code, DataMatrix, and all 1D formats) are detected faster in single-shot mode and can be detected without a quiet zone.
      • Improved recognition of DataMatrix codes under challenging conditions.
      • Significantly improved decoding performance for truncated PDF417 barcodes.
      • Reduced the number of false-positive Codabar barcodes when scanning in live mode and the barcode is only partially visible.

Version 8.0.0 (7 Jan 2026)​

  • Initial release of the Linux Data Capture SDK.
  • Designed for headless integrations in server environments, embedded systems, and edge devices.
  • Runs fully offline on x86_64 and ARM64 architectures.
  • Supports Raspberry Pi and NVIDIA Jetson with optional GPU acceleration.

Get in touch​

If you need further information or are interested in licensing the Scanbot SDK, please get in touch with our solution experts.