what-the-bank/sources/com/kofax/kmc/ken/engines/IsgMrzDocumentDetector.java

81 lines
6.5 KiB
Java
Raw Permalink Normal View History

2024-07-27 18:17:47 +07:00
package com.kofax.kmc.ken.engines;
import android.graphics.Bitmap;
import android.graphics.Point;
import com.kofax.android.abc.machine_vision.DetectedDocumentBoundary;
import com.kofax.android.abc.machine_vision.DocumentTracker;
import com.kofax.android.abc.machine_vision.TrackedDocument;
import com.kofax.kmc.ken.engines.data.BoundingTetragon;
import java.util.Vector;
/* loaded from: classes3.dex */
public class IsgMrzDocumentDetector implements IMrzDocumentDetector {
private static final String TAG = "IsgMrzDocumentDetector";
private final DocumentTracker bK = new DocumentTracker();
static {
System.loadLibrary("a1ac4");
System.loadLibrary("ee77d4");
System.loadLibrary("d8b3e6");
System.loadLibrary("b2681f");
}
@Override // com.kofax.kmc.ken.engines.IMrzDocumentDetector
public void destroy() {
this.bK.dispose();
}
@Override // com.kofax.kmc.ken.engines.IMrzDocumentDetector
public BoundingTetragon detect(Bitmap bitmap) {
DocumentTracker documentTracker;
synchronized (this.bK) {
s();
try {
try {
new com.kofax.mobile.sdk.o.d(bitmap).a(this.bK);
this.bK.processFrame();
documentTracker = this.bK;
} catch (Exception e) {
com.kofax.mobile.sdk._internal.k.e(TAG, " Exception while native tracker processing", (Throwable) e);
documentTracker = this.bK;
}
documentTracker.releaseFrame();
Vector<TrackedDocument> Documents = this.bK.Documents();
if (Documents.size() <= 0) {
com.kofax.mobile.sdk._internal.k.b(TAG, "docs.size() < 1, returning null detection");
return null;
}
TrackedDocument trackedDocument = Documents.get(0);
if (trackedDocument.Boundary().BoundaryType() != DetectedDocumentBoundary.DetectedBoundaryType.WHOLE_OBJECT) {
return null;
}
Vector<Point> Corners = trackedDocument.Boundary().Corners();
BoundingTetragon boundingTetragon = new BoundingTetragon();
boundingTetragon.setTopLeft(Corners.get(0));
boundingTetragon.setTopRight(Corners.get(1));
boundingTetragon.setBottomLeft(Corners.get(3));
boundingTetragon.setBottomRight(Corners.get(2));
return boundingTetragon;
} catch (Throwable th) {
this.bK.releaseFrame();
throw th;
}
}
}
private void s() {
this.bK.initializeString("<?xml version=\"1.0\" encoding=\"utf-8\"?><Configuration name=\"XXXX\"><Section name=\"DocumentTracker\"><Parm name=\"DetectorConfig\" type=\"string\" value=\"MrzCorridorConfig\" /><Parm name=\"FrameHistorySize\" type=\"int\" value=\"20\" /><Parm name=\"MaxTrackedDocuments\" type=\"int\" value=\"1\" /><Parm name=\"IsUseReferenceFeature\" type=\"bool\" value=\"yes\" /></Section><Section name=\"MrzCorridorConfig\"><Parm name=\"DetectorType\" type=\"string\" value=\"MrzCorridorDetector\" /><Parm name=\"CorridorConfig\" type=\"string\" value=\"CorridorConfig\" /><Parm name=\"MrzConfig\" type=\"string\" value=\"MrzConfig\" /><Parm name=\"UseMrzDetector\" type=\"bool\" value=\"yes\" /><Parm name=\"MarginRatio\" type=\"float\" value=\"0.08\" /></Section><Section name=\"CorridorConfig\"><Parm name=\"MaxTopBottomSegmentSupportRatio\" type=\"float\" value=\"0.60\" /><Parm name=\"MaxLeftRightSegmentSupportRatio\" type=\"float\" value=\"0.60\" /><Parm name=\"TotalSegmentSupportRatio\" type=\"float\" value=\"2.4\" /><Parm name=\"ContrastThreshold\" type=\"float\" value=\"13.0\" /><Parm name=\"LeftStartRatio\" type=\"float\" value=\"0.0\" /><Parm name=\"LeftEndRatio\" type=\"float\" value=\"0.5\" /><Parm name=\"RightStartRatio\" type=\"float\" value=\"0.5\" /><Parm name=\"RightEndRatio\" type=\"float\" value=\"0.99\" /><Parm name=\"TopStartRatio\" type=\"float\" value=\"0.0\" /><Parm name=\"TopEndRatio\" type=\"float\" value=\"0.5\" /><Parm name=\"BottomStartRatio\" type=\"float\" value=\"0.5\" /><Parm name=\"BottomEndRatio\" type=\"float\" value=\"0.99\" /><Parm name=\"AspectRatio\" type=\"float\" value=\"-1.0\" /><Parm name=\"MaxColorContrastFactor\" type=\"float\" value=\"1.5\" /><Parm name=\"MaxGreyContrastFactor\" type=\"float\" value=\"1.5\" /><Parm name=\"PixelColorConstrastFactor\" type=\"float\" value=\"1.0\" /><Parm name=\"PixelGreyConstrastFactor\" type=\"float\" value=\"1.0\" /><Parm name=\"UseFullScaleImage\" type=\"bool\" value=\"yes\" /><Parm name=\"UseAbsoluteRanking\" type=\"bool\" value=\"yes\" /><Parm name=\"UseFeatureB\" type=\"bool\" value=\"yes\" /><Parm name=\"OrientationThreshold\" type=\"double\" value=\"0.268\" /><Parm name=\"DownscaleSize\" type=\"int\" value=\"399360\" /><Parm name=\"MaxRotationAngles\" type=\"double\" value=\"5.5\" /><Parm name=\"MaxShapeError\" type=\"float\" value=\"0.1\" /></Section><Section name=\"MrzConfig\"><Parm name=\"SideConfig\" type=\"string\" value=\"MrzSideConfig\" /><Parm name=\"NumberOfOrientations\" type=\"int\" value=\"2\" /><Parm name=\"ScalingFactor\" type=\"float\" value=\"0.5\" /><Parm name=\"LowDPI\" type=\"float\" value=\"100.0\"/><Parm name=\"HighDPI\" type=\"float\" value=\"400.0\"/><Parm name=\"MinAspectRatio\" type=\"float\" value=\"0.3\" /><Parm name=\"CharacterHeight\" type=\"float\" value=\"0.11\" /><Parm name=\"ErrorThreshold\" type=\"float\" value=\"0.30\"/><Parm name=\"NumCharacterThreshold2\" type=\"int\" value=\"22\"/><Parm name=\"ROIExtensionMargin\" type=\"float\" value=\"1.00\"/><Parm name=\"BottomHeightRatio\" type=\"float\" value=\"1.0\"/><Parm name=\"FrameMargin\" type=\"float\" value=\"0.02\"/></Section><Section name=\"MrzSideConfig\"><Parm name=\"ContrastThreshold\" type=\"int\" value=\"20\"/><Parm name=\"ToleranceRatio\" type=\"float\" value=\"0.02\"/><Parm name=\"TotalSegmentSupportRatio\" type=\"float\" value=\"2.4\"/><Parm name=\"MaxTopBottomSegmentSupportRatio\" type=\"float\" value=\"0.60\"/><Parm name=\"MaxLeftRightSegmentSupportRatio\" type=\"float\" value=\"0.60\"/></Section></Configuration>", "DocumentTracker");
r();
}
private void r() {
this.bK.reset();
this.bK.startup();
this.bK.RunDetection = true;
this.bK.RunLocalSearch = false;
this.bK.RunBoundaryDetection = true;
this.bK.RunDirectionDetection = true;
this.bK.RunRecognition = false;
}
}