dtkmultimedia
DTK Multimedia module
载入中...
搜索中...
未找到
docrplugininterface.h
浏览该文件的文档.
1// SPDX-FileCopyrightText: 2022 - 2023 UnionTech Software Technology Co., Ltd.
2//
3// SPDX-License-Identifier: LGPL-3.0-or-later
4#ifndef DOCRPLUGININTERFACE_H
5#define DOCRPLUGININTERFACE_H
6
7#include "docr.h"
8#include "dtkocr.h"
9
10DOCR_BEGIN_NAMESPACE
11
13{
14public:
15 DOcrPluginInterface() = default;
16 virtual ~DOcrPluginInterface() = default;
17 virtual QList<Dtk::Ocr::HardwareID> hardwareSupportList() = 0;
18 virtual bool setUseHardware(const QList<QPair<Dtk::Ocr::HardwareID, int>> &hardwareUsed);
19 virtual bool setUseMaxThreadsCount(int n);
20 virtual QStringList authKeys();
21 virtual bool setAuth(const QStringList &params);
22 virtual QStringList imageFileSupportFormats() const;
23 virtual bool setImageFile(const QString &filePath);
24 virtual bool setImage(const QImage &image);
25 virtual QImage imageCached() const = 0;
26 virtual QString pluginExpandParam(const QString &key) const;
27 virtual bool setPluginExpandParam(const QString &key, const QString &value);
28 virtual bool analyze() = 0;
29 virtual bool breakAnalyze();
30 virtual bool isRunning() const = 0;
31 virtual QStringList languageSupport() const = 0;
32 virtual bool setLanguage(const QString &language) = 0;
33 virtual QList<Dtk::Ocr::TextBox> textBoxes() const;
34 virtual QList<Dtk::Ocr::TextBox> charBoxes(int index) const;
35 virtual QString simpleResult() const = 0;
36 virtual QString resultFromBox(int index) const;
37};
38
39DOCR_END_NAMESPACE
40
41#define DOcrPluginInterface_iid "Dtk.Plugin.DOcrPluginInterface/1.0"
43
44#endif
Definition docrplugininterface.h:13
virtual QList< Dtk::Ocr::HardwareID > hardwareSupportList()=0
获取支持的硬件列表
virtual bool isRunning() const =0
获取是否正在进行识别操作,此接口的调用位置一般和analyze 函数不在同一个线程内, 实现的时候需要注意线程安全
virtual bool setLanguage(const QString &language)=0
设置识别的语种,语种和 languageSupport 函数的返回值对应,插件自身需要做好判断工作
virtual bool analyze()=0
执行识别操作,建议在执行此接口的时候阻塞线程,同时注意激活和取消 isRunning 函数的效果
virtual QStringList authKeys()
获取鉴权参数关键字,此项一般用于需要额外授权才能使用的场景,例如需要联网才能使用或需要CDKEY的场景
virtual bool setPluginExpandParam(const QString &key, const QString &value)
设置自定义拓展参数,此函数用于一些较为高级或复杂的设置项,例如限制显存占用等操作,使用此接口 需要向你的用户准备额外的说明书或操作手册,为了保持插件的简单和兼容性,不推荐使用此接口来实现功能
virtual QString simpleResult() const =0
获取格式简单的整体识别结果,建议以换行符为每个文本框结果的分界线
virtual bool setUseHardware(const QList< QPair< Dtk::Ocr::HardwareID, int > > &hardwareUsed)
设置允许使用的设备,可以一次指定多个设备
virtual bool breakAnalyze()
设置中断当前识别操作
virtual QStringList languageSupport() const =0
获取支持的语种列表,建议使用和 ISO-639 标准兼容的字符串
virtual bool setImageFile(const QString &filePath)
设置图片文件路径,让插件从文件读取图片,图片的类型包含于自身实现的 imageFileSupportFormats 函数的返回值内,插件应当自身做好读取结果的校验
virtual bool setUseMaxThreadsCount(int n)
设置最多可以开几个线程
virtual bool setImage(const QImage &image)
设置需要识别的图片,此处传入的图片不保证就是插件所需的格式,插件应当做好格式校验并转换到所需的格式
virtual QStringList imageFileSupportFormats() const
获取支持读取的图片文件类型
virtual bool setAuth(const QStringList &params)
设置鉴权参数
virtual QImage imageCached() const =0
获取之前设置成功的图片数据,插件应当在执行 setImageFile 或 setImage 成功后对图片进行一次深拷贝,以此来实现此函数
virtual QString pluginExpandParam(const QString &key) const
获取自定义拓展参数设置情况,此函数用于一些较为高级或复杂的设置项,例如限制显存占用等操作,使用此接口 需要向你的用户准备额外的说明书或操作手册,为了保持插件的简单和兼容性,不推荐使用此接口来实现功能
virtual QList< Dtk::Ocr::TextBox > charBoxes(int index) const
获取识别到的文本框中的单个字的字符框
virtual QString resultFromBox(int index) const
获取指定文本框内的识别结果
virtual QList< Dtk::Ocr::TextBox > textBoxes() const
获取识别到的文本框
DOcrPluginInterface类为dtkocr的插件类,你可以通过此类完成OCR的插件开发以拓展dtkocr的功能, 同时不必过多修改上层应用的代码
#define DOcrPluginInterface_iid
用于描述插件接口ID的字符串宏定义,用于Qt在加载时进行识别的依据
Definition docrplugininterface.h:41