首页 > 酒水资讯 > 酒水价格

在线识别字体类型,在线识别字体的方法

酒易淘 酒水价格 2022-09-05 10:25:17

品牌名称:酱香白酒加盟 所属行业:酒水 > 白酒

基本投资:10~50万元 投资热度:

加盟意向:1634 门店数量:534家

索要资料 查看详情

  

  最近介绍中谈到了图像和文字识别的需要,在工作和生活中经常用到,比如票据、漫画、扫描件、照片的文本提取.   

  

  基于PyQt labelme PaddleOCR编写了一个桌面OCR工具,用于快速实现图片的文本区域自动检测+文本自动识别 。   

  

  识别效果如下图所示:   

  

     

  

  OCR工具识别效果   

  

  通过OCR算法自动检测所有的框选区域,右边列表有每个框对应的文字内容;点击右侧“识别结果”中的文本记录,然后点击“复制到剪贴板”复制文本内容。   

  

  功能列表文本区域检测文本区域可视文本内容列表图像、文件夹加载图像滚轮缩放查看绘图区域、编辑区域复制选中的文本识别结果OCR部分图像文本检测文本识别算法主要由paddleocr实现。   

  

  或者创建并选择一个虚拟环境,并安装所需的第三方库。   

  

  一个create-n ocr conda activate ocr安装框架如果你没有NVIDIA GPU,或者GPU不支持CUDA,可以安装CPU版本:   

  

  # CPU版本pip安装paddle paddle==2 . 1 . 0-I https://mirror.baidu.com/pypi/simple如果你的GPU已经安装了CUDA9或CUDA10,cuDNN 7.6,可以选择以下GPU版本:   

  

  # GPU版本Python3-m pip安装paddle paddle-GPU==2 . 1 . 0-I https://mirror.baidu.com/pypi/simple安装PaddleOCR安装paddleocr:   

  

  建议使用pip ' paddle OCR=2 . 0 . 1 ' # 2 . 0 . 1版布局分析,并且需要安装布局解析器:   

  

  3 pip INSTALL-u 3359 paddle ocr . bj . BCE Bos . com/whl/layout parser-0 . 0 . 0-py3-none-any . whl测试安装是否成功。安装完成后,测试picture-image _ dir。/imgs/11.jpg,并使用中英文检测方向分类器识别整个过程:   

  

  划桨ocr-image _ dir。/imgs/11 . jpg-use _ angle _ cls true-use _ GPU false输出列表:   

  

     

  

  从paddle ocr中调用导入paddle ocr在python中,draw _ ocr # paddle ocr当前支持的多语言可以通过修改lang参数#进行切换,如` ch` ch `、` en `、` fr `、` german `、` korean、` Japan ` ocr=paddle ocr(use _ angle _ cls=True,lang='ch') #只需运行一次即可将模型下载并加载到memoryimg _ path='。/imgs/11 . jpg ' result=ocr . ocr(img _ path,Cls=true)for line in result 3360 print(line)输出结果是一个列表,每一项都包含文本框、文本和识别置信度:   

  

  24.0,36.0,304.0,34.0,304.0,72.0,24.0,74.0,'纯滋养护发素',0.964739 24.0,80.0,172.0,80.0,172.0,104.0,24 109.0,333.0,109.0,333.0,136.0,24.0.   

  

  部分界面基于pyqt5,其中关于pyqt GUI程序开发和环境配置的介绍可以在博客中找到(详见文末)。   

  

  主要步骤:   

  

  布局设计在QtDesigner中拖拽控件来完成程序界面的布局并保存*。ui文件。   

  

     

  

  pyuic自动生成接口代码   

1>在 pycharm 的项目文件结构中找到 *.ui 文件,右键――External Tools――pyuic,会在ui文件同级目录下自动生成界面 ui 的 Python 代码。

  

  

编写界面业务类业务类 MainWindow 实现程序逻辑和算法功能,与前面第2步生成的ui实现解耦,避免每次修改ui文件会影响业务代码。ui界面上的控件可以通过 self._ui.xxxObjectName 访问。

  

class MainWindow(QMainWindow): FIT_WINDOW, FIT_WIDTH, MANUAL_ZOOM = 0, 1, 2 def __init__(self): super().__init__() # 调用父类构造函数,创建QWidget窗体 self._ui = Ui_MainWindow() # 创建ui对象 self._ui.setupUi(self) # 构造ui self.setWindowTitle(__appname__) # 加载默认配置 config = get_config() self._config = config # 单选按钮组 self.checkBtnGroup = QButtonGroup(self) self.checkBtnGroup.addButton(self._ui.checkBox_ocr) self.checkBtnGroup.addButton(self._ui.checkBox_det) self.checkBtnGroup.addButton(self._ui.checkBox_recog) self.checkBtnGroup.addButton(self._ui.checkBox_layoutparser) self.checkBtnGroup.setExclusive(True) 实现界面业务逻辑对主界面上的按钮、列表、绘图控件进行 信号槽连接 。自定义的槽函数不用专门声明,如果是自定义的信号,需要在类__init__()前加上 yourSignal= pyqtSignal(args) 。

  

这里以按钮响应函数、列表响应函数为例。按钮点击的信号是 clicked ,listWidget列表切换选择的信号是 itemSelectionChanged 。

  

# 按钮响应函数self._ui.btnOpenImg.clicked.connect(self.openFile)self._ui.btnOpenDir.clicked.connect(self.openDirDialog)self._ui.btnNext.clicked.connect(self.openNextImg)self._ui.btnPrev.clicked.connect(self.openPrevImg)self._ui.btnStartProcess.clicked.connect(self.startProcess)self._ui.btnCopyAll.clicked.connect(self.copyToClipboard)self._ui.btnSaveAll.clicked.connect(self.saveToFile)self._ui.listWidgetResults.itemSelectionChanged.connect(self.onItemResultClicked)5. 运行看看效果运行 python main.py 即可启动GUI程序。

  

打开图片→选择语言模型ch(中文)→选择文本检测+识别→点击开始,检测完的文本区域会自动画框,并在右侧识别结果――文本Tab页的列表中显示。

  

  

所有检测出文本的区域列表,在识别结果――区域Tab页:

  

  

由于时间有限,软件细节功能还需进一步完善,欢迎感兴趣的朋友共同探讨。

  

参考来源:快学Python

免费咨询
免费获取加盟资料