HarmonyOS 鸿蒙Next 希望对CardRecognition返回的cardImageUri做人证对比
HarmonyOS 鸿蒙Next 希望对CardRecognition返回的cardImageUri做人证对比
希望对CardRecognition返回的cardImageUri与另外一张图片做相似度对比,但在获取cardImageUri后,将其转换成pixelMap时报错: image.createImageSource(cardImageUri) 返回为undefind
报错代码:
import { image } from ‘@kit.ImageKit’;
const source = await image.createImageSource(cardImageUri).createPixelMap();
请问该如何对CardRecognition返回的cardImageUri做人证对比
参考:
https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-image-V5#imagecreatepixelmap8
https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/vision-card-recognition-V5
https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/core-vision-facecomparator-api-V5
更多关于HarmonyOS 鸿蒙Next 希望对CardRecognition返回的cardImageUri做人证对比的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
不支持uri路径直接转换成pixelMap。 这边有一个OCR的结果uri如何转换为 image.PixelMap的demo,
n可以借鉴参考一下:
import { CardRecognition, CallbackParam, CardType, CardSide } from "@kit.VisionKit";
import { image } from '@kit.ImageKit'
import fs from '@ohos.file.fs';
@Entry
@Component
struct Index {
@State showOCR: boolean = false
@State src?: image.PixelMap = undefined
build() {
Stack() {
Column() {
Button('click me')
.onClick(() => {
this.showOCR = true
})
Image(this.src)
}
if (this.showOCR) {
this.CardOCRPage()
}
}
.width('100%')
.height('100%')
}
@Builder
CardOCRPage() {
CardRecognition({
// 此处选择身份证类型作为示例
supportType: CardType.CARD_ID,
cardSide: CardSide.FRONT,
callback: async (params: CallbackParam) => {
this.showOCR = false
if (params.cardInfo) {
let imageUri = params.cardInfo['front']['cardImageUri'];
let file = fs.openSync(imageUri, fs.OpenMode.READ_ONLY);
console.info('file fd:' + file.fd);
const imageSource: image.ImageSource = image.createImageSource(file.fd);
let decodingOptions: image.DecodingOptions = {
editable: true,
desiredPixelFormat: 3,
}
this.src = await imageSource.createPixelMap(decodingOptions);
}
}
})
.width('100%')
.height('100%')
}
}
更多关于HarmonyOS 鸿蒙Next 希望对CardRecognition返回的cardImageUri做人证对比的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next系统中,若你希望对CardRecognition返回的cardImageUri进行人脸比对,可以通过以下步骤实现:
-
图像获取:首先,利用
cardImageUri
从存储或媒体库中获取图像数据。这通常涉及使用文件I/O或媒体API来读取URI指向的图像文件。 -
人脸检测:接着,使用鸿蒙系统提供的AI能力或第三方人脸检测库,对图像进行人脸检测。这一步会标记出图像中的人脸区域,并提取出人脸特征。
-
特征提取:对检测到的人脸区域进行特征提取,生成一个可用于比对的特征向量。
-
人脸比对:将提取的特征向量与数据库中已存储的人脸特征向量进行比对。比对算法可以基于余弦相似度、欧氏距离等度量方式,以确定两个特征向量的相似程度。
-
结果判定:根据比对结果,判断是否为同一人。通常,会设定一个阈值,当相似度超过该阈值时,认为人脸匹配成功。
请注意,以上步骤涉及的技术细节和API调用可能因鸿蒙系统的具体版本和更新而有所变化。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html