用koa2 实现一个简单的图片文字识别小工具!!!1.安装tesseract OCR 1.1windows 访问Tess
1.安装tesseract OCR
1.1windows
- 访问Tesseract OCR的GitHub发布页面:github.com/tesseract-o…
- 下载最新的安装程序(.exe)并运行。
- 安装完成后,通过命令行使用Tesseract。
1.2macOS
使用Homebrew安装Tesseract OCR:
brew install tesseract
1.3 Ubuntu/Debian:
首先,更新你的包列表:
sudo apt-get update
然后安装Tesseract OCR:
sudo apt-get install tesseract-ocr
安装完成后,通过终端使用Tesseract。
确保在使用Tesseract之前,你已经下载了所需语言的训练数据文件,并将其放置在Tesseract的tessdata
目录下。你可以通过以下命令来训练一个新语言:
tesseract --list-langs
tesseract --install-lang <lang>
其中 <lang>
是你想要安装的语言代码,例如 eng
、spa
等。
2.服务器端用node的koa2框架
2.1.1 安装所需要插件
- koa-multer:文件上传处理
- tesseract.js: 操作Tesseract OCR封装好的工具
2.1.2 封装文件处理
const multer = require('koa-multer')
let storage = multer.diskStorage({
//文件保存路径 这个路由是以项目文件夹 也就是和入口文件(如app.js同一个层级的)
destination: function (req, file, cb) {
let type = "";
if(req._parsedUrl.query){
type = req._parsedUrl.query.split("=")[1]||''
}
cb(null, 'public/uploads/')
},
//修改文件名称
filename: function (req, file, cb) {
let fileFormat = (file.originalname).split("."); //以点分割成数组,数组的最后一项就是后缀名
cb(null, 'Jimmy'+Date.now() + "." + fileFormat[fileFormat.length - 1]);
}
})
let upload = multer({
storage: storage,
limits: {
fileSize: 10240*10240/2 // 限制512KB
}
});
module.exports = upload
2.1.3接口调用
router.post('/moreThreadsOCR', upload.single('image'), async ctx => {
const image = ctx.req.file;
if (!image) {
ctx.status = 400;
ctx.body = 'No image uploaded.';
return;
}
try {
const text = await Tesseract.recognize(image.path, 'eng', { //eng 英文 chi_sim中文
logger: m => {} // 日志函数
});
console.log(text);
ctx.status = 200;
ctx.body = text.data.text;
} catch (error) {
ctx.status = 500;
ctx.body = 'OCR failed';
console.error(error);
}
})
2.1.4接口测试
2.2 windos样本训练
[具体查看](Tesseract-OCR 字符识别---样本训练 [转]_51CTO博客_tesseract-ocr 训练)
转载自:https://juejin.cn/post/7383894634156359689