文字识别demo,对图片中的文字进行ocr提取,提取后进行定位。

文字识别demo


HarmonyOS
2024-05-21 20:37:48
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
flyCloud00

对图片中的文字进行ocr提取,提取后进行定位。

使用的核心API

import image from '@ohos.multimedia.image'; 
// 在使用通用文字识别时,将实现文字识别的相关的类添加至工程。 
import textRecognition from '@hms.ai.ocr.textRecognition'; 
import hilog from '@ohos.hilog'; 
import resourceManager from '@ohos.resourceManager';

核心代码解释

import image from '@ohos.multimedia.image'; 
// 在使用通用文字识别时,将实现文字识别的相关的类添加至工程。 
import textRecognition from '@hms.ai.ocr.textRecognition'; 
import resourceManager from '@ohos.resourceManager'; 
 
@Entry 
@Component 
struct IndexOCR { 
  @State text1: string = ''; 
  @State text2: string = ''; 
  @State text3: string = ''; 
  @State language: string[] = []; 
 
  build() { 
    Column() { 
      Button() { 
        Text("testOCR") 
          .fontColor(Color.White) 
          .fontSize(20) 
      } 
      .type(ButtonType.Capsule) 
      .backgroundColor("#0D9FFB") 
      .width("80%") 
      .height(50) 
      .margin(10) 
      .onClick(() => { 
        this.testOCR(); 
        console.log("******"); 
      }) 
 
      Text('支持的语言类别:' + this.language.toString()) 
      Text(this.text1) 
      Text('单行文字与坐标:' + this.text2) 
      Text('单个字与坐标:' + this.text3) 
    } 
    .width('100%') 
    .height('100%').justifyContent(FlexAlign.Center) 
  } 
 
  async testOCR() { 
    // 将图片转换为PixelMap, 可以通过context内的资源管理获取 
    let res = $r('app.media.img_1'); 
    console.log(res + ''); 
    let resourceValue: resourceManager.Resource = { 
      bundleName: res.bundleName, 
      moduleName: res.moduleName, 
      id: res.id 
    } 
    let resource = await getContext(this).resourceManager.getMediaContent(resourceValue); 
    let imageResource = image.createImageSource(resource.buffer); 
    let pixelMapInstance = await imageResource.createPixelMap(); 
    console.log(res + ''); 
    // 调用文本识别接口 实例化VisionInfo对象,并传入待检测图片pixelMap。 
    // VisionInfo为待OCR检测识别的输入图片,目前仅支持PixelMap类型的视觉信息。 
    let visionInfo: textRecognition.VisionInfo = { 
      pixelMap: pixelMapInstance, 
    }; 
    //配置通用文本识别的配置项TextRecognitionConfiguration,用于配置是否支持朝向检测等。 
    let textConfiguration: textRecognition.TextRecognitionConfiguration = { 
      isDirectionDetectionSupported: true 
    }; 
    // 调用textRecognition的 recognizeText()接口,对识别到的结果进行处理。 
    let recognitionResult = await textRecognition.recognizeText(visionInfo, textConfiguration); 
    this.language = await textRecognition.getSupportedLanguages(); 
    console.log(recognitionResult + ''); 
    // 将结果更新到Text中显示 
    let recognitionString = JSON.stringify(recognitionResult); 
    this.text1 = recognitionResult.value; 
    // if (recognitionResult.blocks[0].lines[0]. === 1) 
    this.text2 = recognitionResult.blocks[0].value + '\n坐标:' + JSON.stringify(recognitionResult.blocks[0].lines[0].cornerPoints); 
    this.text3 = JSON.stringify(recognitionResult.blocks[0].lines[0].words[3].value) + '\n坐标:' + JSON.stringify(recognitionResult.blocks[0].lines[0].words[3].cornerPoints); 
    console.log("recognitionString"); 
    // hilog.info(0x0000, 'testTag', "textRecognition data is " + this.recognitionString); 
    pixelMapInstance.release(); 
    imageResource.release(); 
  } 
}

上诉是AI识别图片文字,进行ocr提取的demo,对于主要内容,可以参考一下。

分享
微博
QQ
微信
回复
2024-05-22 16:18:20
相关问题
通用文字识别OCR)应用
422浏览 • 1回复 待解决
基于PhotoViewPicker图片进行操作
153浏览 • 1回复 待解决
基于ImageKit图片进行处理
153浏览 • 1回复 待解决
指定url图片进行下载保存
424浏览 • 1回复 待解决
如何图片进行高斯模糊处理
586浏览 • 1回复 待解决
如何相册图片进行编辑裁剪
617浏览 • 1回复 待解决
如何Serviceabbility进行调试?
1440浏览 • 1回复 待解决
打包怎么代码进行混淆?
5046浏览 • 1回复 待解决
基于CameraKit相机进行操作
180浏览 • 1回复 待解决
如何常见密钥进行格式转换
199浏览 • 1回复 待解决
如何鸿蒙设备进行ui测试?
1994浏览 • 1回复 待解决
如何JSON数据进行解析优化
230浏览 • 1回复 待解决
文字背景颜色渐变显示
749浏览 • 1回复 待解决