From 5e0cf451eaf7a962dac4a30a1c8ffa2007691713 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Nicolas <6371790+pynicolas@users.noreply.github.com> Date: Tue, 1 Jul 2025 21:24:10 +0200 Subject: [PATCH] Avoid detecting very small quadrilaterals --- app/src/main/java/org/mydomain/myscan/DocumentDetection.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/mydomain/myscan/DocumentDetection.kt b/app/src/main/java/org/mydomain/myscan/DocumentDetection.kt index 3962389..0adab1f 100644 --- a/app/src/main/java/org/mydomain/myscan/DocumentDetection.kt +++ b/app/src/main/java/org/mydomain/myscan/DocumentDetection.kt @@ -27,7 +27,7 @@ import kotlin.math.abs import kotlin.math.max import kotlin.math.sqrt -fun detectDocumentQuad(mask: Bitmap): Quad? { +fun detectDocumentQuad(mask: Bitmap, minQuadAreaRatio: Double = 0.02): Quad? { val mat = Mat() Utils.bitmapToMat(mask, mat) @@ -62,6 +62,10 @@ fun detectDocumentQuad(mask: Bitmap): Quad? { } } + if (maxArea < mask.width * mask.height * minQuadAreaRatio) { + return null + } + val vertices = biggest?.toList()?.map { Point(it.x.toInt(), it.y.toInt()) } return createQuad(vertices) }