Table of contents
Swift
Objective-C

How to Use Multi-Frame Cross Filter

Multi-frame cross filter features are internally implemented in the BarcodeScanner component and are not customizable. This page explains how to use them with Foundational APIs.

Multi-frame cross filter is a collection of result-filtering features designed for camera-based barcode scanning.

Filter Name Description
Cross Verification Improves accuracy.
Overlapping Improves read rate for multi-barcode scanning.
Deduplication Removes duplicate results.

Cross Verification

Cross verification is one of the most commonly used techniques for improving scanning accuracy.

How to Enable

  • Objective-C
  • Swift
  1. DSMultiFrameResultCrossFilter *filter = [[DSMultiFrameResultCrossFilter alloc] init];
    [filter enableResultCrossVerification:DSCapturedResultItemTypeBarcode isEnabled:YES];
    [self.cvr addResultFilter:filter];
    
  2. let filter = MultiFrameResultCrossFilter()
    filter.enableResultCrossVerification(.barcode, isEnabled: true)
    cvr.addResultFilter(filter)
    

Set Criteria

  • Frame Window: The number of frames used for cross verification. The default is 5.
  • Min Consistent Frames: The number of consistent frames required to pass cross verification. The default is 2.
  • Objective-C
  • Swift
  1. DSMultiFrameResultCrossFilter *filter = [[DSMultiFrameResultCrossFilter alloc] init];
    DSCrossVerificationCriteria *criteria = [[DSCrossVerificationCriteria alloc] init];
    criteria.frameWindow = 5;
    criteria.minConsistentFrames = 3;
    [filter setResultCrossVerificationCriteria:DSCapturedResultItemTypeBarcode criteria:criteria];
    
  2. let filter = MultiFrameResultCrossFilter()
    let criteria = CrossVerificationCriteria()
    criteria.frameWindow = 5
    criteria.minConsistentFrames = 3
    filter.setResultCrossVerificationCriteria(.barcode, criteria: criteria)
    

Overlapping

How to Enable

  • Objective-C
  • Swift
  1. DSMultiFrameResultCrossFilter *filter = [[DSMultiFrameResultCrossFilter alloc] init];
    [filter enableLatestOverlapping:DSCapturedResultItemTypeBarcode isEnabled:YES];
    [self.cvr addResultFilter:filter];
    
  2. let filter = MultiFrameResultCrossFilter()
    filter.enableLatestOverlapping(.barcode, isEnabled: true)
    cvr.addResultFilter(filter)
    

Maximum Overlapping Frames

  • Objective-C
  • Swift
  1. DSMultiFrameResultCrossFilter *filter = [[DSMultiFrameResultCrossFilter alloc] init];
    [filter setMaxOverlappingFrames:DSCapturedResultItemTypeBarcode frames:10];
    
  2. let filter = MultiFrameResultCrossFilter()
    filter.setMaxOverlappingFrames(.barcode, frames: 10)
    

Deduplication

How to Enable

  • Objective-C
  • Swift
  1. DSMultiFrameResultCrossFilter *filter = [[DSMultiFrameResultCrossFilter alloc] init];
    [filter enableResultDeduplication:DSCapturedResultItemTypeBarcode isEnabled:YES];
    [self.cvr addResultFilter:filter];
    
  2. let filter = MultiFrameResultCrossFilter()
    filter.enableResultDeduplication(.barcode, isEnabled: true)
    cvr.addResultFilter(filter)
    

Set Duplicate Forget Time

  • Objective-C
  • Swift
  1. DSMultiFrameResultCrossFilter *filter = [[DSMultiFrameResultCrossFilter alloc] init];
    [filter setDuplicateForgetTime:DSCapturedResultItemTypeBarcode time:5000];
    [filter enableResultDeduplication:DSCapturedResultItemTypeBarcode isEnabled:true];
    
  2. let filter = MultiFrameResultCrossFilter()
    filter.setDuplicateForgetTime(.barcode, time: 5000)
    filter.enableResultDeduplication(.barcode, isEnabled: true)
    

This page is compatible for: