uni-app 快递电子面单识别电话号码

发布于 1周前 作者 yuanlaile 来自 Uni-App

uni-app 快递电子面单识别电话号码

快递电子面单识别电话,需要本地无网络下识别,识别率不能低于95%

注意电子面单可能不会是完全平整的,或者完全的光线很好的

3 回复

之前做过识别快递单上的手机号码,OCR无需联网,联系qq:16792999


有现成的插件,联系qq:1196097915

在处理 uni-app 项目中的快递电子面单识别电话号码需求时,通常会涉及到图像处理和OCR(光学字符识别)技术。以下是一个基于 uni-app 和 Tesseract.js(一个流行的JavaScript OCR库)的示例代码,展示如何从图像中识别电话号码。

首先,确保你的项目已经安装了 Tesseract.js。你可以通过 npm 安装它:

npm install tesseract.js

然后,在你的 uni-app 项目中,你可以创建一个页面来处理图像上传和OCR识别。以下是一个简单的示例代码:

1. 在页面的 <template> 部分添加上传图像的功能

<template>
  <view>
    <button @click="chooseImage">选择快递电子面单图片</button>
    <image v-if="imageSrc" :src="imageSrc" style="width: 100%;"></image>
    <text v-if="recognizedText">{{ recognizedText }}</text>
  </view>
</template>

2. 在页面的 <script> 部分添加逻辑处理

<script>
import Tesseract from 'tesseract.js';

export default {
  data() {
    return {
      imageSrc: '',
      recognizedText: ''
    };
  },
  methods: {
    chooseImage() {
      uni.chooseImage({
        count: 1,
        success: (res) => {
          this.imageSrc = res.tempFilePaths[0];
          this.recognizeTextFromImage(res.tempFilePaths[0]);
        }
      });
    },
    recognizeTextFromImage(imagePath) {
      Tesseract.recognize(
        imagePath,
        'eng', // 语言模型,可以根据需要调整
        {
          logger: m => console.log(m) // 可选:显示识别进度
        }
      ).then(({ data: { text } }) => {
        // 使用正则表达式提取电话号码
        const phoneRegex = /\b\d{10,15}\b/g; // 根据实际情况调整正则表达式
        const phoneNumbers = text.match(phoneRegex);
        this.recognizedText = phoneNumbers ? phoneNumbers.join(', ') : '未找到电话号码';
      }).catch(err => {
        console.error('OCR识别失败:', err);
        this.recognizedText = 'OCR识别失败';
      });
    }
  }
};
</script>

3. 在页面的 <style> 部分添加样式(可选)

<style>
/* 添加你需要的样式 */
</style>

以上代码展示了如何在 uni-app 中通过选择图片并使用 Tesseract.js 进行OCR识别来提取电话号码。请注意,由于图像质量和电子面单格式的差异,识别结果可能会有所不同。在实际应用中,你可能需要根据具体情况调整正则表达式和OCR参数以提高识别准确性。

回到顶部