برنامه نویسی

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%')
}

خلاصه:

نکات کلیدی

  1. دسترسی به آلبوم عکس نیاز به مجوز کاربر دارد.
  2. پردازش تصویر باید از طریق همکاری MedialibraryKit و ImageKit تکمیل شود.
  3. نتایج تشخیص شامل داده های ساختاری مانند موقعیت های چهره و نقاط ویژگی است.

رمز کامل

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%')
  }
}

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا