@
Ming5Ming 是的, 我找了下当时的代码, 核心那段方法是这样的. 90 多个 case, 涵盖 0-9 和小数点还有-号. 因为最后已经把图片处理的高度一致了,二值化后把所有独立的白色像素按块全部切出来, 本意是缩小图片在能识别出来的同时加速 ocr 速度, 最后单数字尺寸都极小了, 索性从上到下从左到右直接数连续的白色像素了, 跑了两天把遗漏的 case 加进去, 效果还算不错反正是解决问题了.
```java
public static String isNumber(StringBuffer tempStr) {
switch (tempStr.toString()) {
case "11111":
case "111111":
return "-";
case "11111161111116":
return "-0";
case "2":
return ".";
case "11":
case "22":
return ":";
case "61111116":
case "51111117":
case "52211117":
case "71111115":
case "71111117":
case "72211227":
return "0";
case "1181":
case "129":
case "1229":
case "1299":
case "2299":
return "1";
case "2211111111121":
case "22312112141":
case "111311111131":
case "112212112141":
case "121312112131":
case "122413113141":
case "121312112141":
return "2";
...
...
...
case "42221111117":
case "411111111117":
case "411221112227":
case "412221111117":
return "9";
case "1210111021":
return "↑";
case "132121911132121911":
case "132131911132131911":
return "44";
case "4141111111141132121911":
case "4141111111141132131911":
return "54";
case "4141111111141132121911132121911":
return "544";
default:
int err = 1 / 0;
return "";
}
}
```