用的是什么方法
纯图像算法,不需要任何训练数据,也不需要联网,直接跑在你的手机浏览器里。
1. 植被指数。用 RGB 三个通道算超绿指数 ExG = 2G−R−B 与 ExGR = ExG − ExR,
把植物组织和背景分开。这是农业遥感里用了几十年的经典方法:
文献里 ExGR 阈值 0 区分植物/背景的正确率约 86%,
ExG−ExR 分割冠层与人工勾画的重合度可达 99.5% 以上。
2. 边界洪水填充。从画面四边向内填充背景,能填到的就是背景。以此区分
「叶片内部被包住的病斑」和「叶片缝隙里透出的土」——这是这套算法最容易被做错的地方,
简单阈值法会把土算成病斑,导致严重度虚高。
3. 色相分类。在识别出的植物组织内,按色相分成健康绿(68–200°)、
黄化(36–68°)、坏死(其余)。
4. 严重度。病斑面积 ÷ 叶面积 × 100%,按国内病害分级惯例
划成 5% / 10% / 30% / 70% 四档,对应 1 / 3 / 5 / 7 / 9 级。
验证结果(合成图实测,浏览器内运行)
用已知比例的合成图反向检验算法(近拍单叶模式):
| 真实病斑占比 | 测出值 | 偏差 |
| 0% | 2.6% | 本底 +2.6 |
| 5% | 7.3% | +2.3 |
| 15% | 15.9% | +0.9 |
| 35% | 33.8% | −1.2 |
| 黄化 20% | 19.5% | −0.5 |
俯拍冠层模式,冠层覆盖率:
| 真实覆盖率 | 测出值 | 偏差 |
| 80% | 80.0% | 0.0 |
| 50% | 49.9% | −0.1 |
| 25% | 25.0% | 0.0 |
上表为全图口径。默认开启的「只分析中央 70%」会裁掉画面边缘,覆盖率读数因此会偏高几个点(实测 80% → 85.1、25% → 30.7)。
这不是误差:裁剪让株占比例自然升高。用肥组与对照组同口径对比,差值完全可靠;只有拿单张图的绝对值跟别人比时,要确认两边口径一致。CSV 里已记录每条的裁剪口径。
结论:
① 冠层覆盖率基本无偏,可以直接当数字用;
② 病斑占比有约 +2.6 个百分点的本底偏移,看差值可靠(用肥组减对照组),看绝对值要减掉本底;
③ 俯拍冠层的病斑占比本底偏移达 4–10%(土干扰),本模式下只能看趋势,不要当严重度用。
这套东西做不到什么(重要)
① 它不告诉你这是什么病。它只知道「有多少面积已经坏了」,不知道是白绢病还是根腐病。
病名要靠人、靠专家,或者靠现成的商用识别 App。
② 它分不清缺素和黄化病。缺氮、缺镁、根系病害、药害都表现为叶子发黄,
单张 RGB 照片在原理上就很难区分——学术界跨年跨作物迁移的缺素识别准确率会掉到 20% 以下。
③ 重度病害会被低估。病斑连成片、叶片碎掉后,算法能抓住的边界会变少。
所以严重度看趋势、看组间差,别抠绝对值。
④ 光照必须尽量一致。同一次对比的两组照片要同一天、同一时段、同一天气拍。
否则你测出来的是天气差异,不是肥效差异。
拍照规程(照这个做,数据才可比)
近拍单叶:
1. 摘叶位置固定——同一叶位(比如中部第 5–7 片叶),每次同一位置。
2. 白纸垫底,垂直俯拍,叶片占画面 70% 以上。
3. 不要在正午强光下拍(阴影割裂叶片),阴天或上午最好。
4. 一组至少拍 5 片叶,取中位数。
俯拍冠层:
1. 手机端平,垂直朝下,距冠层约 1 米,固定这个高度别变。
2. 站在固定标记点拍,每次同一位置同一向。
3. 开启「只分析中央区域」,避开边缘。
4. 用肥区和对照区各拍 3 个点。
最要紧的一条:两组必须同一天拍。跨天比,等于白测。