如何使用IronOCR在 C# 中進行照片 OCR辨識與圖片轉文字
IronOCR 的 ReadPhoto 方法可從 TIFF 和 GIF 等複雜照片格式中擷取圖片文字,提供帶有文本區域和置信度分數的結構化結果,針對需要精確 OCR辨識處理的高質量掃描文件進行了優化。
處理大量文檔,特別是像 TIFF 文件這樣的掃描圖像時,手動提取文字既費時又容易出錯。 光學字元辨識(OCR)技術可自動完成此流程,將影像中的文字轉換為數位資料。 OCR技術可以處理掃描文件和照片等複雜影像,將其轉換為可搜尋、可編輯的文字。 這可以加快文件處理速度,並確保資料提取的準確性。
使用 OCR 對TIFF 和 GIF等格式的資料進行識別,可以快速實現大量資料的數位化,即使這些資料在大小、色彩深度或壓縮方面存在挑戰。 借助 IronOCR 的 ReadPhoto 功能,開發人員可以從圖像中提取文本,並執行高級操作,例如關鍵字搜尋或將掃描資料轉換為可搜尋的 PDF。 這項技術有利於處理法律文件、檔案或收據的行業,在這些行業中,高效的資料檢索至關重要。
本教學示範如何使用 ReadPhoto 和操作 results 物件。 我們將討論何時使用 ReadPhoto 而不是IronOCR的標準 Read 。 對於一般的影像處理,請探索讀取各種影像格式。
若要使用此功能,請安裝IronOCR軟體套件。
快速入門:使用 ReadPhoto 從複雜圖像中提取文字
快速上手:使用 IronOCR 的 ReadPhoto 方法,在加載了圖像幀的 OcrInput 上提取所有文字和區域。 它針對 TIFF、GIF 和類似圖片格式進行了最佳化。
最簡工作流程(5個步驟)
- 下載用於讀取照片的 C# 庫
- 導入影像進行處理
- 根據影像類型選擇合適的導入方法
- 使用`ReadPhoto`方法從圖像中提取數據
- 存取**`OcrPhotoResult`**屬性以查看和操作提取的數據
如何使用 ReadPhoto 從 TIFF 圖像中提取文字?
使用IronOCR讀取 TIFF 和 GIF 等高品質照片格式非常簡單。 首先,建立一個 OcrInput 變量,並使用 LoadImageFrame 載入圖片。 然後使用 ReadPhoto 方法取得結果。 多頁 TIFF OCR 教學提供了更多多頁文件範例。
- TIFF 檔案包含多個幀; 使用從零開始的索引時,需要使用
PageNumber參數。 - 該方法目前支援英語、中文、日語、韓語和拉丁字母。
- 在.NET Framework上使用進階掃描需要 x64 架構。
我應該使用哪種輸入格式?
由於瀏覽器本身不支援 TIFF 格式,請下載 TIFF 輸入檔。 下面顯示的版本已轉換為 WEBP 格式。

如何實作 ReadPhoto 方法?
此實作示範如何從 TIFF 影像中提取文字和區域資訊。 更多範例請參見我們的照片讀取程式碼範例。
:path=/static-assets/ocr/content-code-examples/how-to/read-photo-read-photo.cs
using IronOcr;
using IronSoftware.Drawing;
using System;
// Instantiate OCR engine
var ocr = new IronTesseract();
using var inputPhoto = new OcrInput();
inputPhoto.LoadImageFrame("ocr.tiff", 0);
// Read photo
OcrPhotoResult result = ocr.ReadPhoto(inputPhoto);
// Index number refer to region order in the page
int number = result.TextRegions[0].PageNumber;
// Extract the text in the first region
string textinregion = result.TextRegions[0].TextInRegion;
//Extract the co_ordinates of the first text region
Rectangle region = result.TextRegions[0].Region;
var output = $"Text in First Region: {textinregion}\n"
+ $"Text Region:\n"
+ $"Starting X: {region.X}\n"
+ $"Starting Y: {region.Y}\n"
+ $"Region Width: {region.Width}\n"
+ $"Region Height: {region.Height}\n"
+ $"Result Confidence: {result.Confidence}\n\n"
+ $"Full Scnned Photo Text: {result.Text}";
Console.WriteLine(output);
Imports Microsoft.VisualBasic
Imports IronOcr
Imports IronSoftware.Drawing
Imports System
' Instantiate OCR engine
Private ocr = New IronTesseract()
Private inputPhoto = New OcrInput()
inputPhoto.LoadImageFrame("ocr.tiff", 0)
' Read photo
Dim result As OcrPhotoResult = ocr.ReadPhoto(inputPhoto)
' Index number refer to region order in the page
Dim number As Integer = result.TextRegions(0).PageNumber
' Extract the text in the first region
Dim textinregion As String = result.TextRegions(0).TextInRegion
'Extract the co_ordinates of the first text region
Dim region As Rectangle = result.TextRegions(0).Region
Dim output = $"Text in First Region: {textinregion}" & vbLf & $"Text Region:" & vbLf & $"Starting X: {region.X}" & vbLf & $"Starting Y: {region.Y}" & vbLf & $"Region Width: {region.Width}" & vbLf & $"Region Height: {region.Height}" & vbLf & $"Result Confidence: {result.Confidence}" & vbLf & vbLf & $"Full Scnned Photo Text: {result.Text}"
Console.WriteLine(output)
OcrPhotoResult 提供哪些屬性?

