使用 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 recognizeCaptcha(String imagePath) async {
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 main(List args) async {
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

posted @ 2025-07-08 22:47  ttocr、com  阅读(12)  评论(0)    收藏  举报