档案

所有帖子于2016年1月,2016年1月

OCR. OC-GAIN

我的 phys341. 学生有兴趣了解如何 OCR.常规 处理他们的出席表,所以我申请了它,如下所示。

IMG_3707_ORIG扫描左图显示原始版本的原始版本。常规是没有扭曲页面的合理工作(尽管它不是’TO糟糕,开始)。

和这里’s常规返回的文字是什么:

zolto J:)o<-&\
Qfick ${‘bt\L . .
1ZWrW(\ DQVCS
Onras Tkomag
Jam; I-Em!
De»-UV1, ?I‘L\M‘ovV\QJ3€,v'
Ia./I B,a,C/IHMC .
V.o\3 \3<<I°\Ser&eck
jengifcr Brigga
}VK°'('3E\V1c-rad LULAA
Mby Ouersfreci’ '
Tm (jivws ‘
gj)/VIOI/I  ‘
$030-4 “10u\J ‘
{NC /I/1a.V,,,,',q '
O”AKe So/ares
Skwm \<reyc}~e '

…not great.

I’不完全肯定出了什么问题。也许我应该让他们写下他们的学生编号。

更新:2016年2月5日

这里’另一个与不同的出勤表一起去。不太好。

img_3784_scanned.

I‘/\0,;/{¢r\(~  VETEK BROWN
E ? RICH/W} WLMC/(
“$2114!/~, lZoAr.‘%o Pratt.‘
D“""‘ 8'3"’ ' g/"It; /Vlar,//'/1
 Lolpef‘
kpdkl/n\‘f 2011/(IE
ANN <5©<J\M) Vfxit %'L0V\€z &}"-:5 _)_La/\/MAS _ Karm I>q'v‘-5
\Tou—o0l Hand _
'Dz\m/L ?\c\n'ksvvuu‘ev*
Ian I3/¢«'-Ckfia/If ¢
94% \5<<k*?l6<:x\.cLl¢ Jennifer BH995 N\o+‘\'V\c\.6 Luv\0\ . \/\0\\)y 0\,ers+reeJr ’\".m C"\\/Ens _ 51 m cm E 1: Y Jason May A ZPM > M
PIJW1 figu//
jam 5°0W'/J
34681 \4'€y¢}~¢>/

I’m prepping for 我的古典技工课程,计划开始下周。我们讨论的第一件事之一是统一的圆周运动以及它看起来如何沿X和Y轴投射,因此我认为有一个动画表明这一点是有用的。我在网上找到了一些动画,但没有真正展示了我正在寻找的x和y预测。

所以我决定使用我的进入首选的语言创建自己 Python。幸运的是,Python Guru 杰克维安普拉斯 已经创造了 一个非常好的动画模块 可用的 iPython笔记本.

基于他的例子 这里,我汇总了以下代码以生成所需的动画:

我花了一个kludging一个python脚本,将杂货收据转换为电子表格作为我的新年之一的一部分’S决议。似乎有 一些选择 在那里进行扫描和录制收据,但它’尚不清楚他们应用了OCR技术来自动将它们转换为电子表格。

这里’我使用的收据:

IMG_3497.这个网站 提供了一些Python源代码,以检测图像中的边缘,然后检测收据的轮廓并转换任何缩短或其他查看失真—

(左)边缘检测,(中心)大纲检测,(右)扫描版本。

(左)边缘检测,(中心)大纲检测,(右)扫描版本。

为了检测边缘,代码将彩色图像转换为灰度,并应用Canny边缘检测方案,该方案涉及应用高斯模糊以抑制噪声,计算图像导数和寻找大值。结果显示在左上方的图像中,以及关于算法的更多细节 这里.

接下来,代码通过使用来查找收据的轮廓 OpenCV.‘s findcontours.,按区域对轮廓进行排序,并找到具有最大区域的轮廓,但具有四个顶点。

然后代码应用四点变换来扭曲收据以使其成为矩形形状,最后阈值灰度为增强对比度。上图中最右侧的面板显示了最终结果。

将图像转换为文本表,我使用过 pytesseract.,提供 OCR. 能力。我安装了包 tesseract. 使用 家用: “Brew安装Tesseract.”.

然后我抓住了代码 这个网站 要将最终结果转换为文本表:

st = pytesseract.image_to_string(Image.open(save_filename), config="-psm 6")

“psm=6” option 需要正确返回文本。

不幸的是,OCR分析是缺陷的’完美。例如,
img_3497_scanned_line.被转换为
'* Cresgent R01 1 1800000401 4.82如果

所有线路的价格都罚款,但描述往往扭曲。无论如何,我决定更多地关心价格。幸运的是,Winco收据有“TF” or “TX”在最右边的一面,所以我执行了一个正则表达式搜索,以查找该字符串的开头并抓住左侧的字符。

最后,我将字符串转换为逗号分隔值列表,以加载Excel或Google纸张,留下损坏的描述和价格之间的空间,因此我可以输入我自己的描述,给予
CresgentR0111,4.82

在违法行为上,它对别人有用’ve posted the code 这里。使用我的脚本还需要源代码 pyimagesearch.,这需要提交电子邮件地址。