超碰人人人人人,亚洲AV午夜福利精品一区二区,亚洲欧美综合区丁香五月1区,日韩欧美亚洲系列

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

在 .NET 中使用 Tesseract 識別圖片文字

freeflydom
2025年1月9日 9:17 本文熱度 273
1. 什么是 Tesseract

Tesseract 是一個強大的字符識別 (OCR) 工具。它最初由 HP 發(fā)布,現(xiàn)在由 Google 和學術(shù)社區(qū)共同維護和開發(fā)。 Tesseract 支持多種語言和格式,能夠高效地識別圖片中的文字。

2. 如何安裝 Tesseract

要在 .NET 項目中使用 Tesseract,需要安裝相關(guān)的 NuGet 包和基礎(chǔ)依賴。步驟如下:

  1. 在項目中通過 NuGet 安裝 Tesseract 包:

    dotnet add package Tesseract
  2. 安裝 SkiaSharp 來處理圖片:

    dotnet add package SkiaSharp
3. 訓練數(shù)據(jù)從哪里下載

Tesseract 需要訓練數(shù)據(jù)文件來識別圖片中的文字。這些訓練數(shù)據(jù)文件可以從 Tesseract OCR GitHub  https://github.com/tesseract-ocr/tessdata下載。選擇您需要的語言文件,并放置在項目相關(guān)目錄中。

4. 如何使用 Tesseract

使用 Tesseract 識別圖片中的文字,可以通過以下步驟完成:

  1. 創(chuàng)建一個 HttpClient 和 Logger ,用于下載圖片和記錄日志。

  2. 使用 SkiaSharp 來處理圖片。

  3. 使用 Tesseract 完成 OCR 識別。

例子如下:

using SkiaSharp;
using Tesseract;
namespace AutoGetOrder.WebAPI.Services.TesseractService
{
    public class TesseractOCRService
    {
        private readonly HttpClient _httpClient;
        private readonly ILogger<TesseractOCRService> _logger;
        public TesseractOCRService(HttpClient httpClient, ILogger<TesseractOCRService> logger)
        {
            _httpClient = httpClient;
            _logger = logger;
        }
        public async Task<string> Do(string imageUrl)
        {
            try
            {
                byte[] imageBytes = await DownloadImageAsync(imageUrl);
                using (var skBitmap = SKBitmap.Decode(imageBytes))
                {
                    var processedBitmap = PreprocessImage(skBitmap);
                    using (var pix = ConvertSKBitmapToPix(processedBitmap))
                    {
                        string captchaText = RecognizeText(pix);
                        return captchaText;
                    }
                }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.ToString());
                return string.Empty;
            }
        }
        private async Task<byte[]> DownloadImageAsync(string url)
        {
            return await _httpClient.GetByteArrayAsync(url);
        }
        private SKBitmap PreprocessImage(SKBitmap bitmap)
        {
            return bitmap;
        }
        private Pix ConvertSKBitmapToPix(SKBitmap skBitmap)
        {
            using (var image = SKImage.FromBitmap(skBitmap))
            using (var data = image.Encode(SKEncodedImageFormat.Png, 100))
            {
                return Pix.LoadFromMemory(data.ToArray());
            }
        }
        private string RecognizeText(Pix pix)
        {
            using (var engine = new TesseractEngine(@"./Services/TesseractService", "eng", EngineMode.Default))
            {
                using (var page = engine.Process(pix))
                {
                    return page.GetText();
                }
            }
        }
    }
}
5. Docker 環(huán)境中安裝依賴

如果您在 Docker 環(huán)境中使用 Tesseract,需要確?;A(chǔ)依賴已經(jīng)安裝。參考PR https://github.com/charlesw/tesseract/issues/675 可以參考下面的 Dockerfile:

RUN apt-get update && apt-get install -y \
    libfontconfig1 \
    libfreetype6 \
    libpng16-16 \
    libjpeg62-turbo \
    libx11-6 \
    libxext6 \
    libxrender1 \
    tesseract-ocr \
    libtesseract-dev \
    libleptonica-dev
RUN ln -s /usr/lib/x86_64-linux-gnu/libdl.so.2 /usr/lib/x86_64-linux-gnu/libdl.so
WORKDIR /app/x64
RUN ln -s /usr/lib/x86_64-linux-gnu/liblept.so.5 /app/x64/libleptonica-1.82.0.so
RUN ln -s /usr/lib/x86_64-linux-gnu/libtesseract.so.5 /app/x64/libtesseract50.so

這些依賴確保 Tesseract 和其依賴庫在 Docker 中正常運行。

6.一個例子

 

識別結(jié)果

轉(zhuǎn)自https://www.cnblogs.com/chenyishi/p/18658890


該文章在 2025/1/9 9:19:41 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務(wù)費用、相關(guān)報表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務(wù)都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved