DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: melqui
今日帖子: 15
在线用户: 23
导航: 论坛 -> 发布代码 斑竹:liumazi,ruralboy  
作者:
男 bluestorm8 (bluestorm) ▲▲△△△ -
普通会员
2022/6/10 10:24:06
标题:
Delphi Tesseract 5.1 使用演示 浏览:1792
加入我的收藏
楼主:     演示代码来自https://github.com/r1me/TTesseractOCR4和https://blog.51cto.com/u_15503296/5212483。前者提供了TTesseractOCR4类和4个演示程序,后者基于TTesseractOCR类做了一个显示程序。TTesseractOCR4类是基于Tesseract4的,为了适应Tessract 5.1版本,本人对TTesseractOCR4做了适应性修改,并增加了一点小功能,以及修正了一些错误。所有演示项目都使用Delphi 10.3重新建了项目文件。

    Tesseract OCR V5.1程序的下载和安装可参考:https://www.jianshu.com/p/f7cb0b3f337a

    本人修正了TTesseractOCR4的Record和Enum的字节对齐问题。程序在Delphi环境中原使用默认的{$A8}和{$Z1},现改为{$A4}和{$Z4},这是c语言普遍采用的字节对齐方式。估计TTesseractOCR4的作者主要使用的是Lazarus/Free Pascal开发环境,其默认的字节对齐方式就是{$A4}和{$Z4,否则他用Delphi的话,马上就会发现此错误。

   本人在TesseractOCR.Consts.pas增加了一个自动把DLL目录增加到搜索目录的功能(AddDLLPathToSearchPath),并且把DLL目录默认为:Win64时为'C:\Program Files\Tesseract-OCR'、Win32时为'C:\Program Files\Tesseract-OCR\DLL32',这样就不需要把DLL文件和exe文件放在同一目录,或设置系统环境变量里面的path变量了。需根据自己的需要作修改。
const DLLPath = {$IFDEF WIN64}
          'C:\Program Files\Tesseract-OCR'
          {$ELSE}
          'C:\Program Files\Tesseract-OCR\DLL32'
          {$ENDIF};




有问题欢迎讨论。
此帖子包含附件:bluestorm8_2022610102229.rar 大小:15.00M
----------------------------------------------
-
作者:
男 bluestorm8 (bluestorm) ▲▲△△△ -
普通会员
2022/6/10 10:29:44
1楼: 附件超过了19.9M的限制,所以分两次送。

原名分别是:
Tessract_5.1_Delphi_Demos.part1.rar

Tessract_5.1_Delphi_Demos.part2.rar
此帖子包含附件:bluestorm8_2022610102833.rar 大小:14.80M
----------------------------------------------
-
作者:
男 comeheres (tomorrow) ▲▲▲▲▲ -
普通会员
2022/6/10 10:55:44
2楼: 感谢分享
----------------------------------------------
业余编程爱好者
作者:
男 1111111112 (1111111112) ▲△△△△ -
普通会员
2022/6/10 11:38:01
3楼: https://docwiki.embarcadero.com/RADStudio/Alexandria/en/Align_fields_(Delphi)
在 {$A 4} 状态下,记录类型中声明的字段(不使用压缩修饰符)和类结构中的字段在双字边界上对齐。
在 {$A 8} 或 {$A+} 状态下,记录类型中声明的字段(不使用压缩修饰符)和类结构中的字段将在四字边界上对齐。


https://docwiki.embarcadero.com/RADStudio/Alexandria/en/Internal_Data_Formats_(Delphi)#Record_Types
枚举类型
如果枚举的值不超过 256 个,并且该类型是在 {$Z 1} 状态(默认值)中声明的,则该枚举类型将存储为无符号字节。如果枚举类型具有 256 个以上的值,或者该类型是在 {$Z 2} 状态下声明的,则该类型将存储为无符号单词。如果在 {$Z 4} 状态下声明枚举类型,则该类型将存储为无符号双字。

https://docwiki.embarcadero.com/RADStudio/Alexandria/en/Minimum_enumeration_size_(Delphi)
$Z 指令控制 Delphi 枚举类型的最小存储大小。

如果枚举的值不超过 256 个,并且该类型是在 {$Z 1} 状态(默认值)中声明的,则枚举类型存储为无符号字节。如果枚举类型具有 256 个以上的值,或者该类型是在 {$Z 2} 状态下声明的,则该类型将存储为无符号单词。最后,如果在 {$Z 4} 状态下声明枚举类型,则该类型将存储为无符号双字。

{$Z 2} 和 {$Z 4} 状态对于与 C 和 C++ 库进行交互非常有用,这些库通常将枚举类型表示为单词或双词。

注意:为了向后兼容Delphi和Object Pascal的早期版本,还支持指令{$Z-}和{$Z+}。它们分别对应于 {$Z 1} 和 {$Z 4}。

https://docwiki.embarcadero.com/RADStudio/Alexandria/en/Compiling
‎最小枚举大小‎

‎指定要为枚举分配的最小内存量。选择是字节‎‎{$Z 1}‎‎,单词{$Z 2},双字{$Z 4}。‎Down Arrow‎弹出按钮在‎‎项目选项页面上的“公共项”‎‎中进行了介绍。‎

‎默认值 = 字节‎



记录字段对齐方式

控制 Delphi 记录类型和类结构中字段的对齐方式。单击向下箭头以从可能的值中进行选择:

如果选择选项“关闭”(等效于 {$A 1})或禁用该选项(等效于 {$A-}),则字段永远不会对齐。所有记录和类结构都已打包。
如果选择“Byte”(等效于 {$A 2}),则记录类型中声明的字段(不使用压缩修饰符)和类结构中的字段将在字节边界上对齐。
如果选择“Word”(等效于 {$A 2}),则记录类型中声明的字段(不使用压缩修饰符)和类结构中的字段将在单词边界上对齐。
如果选择双字(等效于 {$A 4}),则记录类型中声明的字段(不使用压缩修饰符)和类结构中的字段将在双字边界上对齐。
如果选择 Quad Word(等效于 {$A 8} 或 {$A+}),则记录类型中声明的字段(不使用压缩修饰符)和类结构中的字段将在四元字边界上对齐。
无论 $A 指令的状态如何,变量和类型化常量始终对齐以实现最佳访问。如果将选项设置为 8(四字),则执行速度更快。
这是默认设置。
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行89.84375毫秒 RSS