diff --git a/CamScanner.cs b/CamScanner.cs index fe9c047..c8158af 100644 --- a/CamScanner.cs +++ b/CamScanner.cs @@ -576,18 +576,20 @@ public static class DocumentScanner Marshal.Copy(shadowMask.Data, shadowMaskData, 0, shadowMaskData.Length); shadowMask.Dispose(); - // 在阴影区域内:高方差像素保留(文字),低方差推白 + // 在阴影区域内:保护文字,只清除阴影背景 + // 判断逻辑: + // 墨迹强度高(inkData > 40)→ 有明显文字 → 保留 + // 墨迹强度低 → 阴影背景 → 推白 for (int i = 0; i < resultData.Length; i++) { if (shadowMaskData[i] > 128) { - // 在大面积暗区域内 - if (varDataS[i] < 12) + if (inkData[i] < 40) { - // 低方差 → 阴影本身 → 白色 + // 墨迹弱 → 阴影背景 → 白色 resultData[i] = 255; } - // 高方差 → 文字 → 保留 + // 墨迹强 → 文字 → 保留原值 } }