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
selectionConfigfield toBarcodeScannerConfiguration. ItsselectionMethoddetermines whether all detected barcodes are returned (All), only the barcode closest to the center (CenterClosest), or only the barcode touching the center (Center). ForCenterClosestandCenter, the center point can be configured with the normalized valuescenterCoordXandcenterCoordY(default:0.5,0.5). ForCenter, acenterDistanceTolerancecan also be configured. - 2D barcode configurations have a new field
fallbackEncoding, used when the barcode doesn't specify an encoding. The default isUnknown, where the SDK guesses the encoding, as in previous versions.
- Added the
- 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.
- Added support for the new German passports introduced in October 2025 (distinguishable by the Type value
- Document Scanner:
- The Document Cleanup feature lets the user remove artifacts from a document by drawing over them while preserving the text.
- Added the
documentCropOptimizationargument to theImageProcessor.cropmethod with a default ofOPTIMIZE_QUAD, which corresponds to the existing behavior (reduces the input quad by 0.5%). To turn it off, passNONE.
- Image Processing:
- The stroke weight (line thickness) of binarized images with anti-aliasing enabled can now be controlled with the
strokeWeightparameter.
- The stroke weight (line thickness) of binarized images with anti-aliasing enabled can now be controlled with the
- Text Pattern Scanner:
- Added the
inputHeightLimitoption. It limits the input image height to avoid text that's too large for the text detection model.
- Added the
- General:
- π Improvements:
- Barcode Scanner:
BarcodeFormatUpcEanConfigurationhas a new fieldconvertUpceToUpca, which converts the 6-digit UPC-E result into a 12-digit UPC-A result. It'sfalseby 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) andNEXT_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
ColorDocumentShadowRemovalFilteron documents with tables.
- Barcode Scanner:
- π Bug fixes:
- Barcode Scanner:
stripCheckDigitsnow 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
damagedBarcodeReconstructionwas enabled. - Fixed crashes when scanning Data Matrix barcodes with
engineModeset toLegacy. - 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
ColorDocumentShadowRemovalFilteron images smaller than 1 megapixel.
- Fixed the chessboard artifacts produced by the
- 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
allowedCharactersset was sometimes ignored.
- Text Pattern Scanner:
- Fixed how the VIN Scanner and Text Pattern Scanner apply the input image height limit.
- Barcode Scanner:
- β οΈ Breaking changes:
- Barcode Scanner:
- The boolean
enableOneDBlurScannerwas replaced by theConfigStateenumblurryOneDScanner.
- The boolean
- 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 statusSCANNING_IN_PROGRESSis 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
SUCCESSis returned only if at least 3 of these scans are identical and successful. If fewer successful scans are obtained, a result with the statusSUCCESS_BUT_LOW_CONFIDENCE_RESULTis 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) orERROR_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 statusScanningInProgressis returned instead.
- The Check Scanner now features improved result accumulation across frames, which significantly reduces the likelihood of OCR errors. It can be configured via
- Document Data Extractor:
- The new status
OK_BUT_LOW_CONFIDENCE_RESULTSwas introduced. This status can only be returned in single-shot mode. OK_BUT_NOT_CONFIRMEDwas renamed to theSCANNING_IN_PROGRESSstatus, which is now only returned in live scanning mode.
- The new status
- Document Scanner:
- The
DocumentEnhancerclass with thestraightenmethod was renamed to theDocumentStraightenerclass with therunmethod.
- The
- 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=0in theCustomBinarizationFilter's configuration. To get the previous behavior of theScanbotBinarizationFilter, useCustomBinarizationFilterwithPRESET_4andstrokeWeight=0.
- MRZ Scanner:
- The internal MRZ field
Unknownwas previously returned but is now removed from the result. - The Nationality field is now optional.
- The internal MRZ field
- Barcode Scanner:
- β οΈ Deprecations:
- Text Pattern Scanner:
- The
OcrResolutionLimitoption is deprecated in favor ofInputHeightLimit.
- The
- Text Pattern Scanner:
- π Under the hood:
- General:
- Updated gs1-json to version 1.2.
- General:
Version 9.0.0 (6 Jul 2026)β
- π Release notes:
- Explore the release highlights and key improvements here.
- π New:
- General:
- ImageRef:
optimizeflag added tosaveImageandencodeImage. When set totrue, the encoder spends additional time to improve JPEG output quality.
- ImageRef:
- Document Scanner:
- Added
DocumentEnhancerwith astraightenmethod that removes crinkles, creases, folds, and curl from document photos. See the Document Enhancer documentation for details. - Support for recognizing cropped documents.
DocumentScannerParametersnow includesalreadyCroppedScoreThreshold, andDocumentDetectionScoresnow includesalreadyCroppedScore. In single-shot mode, if no document is detected and the score exceeds this threshold, a newDocumentDetectionStatusvalueOK_BUT_ALREADY_CROPPEDis 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).
- Added
- Document Quality Analyzer:
- A new Document Quality Analyzer algorithm was introduced. The result object's
qualityproperty can now beACCEPTABLE,UNACCEPTABLE, orUNCERTAIN, indicating whether a user-provided document image meets the required quality standard. Advanced configuration is available using thequalityAnalysisModelparameter, 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, andUNCERTAIN. - Added the
inputScalesoption to run the model at multiple resolutions and automatically select the best result. - Added the
inputScaleThresholdToProcessEntireImageoption to run the Document Quality Analyzer on the entire image, even whenminProcessedFractionandmaxProcessedFractionare not equal to 1 for small input scales. - The resulting
bestInputScaleis now included in the output.
- A new Document Quality Analyzer algorithm was introduced. The result object's
- 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
TwoDDecodingModeto the barcode configuration. It defaults toHIGH_EFFORTand can be set toLOW_EFFORTfor very low-power devices requiring higher frame rates.
- Added a
- General:
- π Improvements:
- General:
- Node.js wrapper: Added Deno compatibility (deno.com).
- Python wrapper: Added
__getitem__,__len__, and__iter__utilities to thePointandPointFclasses.
- 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_VISIBLEdocument status when only 1β3 document corners are visible in the input image and the scanner is configured withallowPartiallyVisibleDocuments = true.
- Document Quality Analyzer:
- Increased the default threshold for
minRequiredOrientationConfidenceto 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.
- Increased the default threshold for
- 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
enableOneDBlurScanneris 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_EFFORTenabled, scanning works even on curved surfaces or when the code is partially occluded.
- Reduced the false positive rate for barcode formats EAN-8, EAN-13, and UPC-A when
- General:
- π Bug fixes:
- Document Quality Analyzer:
- Fixed
ProcessByTileConfiguration.enabledbeing ignored regardless of its value.
- Fixed
- 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.
- Document Quality Analyzer:
- β οΈ 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.
- 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
- 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
qualityThresholdsandqualityIndiceshave been renamed toqualityLevelThresholdsandqualityLevelIndices. The renamed properties are now deprecated; use the newqualityAnalysisModelproperty instead. - The
detectOrientationoption has been removed. Orientation detection now always runs. - The
inspectSmallTextoption has been removed.
- The configuration properties
- Document Data Extractor:
- When initialized with no accepted document types, or only invalid ones, and with MRZ fallback disabled, an
InvalidArgumenterror is now thrown.
- When initialized with no accepted document types, or only invalid ones, and with MRZ fallback disabled, an
- 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.
- General:
- β οΈ Deprecations:
- Document Quality Analyzer:
- The
DocumentQualityenum and result object property are deprecated; useDocumentQualityAssessmentinstead. - The
DocumentQualityAnalyzerResult.documentFoundproperty is now deprecated. This deprecated property indicates if too few characters are detected. The newDocumentQualityAssessmentwill be reported asUNCERTAINin 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. qualityLevelThresholdsandqualityLevelIndicesare deprecated (see Breaking changes).
- The
- Document Quality Analyzer:
- π Under the hood:
- Updated
magic_enumto version 0.9.7. - Added a new barcode decoding model, increasing SDK size by approximately 650 KB.
- Updated
Version 8.1.0 (2 Apr 2026)β
- π New:
- Image Processing:
- New
ColorDocumentShadowRemovalcapable of removing shadows from documents without damaging text, barcodes, or images.
- New
- Document Data Extractor:
- Added support for Romanian, Italian, Turkish, and Polish ID cards.
- Image Processing:
- π 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.
- OCR Engine:
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.
Scanbot SDK is part of the Apryse SDK product family
A mobile scan is just the start. With Apryse SDKs, you can expand mobile workflows into full crossβplatform document processing. Whether you need to edit PDFs, add secure digital signatures, or use a fast, customizable document viewer and editor, Apryse gives you the tools to build powerful features quickly.
Learn more
