封装相机接口
<p>绘本识别是基本图像数据做的图像处理与识别,由于不同平台对于摄像头的调用接口各不相同,因此需要封装出一个适用于SDK调用接口的class,以便上层模块调用。</p>
<h3>1. 封装模板</h3>
<p>为了方便IDH快速封装Camera类,玩瞳提供了封装模板,模板代码如下:
链接:<a href="https://pan.baidu.com/s/1nIf7Z0M4f_MlUF-RTIYZpg">https://pan.baidu.com/s/1nIf7Z0M4f_MlUF-RTIYZpg</a>
提取码:t7gw</p>
<ul>
<li><strong>1.1 文件说明</strong></li>
</ul>
<p>├── camera_sdk_typedef.h ----<strong>在这里做宏定义和</strong>
├── FakeCamera.cpp ----<strong>继承于ICamera接口类的实例类,可以在这个类中加入Camera相关的操作代码</strong>
├── FakeCamera.h
├── herb_camera.cpp ----<strong>封装类</strong>
├── herb_camera.h
├── ICamera.cpp ----<strong>camera接口类为虚类,定义了最基础的Camera最常用的接口</strong>
├── ICamera.h
├── include ----<strong>libjpeg的相关头文件,yuv数据转jpg数据时使用</strong>
│ ├── jconfig.h
│ ├── jerror.h
│ ├── jmorecfg.h
│ └── jpeglib.h
└── Makefile ----<strong>编译设置在此修改</strong></p>
<ul>
<li><strong>1.2 Camera调用流程</strong></li>
</ul>
<h3>封装原则</h3>
<ol>
<li>具有开启和关闭功能
当相机开启后,要进行初始化,设置数据格式、图像尺寸(包括预览尺寸和拍照尺寸);关闭相机的功能是停止相机预览及拍照功能,并且之后要能够正常执行下一次的开启操作</li>
<li>具有预览及拍照两种回调
回调函数由上层注册下来,当相机获取到预览图像或是生成图片数据后,要调用相应的回调函数把数据传给上层接口</li>
<li>拍照功能要单独设置一个函数
当需要拍照时,上层模块会调用此函数来触发拍照功能,然后生成一张图片</li>
<li>具有释放相机的操作
将相机实例所占用的资源释放,销毁相机实例</li>
<li>具有接口可以返回预览和拍照的尺寸</li>
<li>只要有一个实例就可以了</li>
<li>如果有错误处理方法及回调就更好了</li>
</ol>
<h3>调用流程</h3>
<p><img src="https://www.showdoc.cc/server/api/common/visitfile/sign/681f18574f80e757d8a49ad3f37d9e99?showdoc=.jpg" alt="相机class调用流程" title="相机class调用流程" /></p>
<h3>测试例程</h3>
<ul>
<li>可以正常开启、关闭相机</li>
<li>可以正常设置图像尺寸</li>
<li>可以看到图像的预览</li>
<li>能够通过调用拍照函数保存图片</li>
</ul>