OCR的截图

6视图(30天)
保罗Mazzoleni
保罗Mazzoleni 2022年2月16日
编辑: 沃尔特·罗伯森 2022年2月22日
你好,到社区,
我有一个数据库,希望数据库中提取的列表。数据库访问只能通过第三方软件,这个软件不让我做我想做的事所以我想我可能需要几个截图并使用“ocr”得到所有我所需要的东西
鉴于screeshot,图像质量一样好,虽然分辨率有限,尽管结果包含几个错误,见下文原始截图和ocr的输出
我可以纠正一些错误的后处理的文本(查找/替换事情如°7 o - > %),但其他人则没有那么明显
我很欣赏这不是ocr的典型的应用程序功能,但有办法增加的准确性?例如,我可以告诉ocr,所有的人物都来自给定字体之类的?有更好的功能来完成这个工作吗?
这里就是我预处理图像,没有太多可以想象:
screenshot_edit = imresize(截图,3);
screenshot_edit = uint8 (255 * imbinarize (rgb2gray (screenshot_edit)));
然后简单
ocrResults = ocr (screenshot_edit);
截图:
OCR输出:
非常感谢你
保罗

接受的答案

迈克裘槎
迈克裘槎 2022年2月16日
编辑:迈克裘槎 2022年2月16日
嗨,保罗。
仅仅因为我是MathWorks员工并不意味着任何东西,因为直到现在我从来没有使用MATLAB的 光学字符识别 函数。但我很好奇能做什么
形象= importdata (“image.png”);
形象= imresize (image.cdata 4);
形象= uint8 (255 * imbinarize (rgb2gray(图片)));
文本= ocr(形象,CharacterSet =“ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890% (): [], @”);
text.Text
我的第一次尝试是非常类似于你的。主要的区别在于,我限制charachter集。我还发现,调整原始大小做了一些更好的4倍。似乎把所有%正确的,但仍然得到了一些数字有时是错误的。
20200929215922(1.1):卡尔:卡尔信号(段:135454)(当地10:279233、远程ID: -)
20200929220012(2.1):稳定:闲置(段:135444)(当地ID: 279273、远程ID: -)
20201002134705 (1。1):卡尔:0、5 Vpp500赫兹(段:135451)(本地10:279230年,远程ID: -)
20201002164537(2.1):开始(段:135443)(当地10:279411、远程ID: -)
20201002164642.1:开始前(段:135443)(本地10:233710年,远程ID: -)
20201002164737(3.1):稳定:低闲置(段:135443)(本地ID: 279273年,远程ID: -)
20201002170209 (4.1):ACCEL: T0 92.6% NH 3: DECEL T0 L]我[段:135443](当地ID: 279267、远程ID: -)
20201002171153(5.1):稳定:低闲置(段:135443)(本地ID: 279263年,远程ID: -)
20201002172400.1:5分钟@low闲置(段:135443)(当地10:231226、远程ID: -)
20201002172353 (6.1):ACCEL: T0 92.6% NH(135443年段)(本地ID: 279412年,远程ID: -)
我想尝试自定义字体教练 火车光学字符识别为自定义字体,MATLAB和Simulink (mathworks.com)金宝app 。我从来没有使用过这个,所以最初尝试使用您的原始图像。从未设法让它解决之类的东西。和:嗯。所以我创建了一个新形象2 x比原来的大
形象= importdata (“image.png”);
形象= imresize (image.cdata 2);
形象= uint8 (255 * imbinarize (rgb2gray(图片)));
imwrite(图片,“modimage.png”)
我使用了OCR modimage教练。png eventualy创建myLang。traineddata(附在这里作为. zip文件)。
用这个:
形象= importdata (“image.png”);
形象= imresize (image.cdata 2);
形象= uint8 (255 * imbinarize (rgb2gray(图片)));
ocrResults = ocr(图像、语言=“C: \用户桌面\ myLang \ tessdata \ \迈克裘槎\ myLang.traineddata”);
%图;imshow (Iocr);
ocrResults.Text
使输出
20200929215922(1.1):卡尔:卡尔信号(段:135454)(当地ID: 279283、远程ID: -)
2 o2oo92922oo12(2.1):稳定:闲置(段:135444)(当地ID: 279273、远程ID: -)
20201002134705(1.1):卡尔:0、5 Vpp500赫兹(段:135451)(本地ID: 279280年,远程ID: -)
2 o2o1oo2164537(2.1):开始(段:135443)(当地ID: 279411、远程ID: -)
次20201002164642.1:[段:135443](当地ID: 283710、远程ID: -)
2 o2o1oo2164737(3.1):稳定:低闲置(段:135443)(本地ID: 279278年,远程ID: -)
20201002170209 (4.1):ACCEL: 92.6%。:NH & DECEL L /我[段:135443](当地ID: 279267、远程ID: -)
2 o2o1oo2171153(5.1):稳定:低闲置(段:135443)(本地ID: 279268年,远程ID: -)
20201002172400.1:5分钟@low闲置(段:135443)(当地ID: 281226、远程ID: -)
20201002172858 (6.1):ACCEL: 92.6%。:NH(段:135443)(当地ID: 279412、远程ID: -)
我唯一可以通过眼睛看到的错误是,它有时混淆0为o。
好奇这对其他一截图。如果你给它一个截图,有任何charachters不包括在原始的,它不会工作得很好,因为它将从未见过他们。
1评论
保罗Mazzoleni
保罗Mazzoleni 2022年2月22日
非常感谢迈克,现在,它工作得非常好,一些小错误是容易纠正

登录置评。

类别

找到更多的在图像处理和计算机视觉帮助中心文件交换

下载188bet金宝搏


释放

R2021b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!