Commit Graph

12 Commits

Author SHA1 Message Date
ed205c4f04 修复阴影区域文字被模糊:改用墨迹强度判断代替方差
阴影区域内文字的局部方差被暗背景拉低导致误判。
改为直接看墨迹强度(inkData):>40说明有明显文字笔画保留,
<40说明是阴影背景推白。墨迹强度不受背景亮度影响。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 17:11:43 +08:00
3f30a9e79d 替换边缘扫描为形态学大面积暗区域检测
边缘扫描只能处理从边缘开始的连续暗像素,无法处理折角三角形
阴影等不规则形状。改用形态学方法:
1. 灰度二值化找所有暗像素(<纸面亮度65%)
2. 大核腐蚀去掉文字笔画(小面积暗区域)
3. 膨胀回来得到大面积阴影掩码
4. 掩码内低方差像素推白,高方差像素(文字)保留

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 17:09:12 +08:00
f17fd5cb85 新增条带状折痕检测:按列/行投影识别窄条暗带
深色窄折痕的边缘方差高(亮暗跳变),双级方差检测不到。
新增条带检测:按列/行统计暗像素比例,超过40%的列/行
标记为折痕条带,条带内低方差像素推白,高方差像素(文字)保留。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 17:06:01 +08:00
473eeb6e53 优化折痕检测:双级方差保护文字
单级方差核(15)太大,折痕附近的文字方差被稀释导致误伤。
改为双级方差:
- 小核(7):精确检测文字笔画高频特征,>=5即保护
- 大核(31):检测折痕低频渐变,<12才触发抑制
两级方差都低时才判定为折痕,大幅减少文字误伤。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 17:03:34 +08:00
c62db4af45 重写折痕/阴影检测:用局部方差区分文字和折痕
放弃基于背景亮度阈值的方案(会误伤折痕附近的文字)。
改用频域特征区分:
- 文字 = 高频信号,笔画边缘锐利,局部灰度方差高
- 折痕/阴影 = 低频信号,缓慢渐变,局部灰度方差低
计算灰度图的局部方差(|gray-localMean|的局部均值),
低方差+有墨迹的像素判定为折痕/阴影,按方差比例推向白色。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 16:56:02 +08:00
ffbfa18308 增强阴影/折痕抑制:提高触发阈值+双重检测+平滑过渡
1. 抑制起始阈值从75%提高到92%,折痕处也能触发
2. 用三次Hermite曲线(smoothstep)平滑过渡,避免硬边
3. 新增灰度+墨迹比例双重检测:原始灰度很暗但墨迹占比小的
   像素判定为阴影/折痕而非文字,额外抑制90%

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 16:53:04 +08:00
c8ef4ac933 修复折痕/阴影变纯黑:在墨迹映射中加入背景亮度抑制
折痕处背景估计被拉低但bg-gray差值仍大,被误判为深墨迹。
现在通过比较背景估计值与纸面中心亮度的比值来判断:
背景低于纸面亮度75%时开始抑制墨迹输出(平方衰减),
越暗的区域抑制越强,阴影/折痕变浅灰或白色而非纯黑。
同时保留边缘扫描法处理四周连续暗边框。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 16:50:58 +08:00
1eada92ca0 重写阴影处理:改为边缘扫描法,只处理四周边缘阴影
OTSU全局阈值会把文字密集区域误判为阴影。改为从图像四边向内
逐列/逐行扫描,遇到连续暗像素(低于纸面亮度55%)标记为阴影,
遇到亮像素立即停止。这样只会处理边缘连续暗区域,不会误伤
文档中间的文字。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 16:44:21 +08:00
3075dcb012 重写阴影处理:改为后处理阶段,用区域级检测避免误伤文字
不再在墨迹提取循环中逐像素判断阴影(容易误判文字为阴影导致空心字),
改为先正常处理所有像素,最后用大核模糊的原始灰度图+OTSU自动阈值
生成阴影掩码,区域级地把阴影覆盖为白色。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 16:39:48 +08:00
a65c86bb24 改进阴影检测:用原始灰度值判断而非仅依赖背景估计
背景估计受大核模糊影响,阴影处的值可能被周围亮区域拉高。
改为同时检测原始灰度和背景估计,低于中位数45%/50%的区域
识别为阴影,并用渐变过渡避免硬边。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 16:36:56 +08:00
2dcfcda850 修复文档边缘阴影变纯黑的问题
通过背景亮度中位数计算阴影阈值,背景估计值低于中位数60%的区域
识别为拍照阴影,直接输出白色而非当作墨迹处理成黑色。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 16:34:37 +08:00
7352f55e9e 初次完美版
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 16:33:38 +08:00