基于前期的学习和测试,圈选图片识别文本的程序(后续简称ReadImageTextByIronOcr程序)已经集成ShareX项目实现了实时截屏并返回从截屏中使用矩形截图截取的图片,然后在ReadImageTextByIronOcr程序中圈选文本区域并调用IronOCR识别文本。本文结合TranslationTool项目的学习及梳理情况,将文本翻译功能嵌入到ReadImageTextByIronOcr程序中,最终实现识别出的英文文本能够自动翻译为中文。
TranslationTool项目中,Translation.WebApi项目包含从百度、有道、谷歌、金山网站在线查询单词或翻译文本的类,而Translation.Business项目主要包含从本地数据库中查询单词的相关类。本文中主要使用在线翻译的类,故此ReadImageTextByIronOcr程序只需引用Translation.WebApi项目即可,同时由于TranslationTool项目默认使用有道网站,因此在ReadImageTextByIronOcr程序中主要调用连接有道网站获取文本翻译结果的相关类即可。
由于文字识别结果并不能百分之百准确,故需将ReadImageTextByIronOcr程序中识别结果的文本框设为可读,支持用户修正识别结果。同时在主界面增加翻译文字按钮和翻译结果文本框,主要响应代码如下所示。
var searchingText = txtOcrResult.Text.Trim();
var translation = string.Empty;
translation = await YouDaoUnOfficialTranslationApiService.GetTranslationAsync(searchingText);
txtTranslateResult.Text = translation;
最后是程序运行效果。程序运行初始界面如下所示:
打开Python中turtle模块的官网英文帮助文档页面,点击ReadImageTextByIronOcr程序中的动态截图按钮,截取部分页面。
调整图片显示比例,圈选一句完整的英文,设置识别语言为英文,点击识别按钮。可以看到能够正确的识别出文本内容。
点击翻译文字按钮,在右下角显示有道网站返回的翻译结果。
参考文献:
[1]https://github.com/Kybs0/TranslationTool