
#HarmonyOS NEXT体验官#如何运用HarmoneyOS NEXT 证明自己与刘亦菲的高相似度 原创
精彩预告(看完本篇,帅哥靓女们可以得到):
把自己的照片跟某个明星的图片去对比,然后系统会根据对比结果给用户反馈跟明星的相似度,是否是本人照片。
看完我这篇各位彭于晏刘亦菲们可以尽情尝试认亲了!
那么开发之前,我们需要哪些准备呢?
首先打开电脑开始对文档进行检索,发现鸿蒙的基础视觉服务。
随着对文档的解读发现:
人脸的对比集成起来不仅不需要导入第三方jar包和依赖sdk远程仓库,而且集成和使用起来也非常方便!
仅需要输入的两张比对图片是同一个人的照片时,可以看见其比对结果为同一个人,置信分数比较高;当两张比对图片不是同一个人的照片时,可以看见其比对结果为非同一个人,置信分数很低。
那我们就可以通过这个置信分数来比较两个人的相似度,获取图片或者自拍与明星的相似度。
而且对比速度非常的快,后期可以优化为跟图片库进行对比,让你立马找到跟你相似的明星(我知道各位已经蠢蠢欲动证明自己就是彭于晏刘亦菲了)
OK,上干货!
代码实现
既然要实现的功能是图片对比,那么可以推测出我们需要使用到哪些api
1. 图片源获取
2. 两张对比图片的展示
3. 对比结果相似度的输出
4. 是否是本人的结果输出
5. 图片选择和对比的触发组件
6. 对比算法(这里api已经在底层帮我们实现了,真是省好多力气)
我们先构建一个功能实现的大致ui框架,方便功能的实现
1.1源文件获取
首先是图片源的获取,即需要应用文件访问,那就要用到@kit.CoreFileKit
进入@kit.CoreFileKit源码可以看到
这个picker正是我们需要的,在通过进入@ohos.file.picker源码可以看到
我们可以使用这个方法拿到图片的选择回调
接下来我们联合起来使用
这样我们就解决了第一个问题!继续!
2.1 图片展示
因为要展示两张图片,所以需要在页面内创建两个Image 组件用来加载,并且创建两个参数用来接收,因为图片的对比需要转换为PixelMap,所以我们定义如下
@State chooseImage: PixelMap | undefined = undefined
@State chooseImage1: PixelMap | undefined = undefined创建布局,并且插入默认图片
3.1对比相关方法
通过picker拿到图片
图片加载
图片对比直接使用api提供的封装好的方法,在触发事件里进行调用即可
方法调用后可以看到图片转为PixelMap后的对比结果显示在我们创建的text组件上。图上判断相似度竟有50%之多,可见我就是刘亦菲分菲!
各位靓仔美女们赶紧试试吧,挑战我刘亦菲分菲的称号!
