点学接口说明
<h3>概述</h3>
<p>该部分接口的入口类为 <strong>SdkManager</strong>,在调用该部分接口前,需要打开sdk和license认证通过,否则有可能会导致部分功能无法正常work。</p>
<h3>1.初始化SDK</h3>
<p><strong>接口名称:</strong></p>
<pre><code class="language-java">/**
* @param context
* @param preWidth 开启camera的预览流宽
* @param preHeight 开启camera的预览流高
*/
public SdkManager(Context context, int preWidth, int preHeight)</code></pre>
<p><strong>备注:</strong></p>
<p>初始化</p>
<h3>2. 初始化License</h3>
<p><strong>接口名称:</strong></p>
<pre><code class="language-java">
public void initLicense(String License , final InitializeCallback callback);</code></pre>
<p><strong>备注:</strong></p>
<p>在开启查词前必须先初始化成功。</p>
<h4>2.1 InitializeCallback介绍</h4>
<p>InitializeCallback是初始化结果的返回调用接口,有两个方法onInitFail 和 onInitSuccess;</p>
<p><strong>方法名称:</strong></p>
<pre><code class="language-java"> /**
* 初始化失败
* @param errCode 错误码
* @param msg
*/
void onInitFail(int errCode, String msg);
/**
* 初始化成功后设置识别参数 默认false 设置true忽略SDK内部参数配置 需外 部设置 目前只支持false
*/
boolean onSetupParamsBeforeSuccess();
/**
* 初始化成功
*/
void onInitSuccess();</code></pre>
<h3>3. 设置IOCRCallback</h3>
<p><strong>接口名称:</strong></p>
<pre><code class="language-java">public void setIocrCallback(IOCRCallback callback)</code></pre>
<p><strong>备注:</strong></p>
<p>手指和ocr词语都是在IOCRCallback这个回调产生</p>
<h4>3.1 IOCRCallback介绍</h4>
<p>IOCRCallback是初始化结果的返回调用接口</p>
<p><strong>方法名称:</strong></p>
<pre><code class="language-java"> /**
* ocr识别成功
* @param data 识别结果
* @param bmp 裁图图像
* @param x 裁图的手指坐标x
* @param y 裁图的手指坐标y
*/
void onOCRSuccess(VTOcrResult data, byte[] bmp, int x, int y);
/**
* ocr识别失败
* @param error 识别失败信息
*/
void onOCRError(String error);
/**
* 手指识别成功
* @param src
* @param dst
* @return true 走SDK内部流程 false不走
*/
boolean onFingerSuccess(Point2f[] src,Point2f[] dst);
/**
* 手指识别失败
* @param code
* @param error
*/
void onFingerError(int code ,String error);
/**
* 书本识别成功
* @param data
*/
void onBookRecognize(VTBRBookDataModel data);
/**
* 书本识别失败
* @param code
* @param error
*/
void onBookRecognizeFail(int code ,String error);
···/**
* 将要加载书本点读资源
*/
void willOnLoadBookResources();
/**
* 加载书本点读资源完成
*/
void onLoadedBookResource();</code></pre>
<p><strong>备注:</strong></p>
<p><strong> VTBRBookDataModel类</strong></p>
<table>
<thead>
<tr>
<th>属性</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>bookId</td>
<td>int</td>
<td>书本id</td>
</tr>
<tr>
<td>pageId</td>
<td>int</td>
<td>书页id</td>
</tr>
<tr>
<td>pageType</td>
<td>int</td>
<td>书页类型(1 封面、2封里、3扉页、4目录、5正文、6 辅文、7 封底里、8封底)</td>
</tr>
<tr>
<td>pagination</td>
<td>int</td>
<td>页码</td>
</tr>
<tr>
<td>physicalIndex</td>
<td>int</td>
<td><a href="https://www.showdoc.cc/visiontalk?page_id=2217068125466966">物理页码</a></td>
</tr>
<tr>
<td>extraData</td>
<td>String</td>
<td>额外信息(即后台中用户输入的每页extraData信息)</td>
</tr>
<tr>
<td>BookBean</td>
<td>BookBean</td>
<td>书本信息</td>
</tr>
<tr>
<td>similarBooks</td>
<td>List<SimilarBooksBean></td>
<td>相似书本信息(sdk2.0版本新增)。当存在与被识别书本高度相似的书本时,SDK返回的书本识别结果可能是错误的。此时SDK将通过similarBooks属性返回所有相似书本的ID。对于有屏设备,开发者可以将这些书本显示在屏幕上供用户选择,并将选择结果通过setupManualBookId(见本文第七点)接口上报玩瞳,这将大大提高内页识别的准确性。</td>
</tr>
<tr>
<td>elapsedTime</td>
<td>long</td>
<td>识别耗时</td>
</tr>
</tbody>
</table>
<p><strong> VTOcrResult类</strong></p>
<table>
<thead>
<tr>
<th>属性</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>framesBean</td>
<td>FramesBean</td>
<td>点读框信息</td>
</tr>
<tr>
<td>rects</td>
<td>String</td>
<td>ocr外框信息</td>
</tr>
<tr>
<td>text</td>
<td>String</td>
<td>ocr识别结果</td>
</tr>
<tr>
<td>textId</td>
<td>String</td>
<td>文字ID</td>
</tr>
</tbody>
</table>
<h3>4. 设置配置</h3>
<p><strong>接口名称:</strong></p>
<pre><code class="language-java">/**
* 设置外部手指偏移量及手指定位参数
* @param config
*/
public void initConfig(OCRConfig config)</code></pre>
<p><strong>备注:</strong></p>
<p><strong> OCRConfig类</strong></p>
<table>
<thead>
<tr>
<th>属性</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>xOffset</td>
<td>float</td>
<td>手指偏移量</td>
</tr>
<tr>
<td>yOffset</td>
<td>float</td>
<td>手指偏移量</td>
</tr>
<tr>
<td>thre</td>
<td>float</td>
<td>定位参数 默认0.04 (点距框距离)</td>
</tr>
<tr>
<td>detectMode</td>
<td>int</td>
<td>定位策略 默认4</td>
</tr>
</tbody>
</table>
<h3>5. 设置点读总控开关</h3>
<p><strong>接口名称:</strong></p>
<pre><code class="language-java">/**
* 设置 点读总控 true支持点读 默认在线 离线需单独设置 false 不支持点读
* @param isflag
*/
public void setFingerFlag(boolean isflag)</code></pre>
<h3>6. 设置离线开关</h3>
<p><strong>接口名称:</strong></p>
<pre><code class="language-java">/**
* 默认在线
* @param isOfflineOCR
*/
public void setOfflineFinger(boolean isOfflineOCR)</code></pre>
<p><strong>备注:</strong>
**确保后台服务中开启了离线手指服务!!;</p>
<h3>7. 开始识别</h3>
<p><strong>接口名称:</strong></p>
<pre><code class="language-java">/**
*
* @param data 图片数据
* @param prewidth 预览图像宽
* @param preheight 预览图像高
*/
public void startOCRRecognize(final byte[] data, final int prewidth, final int preheight)</code></pre>
<p><strong>备注:</strong></p>
<p>1、<strong>确保预览图像分辨率在500w以上,过低分辨率影响识别效果!!取预览最高分辨率为佳!!</strong>;
2、**确保后台服务中开启了在线手指服务!!;</p>
<h3>8. 设置BookId</h3>
<p><strong>接口名称:</strong></p>
<pre><code class="language-java">/**
* 人为设置BookId接口,用于代替封面识别
*
* @param bookId
*/
public void setupBookId(int bookId)</code></pre>
<h3>9. 人为设置BookId</h3>
<p><strong>接口名称:</strong></p>
<pre><code class="language-java">/**
* 人为选择的BookId接口,用于准确识别书本内页
*
* @param bookId
*/
public void setupManualBookId(int bookId)</code></pre>
<h3>10. 重新识别</h3>
<p><strong>接口名称:</strong></p>
<pre><code class="language-java">/**
* 重新上传识别
*/
public void reRecognize()</code></pre>
<h3>11. 开启OCR</h3>
<p><strong>接口名称:</strong></p>
<pre><code class="language-java">/**
* ocr开关 true 只获取点读框 false ocr获取框
* @param isGetFrame
*/
public void setFrame(boolean isGetFrame)</code></pre>
<h3>12. 释放</h3>
<p><strong>接口名称:</strong></p>
<pre><code class="language-java">//注销
public void destroy()</code></pre>