现有一个需求,需要做一个试卷的识别, 学生在涂抹了学生考号之后我需要识别出考生涂抹的是哪几个数字。 试卷如图,不知道如何实现。。有找过几个 gem,但是其中出来的东西跟想象中的还是有很大的差异。 有没有做个类似的。给个思路跟技术点呀。。。。
#1 楼 @ywjno #2 楼 @jimrokliu 安装 tesseract-ocr,启动的时候遇到这样一个异常现象。有什么解决办法呀。。
/Users/.rvm/gems/ruby-2.3.0/gems/ffi-1.9.14/lib/ffi/library.rb:147:in `block in ffi_lib': Could not open library '/var/folders/bd/lgr6tqfd16b_z7k25c866vnr0000gn/T/.ffi-inline-501/a2a96759ac9899a5d051acec5a8ae12abdd65b02.dylib': dlopen(/var/folders/bd/lgr6tqfd16b_z7k25c866vnr0000gn/T/.ffi-inline-501/a2a96759ac9899a5d051acec5a8ae12abdd65b02.dylib, 5): Library not loaded: /usr/local/opt/tesseract/lib/libtesseract.3.dylib (LoadError)
Referenced from: /var/folders/bd/lgr6tqfd16b_z7k25c866vnr0000gn/T/.ffi-inline-501/a2a96759ac9899a5d051acec5a8ae12abdd65b02.dylib
Reason: image not found
你要做 OCR 啊,你要安装很多图像依赖库,ffi 的这个库还要指定一下 --platform=ruby。最好是在 Linux 上跑,或者 mac 上起一个 docker 来搞。
思路可以参考唐巧的博客,http://blog.devtang.com/2013/10/19/the-tech-detail-of-ape-client-2/,具体库或者代码就只有自己搞了
说下我的思路。第一,定位四个角,你看四个角上有定位的黑点。第二,每个槽位的相对位置提前量好。然后根据四个点的位置裁出试卷,根据相对位置计算每一题的位置,计算里面像素点,黑的程度就行了。