狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

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

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

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

2. 如何安裝 Tesseract

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

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

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

    dotnet add package SkiaSharp
3. 訓練數據從哪里下載

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

4. 如何使用 Tesseract

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

  1. 創建一個 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 環境中安裝依賴

如果您在 Docker 環境中使用 Tesseract,需要確保基礎依賴已經安裝。參考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.一個例子

 

識別結果

轉自https://www.cnblogs.com/chenyishi/p/18658890


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