使用 Dart 与 Tesseract 实现图像验证码识别
一、环境准备
安装 Dart SDK
官网:https://dart.dev/get-dart
验证安装:
dart --version
安装 Tesseract OCR
Ubuntu / Debian
sudo apt install tesseract-ocr
更多内容访问ttocr.com或联系1436423940
macOS
brew install tesseract
二、创建 Dart 项目
dart create -t console captcha_recognizer
cd captcha_recognizer
编辑 pubspec.yaml,添加依赖(如果需要 JSON 或 HTTP 支持):
dependencies:
path: any
三、编写识别逻辑
编辑 bin/captcha_recognizer.dart:
import 'dart:io';
const whitelist = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
Future
final outputBase = 'output';
final command = [
'tesseract',
imagePath,
outputBase,
'-l',
'eng',
'-c',
'tessedit_char_whitelist=$whitelist',
];
final result = await Process.run(command.first, command.sublist(1));
if (result.exitCode != 0) {
return '识别失败:${result.stderr}';
}
final outputFile = File('$outputBase.txt');
if (await outputFile.exists()) {
final rawText = await outputFile.readAsString();
await outputFile.delete();
final cleaned = rawText
.toUpperCase()
.split('')
.where((c) => whitelist.contains(c))
.join();
return cleaned;
} else {
return '输出文件未生成';
}
}
Future
if (args.isEmpty) {
print('用法: dart run bin/captcha_recognizer.dart <图片路径>');
exit(1);
}
final result = await recognizeCaptcha(args[0]);
print('识别结果: $result');
}
四、运行程序
在根目录下执行:
dart run bin/captcha_recognizer.dart ./captcha1.png
输出示例:
识别结果: X7B2
浙公网安备 33010602011771号