OcrPhotoResult 類別提供了分析擷取文字的關鍵屬性。 有關處理 OCR 結果的詳細信息,請參閱我們的資料輸出和結果處理指南。
Text : 從 OCR 輸入中提取的文字。
Confidence : 統計準確度信賴度(0-1 等級,1 為最高)。 了解更多關於結果置信度評分的資訊。
TextRegions : 包含位置資料的文字區域清單。 類似於定義用於目標提取的 OCR 區域。
什麼時候應該使用 ReadPhoto 而不是 Read?
ReadPhoto 與標準 Read 的主要差異在於 result 物件和支援的檔案格式。 LoadImageFrame 明確接受 TIFF 和 GIF 格式,不接受 JPEG 等格式。 ReadPhoto 針對複雜的圖像格式進行了優化,而標準的 Read 則適用於更簡單的圖像和一般的文本提取任務。
為什麼 ReadPhoto 只支援 TIFF 和 GIF 格式?
TIFF是一種無損格式,可以將多個頁面和訊框壓縮到一個檔案中。它常用於高品質、多影像的存儲,例如法律文件和醫學影像。 由於它比 JPEG 更複雜,因此需要不同的文字擷取方法。 特殊的處理方式可確保以專業級影像格式獲得最佳效果。
TIFF 影像使用不同的壓縮方法,因此IronOCR採用專門的演算法來破解文字。 ReadPhoto 中的先進演算法能夠處理 TIFF 壓縮特性,確保從複雜的多層文件中準確提取。
以下是TIFF和JPEG格式的比較:
| 特徵 | TIFF(帶標籤的圖像檔案格式) | JPG/JPEG(聯合影像專家小組) |
|---|---|---|
| 壓縮 | 無損或未壓縮(保持音質) | 有損壓縮(以降低品質為代價減少檔案大小) |
| 文件大小 | 大號(由於品質高且可選無壓縮) | 體積更小,針對網頁使用進行了最佳化,載入速度更快 |
| 影像品質 | 高品質(非常適合專業用途,保留所有細節) | 較低(因有損壓縮,部分音質有所損失) |
| 色彩深度 | 支援高色彩深度(每聲道最高可達 16 位元或 32 位元) | 24 位元色彩(1670 萬種顏色) |
| 用例 | 專業攝影、出版、掃描、存檔 | 網路圖片、社群媒體、日常照片 |
| 透明度 | 支援透明度和 Alpha 通道 | **不**支援透明度 |
| 編輯 | 適合多次編輯(重新儲存不會損失品質) | 反覆編輯和保存會導致品質下降。 |
| 相容性 | 專業軟體廣泛支持 | 在所有平台和裝置上通用 |
| 卡通 | 不支援動畫 | 不支援動畫 |
| 元數據 | 儲存大量元資料(EXIF、圖層等) | 儲存 EXIF 元數據,但功能較為有限。 |
我該如何選擇 ReadPhoto 還是 Read 來用於我的應用程式?
考慮每種生產使用場景,以優化應用程式效能。 雖然 ReadPhoto 適用於複雜的 TIFF 影像,但其處理速度較慢。 JPEG 格式處理速度更快,但品質較低,這可能會導致 OCR 置信度較低。 必要時使用影像品質校正濾鏡來改善效果。
confidence 屬性位於 OcrPhotoResults 或任何 IOcrResult 介面類別中,用於指示結果精度,方便開發人員進行測試和最佳化。對於精度要求最高的應用,使用高品質 TIFF 影像的 ReadPhoto 可提供最佳結果,尤其適用於對精度要求極高的檔案或法律文件處理。
透過確保影像達到一定的品質閾值,在效率和準確性之間找到平衡。 對於混合文件類型,實作混合方法:對需要高精度的關鍵文件使用 ReadPhoto,對優先考慮速度的常規任務使用標準 Read。
常見問題解答
ReadPhoto 方法支持什么图像格式?
IronOCR 的 ReadPhoto 方法針對 TIFF 和 GIF 等複雜照片格式進行了最佳化。它專門用於從高品質的掃描文件和照片中萃取文字,提供具有文字區域和置信度分數的結構化結果。
如何從 TIFF 影像中萃取文字?
若要使用 IronOCR 從 TIFF 影像中萃取文字,請建立一個 OcrInput 變數,使用 LoadImageFrame 載入影像,然後應用 ReadPhoto 方法。過程簡單直接:var result = new IronTesseract().ReadPhoto(new OcrInput().LoadImageFrame("photo.tiff", 0));
使用 ReadPhoto 功能需要哪些額外套件?
要在 IronOCR 中使用 ReadPhoto 功能,您需要從 NuGet 安裝 IronOcr.Extension.AdvancedScan 套件。此擴充套件提供 ReadPhoto 方法所需的進階掃描功能。
何時應該使用 ReadPhoto 來取代標準的 Read 方法?
在處理 TIFF 和 GIF 等複雜照片格式時,請使用 IronOCR 的 ReadPhoto 方法,特別是需要進行精確 OCR 處理的高品質掃描文件。標準的 Read 方法更適合一般的影像處理工作。
ReadPhoto 能提供什麼樣的結果?
IronOCR 的 ReadPhoto 方法可提供結構化的 OCR 結果,其中包括擷取的文字區域與置信度分數。您可以透過 OcrPhotoResult 屬性存取這些結果,以檢視和處理擷取的資料。
ReadPhoto 可以處理多頁文件嗎?
是的,IronOCR 的 ReadPhoto 方法可以處理多頁文件,尤其是經常包含多個畫格的 TIFF 檔案。LoadImageFrame 方法允許您指定在多頁文件中處理哪一格。
哪些產業可從使用 OCR 技術處理照片中獲益?
IronOCR 可讓處理法律文件、檔案、收據的行業,以及任何處理大量掃描文件的企業獲益,在這些行業中,高效率的資料檢索至關重要。ReadPhoto 方法可自動從這些複雜的影像格式中提取文字。

