登录注册

one-long

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
查看: 482|回复: 0
打印 上一主题 下一主题

移动应用微信图像识别接口开发指南 (Android 版)

[复制链接]

4888

主题

4917

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
15163
跳转到指定楼层
楼主
发表于 2016-8-10 10:08:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
移动应用微信图像识别接口开发指南 (Android 版)

利用微信图像识别接口,第三方开发者可以把微信图像识别能力集成到自己的应用中,通过集成图像识别SDK,使得应用具备移动视觉搜索的功能,可识别海报、广告、杂志、报纸上的图片和内容。
图像识别过程如下:
1、开发者将图片上传到资源中心的图像识别图片库,每张图片会得到唯一的md5值。
2、用户使用集成了图像识别接口的移动应用拍摄图片,然后应用发送图片识别请求。
3、系统将用户拍摄的图片与图片库中的图片进行对比,返回匹配成功的图片的md5值。开发者可根据返回的md5值判断用户拍摄的图片,并进行下一步操作。

使用说明
本文档主要介绍微信图像 SDK(Android 版)使用方法,利用 SDK 可以准确搜索到用户上传的图像。
本文属于入门级文档,旨在帮助开发者快速学习 Android SDK 的使用并应用到自身开发工作。具体 API 可去附件中下载《微信图像SDK(Android版)开发手册》进行查询。
准备工作第一步 创建移动应用
请到“管理中心”中点击“创建移动应用”,填写相关资料,然后将该应用提交审核,只有审核通过的应用才能进行开发。
申请资料中需要提交应用签名值,可前往附件下载签名生成工具。
注册完毕,我们会在 7 个工作日内完成审核工作。 审核通过之后,开放平台将分配给该移动应用全局唯一的AppID。
第二步 下载 Android SDK
附件下载 Android SDK,压缩包中包括 Demo+SDK+开发文档。其中的 Demo 使用 SDK 的各功能 API;SDK 包括.so 和.jar 文件。
第三步 上传图片
每个 AppID 只能检索到自身上传的图片,图片上传位置:资源中心 –> 图像识别图片库,待图片审核通过, 即可对此图片进行识图操作。
Demo介绍
为了更好的理解微信图像接口 SDK 的使用,下面将通过一个简单的实例来讲解一下 SDK 各个关键 API 接口的使用。
1. 开发工具
Android 开发工具有很多,开发者可以根据自身的喜好来选择。在讲解本示例的时候,我们将使用 Eclipse 来一步步分析。
2. 工程配置
首先新建一个示例工程,按以下步骤进行配置。
i. 引入.so 文件
如下图,在 libs\armeabi 目录下粘贴 libwxnet.so 文件。
ii. 引入 jar 包:
在工程属性->Java Build Path->Libraries 中选择“Add External JARs”,选定 wximg.jar,确定后返回,完成后的效果如图 1所示。
3. AndroidManifest.xml 设置i. 添加必要的权限支持:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
<uses-permission android:name="android.permission.RECORD_AUDIO"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
   

4. 图像识别 Demo(包括通用识别和语法识别)i. 初始化
ImgSearcher.shareInstance().setListener(this);
if (ImgSearcher.shareInstance().init(this, screKey) != 0) {
//初始化失败
}
   

注:此处的 screKey 就是在官网上申请的应用授权码。
ii. 开始识别
ImgSearcher.shareInstance().start(img);
   

iii. 取消识别ImgSearcher.shareInstance().cancel();   
此接口的如果返回非 0 值, 则表示 cancel 过程结束, 否则其状态将通过 public void onGetState(ImgSearcherState state)回调获取。
iv. 实现 ImgListener,并重写其函数
直接在 Activity 类中实现 ImgListener,重写 ImgListener 各函数如下所示:
@Override public void onGetError(int arg0) {
// TODO Auto-generated method stub
}

@Override
public void onGetResult(ImgResult result) {
// TODO Auto-generated method stub
String mResUrl;
String mResMD5;
String mResPicDesc;
if (result != null) {
if (1 == result.ret && result.res != null) {
int resSize = result.res.size();
for (int i = 0; i < resSize; ++i) {
mgResult.Result res = (ImgResult.Result) result.res.get(i);
if (res != null) {
ResMD5 = res.md5;
mResUrl = res.url;
mResPicDesc = res.picDesc;
}
}
}
}
}

@Override public void onGetState(ImgSearcherState state) {
// TODO Auto-generated method stub
}
   

v. 释放系统资源
ImgSearcher.shareInstance().destroy();   

注:调用此函数, 需要确保识别过程或者 cancel 过程已经结束, 否则会出现问题。
vi. Demo 截图
编译运行,图 2、图 3 分别是开始界面和识别结果界面:





分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则