How to enable Mrz Mode

MRZ scanning extracts critical data from the machine-readable zone of documents, particularly travel-related IDs such as passports and visas. This data includes personal information like name, nationality, passport number, and expiration date. MRZ scanning is essential in applications like border control, immigration, and identity verification.

Java:

                barkoderConfig.getDecoderConfig().SetEnabledDecoders(new Barkoder.DecoderType[]{
            Barkoder.DecoderType.IDDocument
          });
}
barkoderConfig.getDecoderConfig().IDDocument.enabled = true;
            

Kotlin:

                private fun setActiveBarcodeTypes() {
    // There is option to set multiple active barcodes at once as array
    bkdView.config.decoderConfig.SetEnabledDecoders(
        arrayOf(
            Barkoder.DecoderType.IDDocument,
        )
    )

    bkdView.config.decoderConfig.IDDocument.enabled = true
}
            

You can also obtain the images from the MRZ sample using the following code:

Java:

                @Override
public void scanningFinished(Barkoder.Result[] results, Bitmap[] thumbnails, Bitmap resultImage) {
    if (results.length > 0) {
        for (int i = 0; i < results.length; i++) {

            // Check if the barcode type is "MRZ"
            if ("MRZ".equals(results[i].barcodeTypeName)) {

                // Check if there are any images
                if (results[i].images != null) {

                    // Iterate over the images
                    for (Barkoder.BKImageDescriptor j : results[i].images) {

                        // Check the name of the image and assign the corresponding bitmap
                        switch (j.name) {
                            case "main":
                                mainBitmap = j.image;
                                break;
                            case "document":
                                documentBitmap = j.image;
                                break;
                            case "signature":
                                signatureBitmap = j.image;
                                break;
                            case "picture":
                                pictureBitmap = j.image;
                                break;
                        }
                    }
                }
            }
        }
    }
}   
            

Kotlin:

                override fun scanningFinished(results: Array<Barkoder.Result>, thumbnails: Array<Bitmap>, resultImage: Bitmap?) {

    for (i in results) {
        if (i.images != null) {
            for (j in i.images) {
                when (j.name) {
                    "main" -> mainBitmap = j.image
                    "document" -> documentBitmap = j.image
                    "signature" -> signatureBitmap = j.image
                    "picture" -> pictureBitmap = j.image
                }
            }
        }
    }
}
            

History:

close