已更新 2025年2月16日
分享:

如何使用IronOCR讀取照片

This article was translated from English: Does it need improvement?
Translated
View the article in English

由 Curtis Chau

在處理大量文件時,特別是 TIFF 檔這類的掃描影像,人工擷取文字可能會耗時且容易產生人為錯誤。 這裡是光學文字識別的地方(光學字符識別)提供了一種自動化的方法,可以準確地將圖像中的文字轉換為數位資料。 OCR 技術可以處理來自掃描文件或照片等圖像的複雜性,並將它們轉換為可搜尋、可編輯的文字。 這不僅加快了文件處理速度,還確保比人工轉錄提取更準確的數據。

使用 OCR 處理像 TIFF 這樣的格式,可能由於其大小、色深或壓縮而難以閱讀,使企業和開發人員能夠快速數位化和管理大量數據。 使用像 IronOCR 的 ReadPhoto 功能這樣的光學字符識別解決方案,開發人員可以從圖像中提取文本,甚至可以執行高級操作,例如搜索關鍵字或將掃描的數據轉換為可搜尋的 PDF。 這項技術特別適用於處理法律文件、檔案或收據的行業,因為在這些領域中,有效的數據檢索至關重要。

在本教程中,我們將簡要提供輸入和一個示例,說明如何使用 ReadPhoto 以及如何操作結果對象。 以及開發人員可能在某些情況下使用 ReadPhoto 而不是 IronOCR 的標準 Read

立即在您的專案中使用IronOCR,並享受免費試用。

第一步:
green arrow pointer

若要使用此功能,您還需要安裝IronOcr.Extension.AdvancedScan套件。

讀取照片範例

使用 IronOCR 讀取高品質的照片格式,例如 tiffgif,相對來說是很簡單的。 首先,我們創建一個新變數並將其指定為 OcrInput,然後使用 LoadImageFrame 加載圖像。 最後,我們使用 ReadPhoto 方法並獲取結果。

[{我(

  • 由於 Tiff 在單一圖像中包含多個幀,因此需要使用 frameNumber 參數。 此外,索引從 0 開始,而不是從 1 開始。
  • 該方法目前僅適用於英語、中文、日語、韓語和拉丁字母。
  • 使用高級掃描功能在 .NET Framework 上運行需要項目在 x64 架構上運行。

    )}]

輸入

由於大多數瀏覽器不本地支持TIFF格式,您可以下載TIFF輸入這裡. 為了顯示 TIFF 檔案,我將其轉換為 WEBP。

輸入

代碼

: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].FrameNumber;

// 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).FrameNumber

' 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)
VB   C#

輸出

輸出

從OCR輸入中提取的文本。

信心:一個「雙精度浮點」屬性,表示每個字元平均的統計準確性信心水平,其中1表示最高,0表示最低。

TextRegions:屬性「TextRegions」的列表,指示 OCR 文本及其在輸入中的位置。 在上面的例子中,我們打印了幀號以及包含文本的矩形。


ReadPhotoRead 的差異

readPhoto 方法與標準 read 方法的主要區別在於其結果物件和接受的檔案格式。 LoadImageFrame 專門只接受 tiffgif 格式,不接受像 Jpeg 這樣的格式,這有幾個原因。

Tiff 和 Jpg 圖像之間的比較

Tiff 作為一種文件格式是無損的,通常用於將多個頁面和多個幀壓縮成一個單一的格式。 通常用於高品質的多圖像存儲(例如法律文件、醫療圖像). 它比標準的 jpg 格式要複雜得多,因此需要以不同的方式從中完整提取文本。

此外,Tiff 圖像僅使用不同的壓縮方式,因此 IronOCR 必須使用專門的方法來解析文本。

以下是對tiff和jpg的進一步比較。

功能 TIFF(標記圖像文件格式) JPG/JPEG(聯合圖像專家小組)
壓縮 無損或未壓縮(保留品質) 有損壓縮(降低品質以減小文件大小)
檔案大小 大(由於高品質和可選的無壓縮選項) 更小,優化用於網頁使用和快速加載
圖像品質 高(適合專業使用,保留所有細節) 較低(由於有損壓縮,某些品質會受損)
色深 支援高色深(每通道高達 16 位元或 32 位元) 24位元色彩(1670萬種顏色)
使用案例 專業攝影、出版、掃描、存檔 網頁圖片、社交媒體、日常照片
透明度 支援透明度與 Alpha 通道 是否不是支持透明度
編輯 適合多次編輯(重新保存不會降低品質) 品質在反覆編輯和儲存中下降
相容性 在專業軟體中廣泛支援 在所有平台和設備上普遍支援
動畫 不支持動畫 不支持動畫
中繼資料 儲存廣泛的中繼資料(EXIF、圖層等)。 儲存 EXIF 元數據,但功能較為有限

不同情景

開發人員必須考慮每個生產環境的使用情況,以進一步優化並使他們的應用程式有效地運行。 儘管 readPhoto 適合處理如上所述的複雜圖像,例如 Tiff,但結果處理會較慢。 另一方面,jpg 可能质量较低,但操作通常会更快。 然而,影像品質如有噪點可能會導致OCR的信心度較低。

使用 OcrPhotoResults 或任何使用接口 IOcrResult 的類別中的 confidence 屬性,可以讓您了解結果的準確性,讓開發人員可以根據需要進行測試、重複和優化。

開發者應該在效率與準確性之間找到一個適當的平衡,確保影像達到一定的一致性閾值。