برنامه نویسی
04-harmonyos5-faceettector
شرح پرونده
این یک مورد تشخیص چهره است که بر اساس خدمات اصلی Vision Ai اجرا شده است. پس از انتخاب تصویری از آلبوم عکس دستگاه ، اطلاعات چهره را در تصویر تشخیص می دهد و نتایج تشخیص ساختاری را نشان می دهد.
مراحل اجرای:
1. واردات ماژول
// Import functional modules
import { photoAccessHelper } from '@kit.MediaLibraryKit';
import { fileIo } from '@kit.CoreFileKit';
import { image } from '@kit.ImageKit';
import { faceDetector } from '@kit.CoreVisionKit';
import { promptAction } from '@kit.ArkUI';
import { JSON } from '@kit.ArkTS';
2. عملکرد انتخاب آلبوم عکس
// Create a photo album picker instance
const photoPicker: photoAccessHelper.PhotoViewPicker = new photoAccessHelper.PhotoViewPicker();
// Set selection parameters
const photoResult = await photoPicker.select({
MIMEType: photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE,
maxSelectNumber: 1
})
// Get the URI of the selected image
const photoUri = photoResult.photoUris[0]
3. جریان پردازش تصویر
// Open the image file handle
const fileSource = await fileIo.open(photoUri, fileIo.OpenMode.READ_ONLY);
// Create an image data source
const imageSource = image.createImageSource(fileSource.fd);
// Generate pixel map format data
const chooseImage = await imageSource.createPixelMap();
4. اجرای اصلی تشخیص چهره
// Initialize the face detector
faceDetector.init();
// Configure visual recognition parameters
const visionInfo: faceDetector.VisionInfo = {
pixelMap: chooseImage
};
// Execute face detection
const visionResult = await faceDetector.detect(visionInfo)
// Check if the image contains faces
this.isFace = visionResult.length > 0
5. نمایش نتایج تشخیص
// Show the structured detection results in a pop-up window
promptAction.showDialog({
message: JSON.stringify(visionResult)
})
کد اجرای:
1. تعریف مؤلفه UI
@Entry
@ComponentV2
struct FaceDetector {
@Local isFace: boolean = false
2 روش اصلی عملکرد
async checkFace() {
// Integrate the complete logic of photo album selection, image processing, and face detection
}
3. ساخت و ساز رابط
build() {
Column() {
Button('Select from Album and Perform Face Recognition')
.onClick(() => {
this.checkFace()
})
}
.height('100%')
.width('100%')
}
خلاصه:
نکات کلیدی
- دسترسی به آلبوم عکس نیاز به مجوز کاربر دارد.
- پردازش تصویر باید از طریق همکاری MedialibraryKit و ImageKit تکمیل شود.
- نتایج تشخیص شامل داده های ساختاری مانند موقعیت های چهره و نقاط ویژگی است.
رمز کامل
import { photoAccessHelper } from '@kit.MediaLibraryKit';
import { fileIo } from '@kit.CoreFileKit';
import { image } from '@kit.ImageKit';
import { faceDetector } from '@kit.CoreVisionKit';
import { promptAction } from '@kit.ArkUI';
import { JSON } from '@kit.ArkTS';
@Entry
@ComponentV2
struct FaceDetector {
@Local isFace: boolean = false
async checkFace() {
const photoPicker: photoAccessHelper.PhotoViewPicker = new photoAccessHelper.PhotoViewPicker();
const photoResult = await photoPicker.select({
MIMEType: photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE,
maxSelectNumber: 1
})
const photoUri = photoResult.photoUris[0]
const fileSource = await fileIo.open(photoUri, fileIo.OpenMode.READ_ONLY);
const imageSource = image.createImageSource(fileSource.fd);
const chooseImage = await imageSource.createPixelMap();
faceDetector.init();
const visionInfo: faceDetector.VisionInfo = {
pixelMap: chooseImage
};
const visionResult = await faceDetector.detect(visionInfo)
this.isFace = visionResult.length > 0
promptAction.showDialog({
message: JSON.stringify(visionResult)
})
}
build() {
Column() {
Button('Select from Album and Perform Face Recognition')
.onClick(() => {
this.checkFace()
})
}
.height('100%')
.width('100%')
}
}