掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 2557|回复: 20

[经验交流] goldendict在windows系统下一种OCR查词实现的方法

[复制链接]
  • TA的每日心情
    擦汗
    2019-11-22 21:32
  • 签到天数: 69 天

    [LV.6]常住居民II

    发表于 2019-3-5 22:39:39 | 显示全部楼层 |阅读模式
    本帖最后由 ура 于 2019-11-22 22:30 编辑 $ f( `  f2 r% o' J9 G& P: H
    : h/ [; `  H. s3 Z. ]2 k# P* H  \
    前几天在玩一个英文的小游戏,苦于我英语不好,许多单词都要查一下才明白意思。正常的查词方法实在影响游戏体验。尽管如有道词典也有ocr功能,但是其使用体验却很糟糕。我前几天看到https://www.pdawiki.com/forum/thread-31879-1-1.html?x=300193帖子中提到的ocr查词方法,一时间就觉得这才是利用ocr查词应该有的样子。可惜帖子中只介绍了mac系统下的方法。为了模仿这种实现方式,我找到了一款开源截图软件greenshot,官网https://getgreenshot.org,github项目地址https://github.com/greenshot
    ; y+ `8 A$ S1 r2 x( }5 E& R3 J2 ~' x3 E1 d这个配置外部命令的功能就是最终实现的关键。软件中可以选择截图完成后的动作,该动作可以通过命令行启动一个可执行文件(*.exe *.bat *.com)并把截出来的图片完整路径和文件名作为参数传递进去。
    9 [  M. V. d7 s" S/ b/ ]8 ~7 X, r实现步骤:
    ) s( Y8 N- v( S( ]+ o: r* W" m1.先安装tesseract,建议直接在https://github.com/UB-Mannheim/tesseract/wiki下载最新release的版本,否则可能出现一些问题。7 `! q( V( n" w2 v, A1 ~
    2.安装完成后设置环境变量,把tesseract的安装目录加入PATH(可以在cmd下测试是否成功),新建TESSDATA_PREFIX环境变量,值为tessdata所在路径。3.安装greenshot,(安装时可以选择安装它自带的一个ocr插件,不过我没有安装不知道这个插件的效果)1 V( j2 c0 V0 R
    安装完成后运行,在任务栏右下角系统托盘处找到它的图标,点击一次后,在弹出的菜单中选中配置外部命令。4.设置截图后动作。* F7 v9 Y. ?7 P3 R9 t
    0 _* U' {, ], A- h1 }
    新建一个随意起一个名字,命令填你的可执行文件的路径(我的脚本内容如下,未必是最优方案:)' u2 ~, f9 @2 y( O& i) z
    1. if "%2"=="h" goto begin0 T% D& S$ n% A4 z' k0 V
    2. start mshta vbscript:createobject("wscript.shell").run("%~0 %~1 h",0)(window.close)&&exit
      / B# s8 K2 U% w1 @7 @5 B
    3. :begin1 e1 k9 Y$ a3 v7 m( P6 E0 n- T
    4. tesseract %1 stdout -l eng+rus+fra | clip
      . u1 P) }0 K/ Y/ k! _( w
    5. mshta vbscript:CreateObject("Wscript.Shell").SendKeys("^t")(window.close)
    复制代码
    , R5 B; R0 Y1 f5 b# Z
    这个原理就是把截图传给tesseract,再将输出的结果复制到剪贴板中,最后发送goldendict翻译剪切板的全局快捷键(我已经设置为CTRL+T,原因是我没搞懂CTRL+C+C快捷键怎么发送)(感谢gttwork补充,将最后一行的SendKeys("^t")换为SendKeys("^c^c")可发送CTRL+C+C,即默认的goldendict翻译剪切板的全局快捷键)(感谢gttwork补充,^c^c快捷键在最新版的GoldenDict下无效,需改为^{c 2}),所以这个方法也同时适用于满足“有翻译剪切板的全局快捷键”的其他词典软件。要注意的另外一点是这里我选择的语言是eng+rus+fra(英俄法),这里需要根据自己的情况做一个改变。
    5 R! m# G2 `+ u  }- k& R我这个方案其实有很多不完善的地方,其中之一就是进行识别时会快速闪过cmd的窗口,这里我已经做了应对,减少了窗口停留的时间,但是还是没好的办法完全去除。这里也希望有好想法的朋友提提意见。
    ! t  }0 r8 [& R& f0 ^* c(新人发帖,有不周到的地方还请多多包涵呀)最终实现效果
    : t8 d! n* k/ o$ K# ?8 F
    / o0 W0 S0 p4 e- n0 o4 b  (动图居然因为太大发不上来)3 J5 W; U- d4 s" @9 ~/ W
    emmm其实识别还是挺慢的哈。。. ^1 ~2 X6 h: y' q& a

    ; A( d5 f! c' p. r% f! Y5 _1 J5 i& N& E7 V6 o

    9 |6 _2 `# C1 y# l

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?免费注册

    x

    评分

    5

    查看全部评分

    本帖被以下淘专辑推荐:

  • TA的每日心情
    开心
    2020-3-17 10:52
  • 签到天数: 207 天

    [LV.7]常住居民III

    发表于 2019-3-6 05:46:04 | 显示全部楼层
    本帖最后由 elisir 于 2019-3-6 06:14 编辑 + O. r9 P; x+ I7 A1 Z# p. ~

    3 J  X  a0 }* X+ J% l9 N& q很好的思路实现,小白验证过了,确实可行。& @; ]8 e- \- Q+ L0 G6 V- e0 \

    . Q0 ~' c, m6 C" J补充几点像我这样的小白可能犯的错:
    8 C# Z) V( P: p- f& H$ k1、先建oct.bat文件再到greenshot中配置命令,否则那里是红色的。
    0 ~' n/ r# w# W+ _  G9 s' B2、代码复制后得核对一遍,因为论坛设置了防盗功能加了乱码,注意前后是否与看到的代码一样。
    * n, l7 q# |% N: z# Q) Q3、设置环境变量:自己第一次粗心,把数据变量设置成了工作路径。可以在cmd下用命令检验是否正确设置:tesseract 1.png stdout -l eng
    + V, s# {; m& {6 ]注意测试用的1.png需要先用greenshot截图且保存在当前目录/ d( Y0 E1 p% }
    4、ocr使用的识别在安装过程中就可以选择,如果是像我一样的小白识别汉字和英语,安装完后在tessdata下查看可使用支持语言的代码,与文件名相同,如果是识别汉字和英语,则前面的代码需要将eng+rus+fra修改为eng+chi_sim+chi_tra' a- c+ Q" m- A* P& q) J
    5、注意得将greenshot设置捕捉区域的快捷键为自己顺手的,还要将goldendict中的翻译剪贴板中单词的热键设置为Ctrl+T(在那里点中后按键然后确定)。! t4 j+ O) ]( r1 U% R
    6、greenshot的设置中将destination去掉默认的手动选择改为自己的OCR命令,这样就不用每次选择了。2 J  s" P7 r2 z) i

    + Y5 N0 f) p& f+ g0 j
    " j# k* y6 j9 ^1 j0 J; \3 y% i

    评分

    2

    查看全部评分

  • TA的每日心情
    擦汗
    2020-7-23 13:21
  • 签到天数: 353 天

    [LV.8]以坛为家I

    发表于 2019-3-17 10:38:00 | 显示全部楼层
    ^c^c快捷键在最新版的GoldenDict下无效,需改为^{c 2}
  • TA的每日心情
    擦汗
    2020-7-23 13:21
  • 签到天数: 353 天

    [LV.8]以坛为家I

    发表于 2019-3-16 19:50:54 | 显示全部楼层
    本帖最后由 gttwork 于 2019-3-16 20:10 编辑
    3 Y+ ]* v1 t  J/ Z: l$ s, O$ _
    ура 发表于 2019-3-16 10:36
    / z7 M0 z4 {6 u要把前面的目录根据自己的实际安装情况改一下。我前面的有些流程写的不清楚,出现问题可以随时问我呀( ...
    2 i: b( `! H1 A! x* ]! A
    感谢告知,终于成功了!原来不是环境变量的问题,是文本编辑器默认编码UTF 8导致的,另外我找到了发送^cc的方法了,^c^c。最近论坛不稳定,经常无法访问。4 y1 f0 g+ q% K+ A2 M3 S0 E1 Z

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?免费注册

    x

    评分

    1

    查看全部评分

  • TA的每日心情
    开心
    2020-3-17 10:52
  • 签到天数: 207 天

    [LV.7]常住居民III

    发表于 2019-3-6 04:57:28 | 显示全部楼层
    楼主辛苦,谢谢分享

    该用户从未签到

    发表于 2019-3-6 05:27:29 | 显示全部楼层
    还有这种操作。厉害。。。
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

    发表于 2019-3-6 08:05:57 | 显示全部楼层
    赞赞赞! 终于有了进一步研究使用tesseract的动力
  • TA的每日心情
    擦汗
    2019-11-22 21:32
  • 签到天数: 69 天

    [LV.6]常住居民II

     楼主| 发表于 2019-3-6 08:06:17 | 显示全部楼层
    elisir 发表于 2019-3-6 05:46
    : P# y# m" C8 K& y+ @8 Y很好的思路实现,小白验证过了,确实可行。
    ' x, c" H4 A8 U0 \6 p* f3 ~. q% J! V. q) Y9 J0 t) W
    补充几点像我这样的小白可能犯的错:
    8 [( Z/ X1 l% y; c
    对对对,你说的对,确实我忘记提了这几个部分,太谢谢你了

    点评

    不客气,我得谢谢你才是,提供了这么好的办法。  发表于 2019-3-6 10:39
  • TA的每日心情
    开心
    前天 00:03
  • 签到天数: 160 天

    [LV.7]常住居民III

    发表于 2019-3-11 17:09:22 | 显示全部楼层
    天啊!楼主您简直是神人!
    + D" A1 R  Z* W7 _7 o' T8 A! r多谢您的用心!) ~0 B+ O2 X7 g1 j5 b3 d# z2 Y
  • TA的每日心情
    擦汗
    2020-7-23 13:21
  • 签到天数: 353 天

    [LV.8]以坛为家I

    发表于 2019-3-16 08:54:01 | 显示全部楼层
    我在环境变量这个环节遇到问题,能否上传一个设置环境变量的截图?
  • TA的每日心情
    擦汗
    2019-11-22 21:32
  • 签到天数: 69 天

    [LV.6]常住居民II

     楼主| 发表于 2019-3-16 10:36:32 | 显示全部楼层
    gttwork 发表于 2019-3-16 08:541 Y) T6 }  X1 \- V0 \) O2 {
    我在环境变量这个环节遇到问题,能否上传一个设置环境变量的截图?
    ) z5 c/ b* ]' b

    / y0 h& L! j1 g2 q$ n5 [: o要把前面的目录根据自己的实际安装情况改一下。我前面的有些流程写的不清楚,出现问题可以随时问我呀(也可能我就不能完全搞定,那就emmm)/ i. J4 x  j. j$ x: A( S
    话说我早些就看到你的回复了,但是我出来截图这回功夫再回来就打不开论坛的页面了,到现在才能恢复访问。是我的问题还是论坛的问题?
  • TA的每日心情
    无聊
    2019-4-8 07:51
  • 签到天数: 135 天

    [LV.7]常住居民III

    发表于 2019-3-17 08:38:50 | 显示全部楼层
    赞赞赞,利害 利害,
  • TA的每日心情
    慵懒
    2020-4-10 13:19
  • 签到天数: 269 天

    [LV.8]以坛为家I

    发表于 2019-8-5 21:35:26 | 显示全部楼层
    感谢分享方法
  • TA的每日心情
    慵懒
    2020-4-10 13:19
  • 签到天数: 269 天

    [LV.8]以坛为家I

    发表于 2019-8-6 00:56:41 | 显示全部楼层
    已经成功运行了,感谢分享,只是会出现弹窗还是不爽快,我看能不能结合autohotkey使用,优化一下流程
  • TA的每日心情
    开心
    2020-2-14 20:02
  • 签到天数: 40 天

    [LV.5]常住居民I

    发表于 2019-8-24 21:34:37 | 显示全部楼层
    推荐quicker软件
  • TA的每日心情
    开心
    2020-6-18 16:26
  • 签到天数: 94 天

    [LV.6]常住居民II

    发表于 2019-10-14 15:16:09 | 显示全部楼层
    有没有不弹窗口的方法呢。。。。
  • TA的每日心情
    开心
    2019-12-26 23:03
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    发表于 2020-4-14 23:55:33 | 显示全部楼层
    试了几次没有任何效果,不知问题出在哪
  • TA的每日心情
    开心
    3 天前
  • 签到天数: 372 天

    [LV.9]以坛为家II

    发表于 2020-6-20 18:36:45 | 显示全部楼层
    本帖最后由 ccz 于 2020-6-20 23:07 编辑
    % R0 p1 @8 y0 y+ R1 V
    ! n2 F! g' ]5 M) F, u/ O- _作为小白,费了九牛二虎之力加点运气终于搞定了。哎!给看不太明白楼主的小白提示下。5 X( s- U  m! v+ g5 B. W
    1.楼主的第2步“2.安装完成后设置环境变量,把tesseract的安装目录加入PATH(可以在cmd下测试是否成功),新建TESSDATA_PREFIX环境变量,值为tessdata所在路径。”  ! E; H; f0 P! K' d
    不明白的小白,请百度“tesseract安装与应用”等,把tesseract软件调试搞定了再下一步。
    1 K+ U; J6 f" X! `9 M2.楼主最后一张的截图,设置“抓图后的动作”除了勾选OCR,还应该勾选“复制到剪贴板”,我作为小白就栽在这里。
    , ?4 x; S: M- g3 a& j% G
  • TA的每日心情
    开心
    3 天前
  • 签到天数: 372 天

    [LV.9]以坛为家II

    发表于 2020-6-20 18:38:40 | 显示全部楼层
    本帖最后由 ccz 于 2020-6-20 18:40 编辑
      D0 @( w. q/ U2 A
    5 M7 |; _& H6 `: Q7 E! Otesseract软件最好截一张图,按教程做个OCR测试,看看是否安装配置成功再下一步。+ B* k* q+ u4 Q; g8 H
    百度搜索教程安装及应用测试吧。
    % H) `1 G! s- S8 l6 w  j8 K
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

    顶部qrcode底部
    关注公众号送论坛充值码
    关注微信公众平台
    关注微信公众号 pdawiki,获取邀请码,看文抢积分,抽奖得浮云! Follow our Wechat official account "pdawiki", get invitation codes, and play the lottery to earn points (积分)!

    小黑屋|手机版|Archiver|PDAWIKI |网站地图

    GMT+8, 2020-8-13 01:28 , Processed in 0.045872 second(s), 9 queries , MemCache On.

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表