From 82902e1a30af41d6d0a03dbbaea454ff9430dcf7 Mon Sep 17 00:00:00 2001 From: sinvo Date: Fri, 20 Mar 2026 08:37:08 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=81=B0=E5=BA=95=E8=89=B2?= =?UTF-8?q?=EF=BC=9A=E7=99=BD=E5=BA=95=E6=B8=85=E7=90=86=E9=98=88=E5=80=BC?= =?UTF-8?q?=E4=BB=8E230=E9=99=8D=E5=88=B0120?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit gamma+线性拉伸后背景像素在140-200范围,之前阈值230根本 触发不到。降到120后,所有>120的像素被线性拉伸到255, 背景变纯白,文字(<120)不受影响。 Co-Authored-By: Claude Opus 4.6 --- CamScanner.cs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/CamScanner.cs b/CamScanner.cs index ace65b4..ce2b2bf 100644 --- a/CamScanner.cs +++ b/CamScanner.cs @@ -397,8 +397,12 @@ public static class DocumentScanner contrasted.Dispose(); // --- f: 白底清理 --- - Cv2.Threshold(sharpened, sharpened, 230, 255, ThresholdTypes.Trunc); - Cv2.ConvertScaleAbs(sharpened, sharpened, 255.0 / 230.0, 0); + // gamma=2.2 + 输出范围200 后,背景像素大约在 140-200 范围 + // 需要把这些灰色背景推到纯白 + // 阈值 120:高于120的像素线性拉伸到255(背景变纯白) + // 低于120的保持暗(文字不受影响) + Cv2.Threshold(sharpened, sharpened, 120, 255, ThresholdTypes.Trunc); + Cv2.ConvertScaleAbs(sharpened, sharpened, 255.0 / 120.0, 0); // 转回3通道 Mat output = new Mat();