DimoCardScanTest.kt
47 lignes · 1825 octets
package fr.ebii.card2vcf.scan import android.graphics.PointF import org.junit.runner.RunWith import org.robolectric.RobolectricTestRunner import org.robolectric.annotation.Config import kotlin.test.Test import kotlin.test.assertNotNull import kotlin.test.assertTrue @RunWith(RobolectricTestRunner::class) @Config(sdk = [31]) class DimoCardScanTest { @Test fun scanApresCorrectionExif() { if (!OpenCvScanEngine.ensureOpenCv()) return val bytes = javaClass.classLoader!! .getResourceAsStream("cards/dimo_genoux.jpg")!! .readBytes() val oriented = ImageOrientation.fromJpegBytes(bytes)!! assertTrue(oriented.fromExif) val result = OpenCvScanEngine().scan(oriented.bitmap) assertNotNull(result.bitmap) assertTrue(result.bitmap.width > 100) assertTrue(result.bitmap.height > 100) println("SCAN dimo ${result.bitmap.width}x${result.bitmap.height} conf=${result.confidence}") } @Test fun scanAvecCoinsManuelsResteStable() { if (!OpenCvScanEngine.ensureOpenCv()) return val bytes = javaClass.classLoader!! .getResourceAsStream("cards/dimo_genoux_oriented.jpg")!! .readBytes() val oriented = ImageOrientation.fromJpegBytes(bytes)!! val w = oriented.bitmap.width.toFloat() val h = oriented.bitmap.height.toFloat() val margin = 0.05f val corners = ScanCorners( topLeft = PointF(w * margin, h * margin), topRight = PointF(w * (1 - margin), h * margin), bottomRight = PointF(w * (1 - margin), h * (1 - margin)), bottomLeft = PointF(w * margin, h * (1 - margin)), ) val result = OpenCvScanEngine().scan(oriented.bitmap, corners) assertTrue(result.confidence >= 0.9f) } }
GitRust