实践一下使用aspose.ocr来识别手写字

aspose.ocr
placeholder image
admin 发布于:2024-12-10 16:30:02
阅读:loading

OCR识别我一直认为是门好东西,最近几天aspose.ocr组件升级了24.11.1的版本,经过尝试发现这个版本较之于前面的版本对中文的支持不可谓不好,实属非常棒,所以在使用它编写了对车牌号的识别后,又趁热打铁来实践一下aspose.ocr的手写字识别,识别的结果仍然是非常好。

本篇文章对于aspose.ocr图片识别发票的示例实践,笃定你对aspose.ocr已经有了一定的了解,或者也看到过本站此系列的其他相关文章,所以直接上示例素材、示例代码、示例结果,详细如下。

1.手写字识别

font111.jpg

(第1张)

font222.jpg

(第2张)

image.png

(第3张)

image.png

(第4张)

image.png

(第5张)

(1)总共找了5张手写字素材,风格各异,可以看到若是字体写的准确,识别出来的结果还是很理想的;

(2)对于文字书写嚣张的签名写法,识别的准确率不高,关键是人眼来识别也够呛,但是那句话“你是我见过最美的风景”倒是完美的识别出来了;

(3)官方提供的手写字的识别示例,也主要是对书写略微规范的英文字体来的;

(4)上述的识别结果代码示例使用了中文图片识别和手写字识别,需要知道的是识别手写字需要导入“aspose-ocr-handwriting-v1.ocr”;

2.参考代码

public void test() throws Exception {
    System.out.println("License.isValid() = " + License.isValid());
    final List<String> list = Resources.ListLocal();
    System.out.println("list = " + list);

    AsposeOCR ocr = new AsposeOCR();

    OcrInput input = new OcrInput(InputType.SingleImage);
    input.add(URLDecoder.decode(getClass().getResource("/font/font111.jpg").getPath() , StandardCharsets.UTF_8.name()));
    input.add(URLDecoder.decode(getClass().getResource("/font/font222.jpg").getPath() , StandardCharsets.UTF_8.name()));
    input.add(URLDecoder.decode(getClass().getResource("/font/font333.jpg").getPath() , StandardCharsets.UTF_8.name()));
    input.add(URLDecoder.decode(getClass().getResource("/font/font444.jpg").getPath() , StandardCharsets.UTF_8.name()));
    input.add(URLDecoder.decode(getClass().getResource("/font/font555.jpg").getPath() , StandardCharsets.UTF_8.name()));
    //识别中文
    RecognitionSettings settings = new RecognitionSettings();
    settings.setLanguage(Language.Chinese);
    final ArrayList<RecognitionResult> array = ocr.Recognize(input, settings);
    for (int i = 0; i < array.size(); i++) {
        System.out.println(array.get(i).recognitionText);
    }
    System.out.println("AsposeFontTest.test");
    //识别手写字
    List<RecognitionResult> results = ocr.RecognizeHandwrittenText(input);
    System.out.println("results.size() = " + results.size());
    for (int i = 0; i < results.size(); i++) {
        System.out.println("第" + (i + 1) + "张图片,识别结果:" + results.get(i).recognitionText);
    }

}

3.控制台输出

list = [aspose-ocr-advanced-recognition-v1, aspose-ocr-chinese-v1, aspose-ocr-chinese-v2, aspose-ocr-cyrillic-v1, aspose-ocr-handwriting-v1]
击石乃有火,不击元无烟。人学始知
道,不学非自然。万事须己运,他得非我
贤。青春须早为,岂能长少年。[唐]孟
郊劝学
只有击打石头,才会有火花,如果不
击打石头,一点烟也不会冒出。人也是这
样,只有通过学习,才能掌握知识;如果
不学习,知识不会从天上掉下来。任何事
情必须自己去实践,别人得到的知识不能,
代替自己的才能。青春年少时期就应趁早
努力,一个人难道永远是“少年”吗?

等不到天黑
我国大不会人他美
国忆烧成灰
是答不制结无

十世上天难
只要普教异

平峰

ouAreTheNost
IHaveErer
ee,

你是我见过最美的风景

(中文识别)

第1张图片,识别结果: LB1TALT LLTUILTUITER IIKIKIY
 IEILL LT-Y1TIL MII -TT-TTY
 SOO
 TE-1FE IF ITOY EI1LIRF PLPA'S BOE
 FIFY STLIEF
 LTTLFL ALTAKIEY I IIT
 TSTLTIL I ILTYIFT A ILIE
 LSN---12A1JI- Y2R
 -1TFY
 --1B1A-1IY
 -121K-TEOR LL--TIE
 55T I HAL1I1 11L- VI

第2张图片,识别结果: L LIOL I
 NS IE
 ID
 XITH
 IAS TES
 

第3张图片,识别结果: LEAL
 TO IE A
 SIFH' S
 IN IS

第4张图片,识别结果:YODE'S

第5张图片,识别结果: YOU ARE THE MOST DEAUTIFUL SIGHT
 I HAVE FWER BEAN
 S-TECATISNU-RTANSAILIX

(手写字识别)

4.素材下载

包含5个手写字素材的图片《font.zip》附件,如果你也掌握了其它相关ocr识别的实现,不妨试下这些图片的识别结果。



 点赞


 发表评论

当前回复:作者

 评论列表


留言区