IronOCR 操作指南 修正圖像方位 使用 C# 修正 OCR 中的影像方向 Curtis Chau 更新:2026年1月10日 下載 IronOCR NuGet 下載 DLL 下載 Windows 安裝程式 開始免費試用 法學碩士副本 法學碩士副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在 Grok 中打開 向 Grok 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 This article was translated from English: Does it need improvement? Translated View the article in English IronOCR 可透過旋轉、抗斜和縮放的方法來修正影像的方向問題。 在您的 .NET 應用程式中,利用這些轉換來修正傾斜的掃描、倒置的文件以及大小不當的影像,以達到精確的 OCR 文字擷取。 快速入門:一行完成旋轉、桌面傾斜和縮放 鏈接 IronOCR 的 OcrInput 方法,在單次呼叫中旋轉、抗斜和縮放您的圖像 - 準備圖像以進行精確的 OCR,而無需模板。 立即開始使用 NuGet 建立 PDF 檔案: 使用 NuGet 套件管理器安裝 IronOCR PM > Install-Package IronOcr 複製並運行這段程式碼。 var result = new IronOcr.OcrInput().LoadImage("skewed.png").Rotate(90).Deskew(45).Scale(150).Let(input => new IronOcr.IronTesseract().Read(input)); 部署到您的生產環境進行測試 立即開始在您的專案中使用 IronOCR,免費試用! 免費試用30天 ### 最小工作流程(5 個步驟) 下載一個 C# 庫來修復映像方向 導入 PDF 文檔和圖像以進行閱讀 應用所需的方向修正,比如旋轉、去斜和縮放 導出校正後的影像以供查看 使用Read方法進行OCR處理 如何在 IronOCR 中旋轉圖片? 旋轉會以特定角度改變影像方向,以確保文字直立並正確對齊。 這可以糾正掃描器上放置不正確的掃描文件或以尷尬角度拍攝的照片。 傳送一個程度值給 Rotate 方法。 正數值順時針旋轉;負數值逆時針旋轉。旋轉會圍繞影像中心點進行,在調整內容方向的同時保持原始尺寸。 何時應該使用圖片旋轉? 影像旋轉可糾正以不正確方向掃描或拍攝的文件。 常見的情況包括 文件掃描時顛倒或橫向 需要改變方向的行動照片 頁面方向不一致的多頁文件 掃描標準不一的歷史檔案 護照掃描,其中方向不同 從不同攝影角度識別車牌 若要自動偵測旋轉,請使用 IronOCR 的 DetectPageOrientation 方法,該方法可透過文字分析來判定正確的方向。 什麼程度值最有效? 常見的旋轉值為 90 度的倍數 (90、180、270),用於標準方向問題。 IronOCR 支援任何程度值進行微調: 90/-270度:橫向轉縱向 180 度:顛倒的文件 270/-90度:縱向到橫向的轉換 小角度 (1-10 度):微小的調整,雖然 deskewing 對於微小的傾斜通常效果較佳 對於來自較舊設備的 掃描文件,請將旋轉與其他預處理步驟結合。 旋轉如何影響 OCR 精確度? 適當的旋轉對於 OCR 的準確性至關重要。 IronOCR 的 Tesseract 5 引擎期望從左至右,從上至下的文字流程。 造成文字錯位的原因: 字元辨識錯誤 不正確的字詞界線 段落檢測失敗 多語言文件效能不佳 降低 結果中的信心分數</a :path=/static-assets/ocr/content-code-examples/how-to/image-orientation-correction-rotate-image.cs using IronOcr; // Instantiate IronTesseract IronTesseract ocrTesseract = new IronTesseract(); // Add image using var imageInput = new OcrImageInput("paragraph_skewed.png"); // Rotate the image 180 degrees clockwise imageInput.Rotate(180); // Export the modified image imageInput.SaveAsImages("rotate"); Imports IronOcr ' Instantiate IronTesseract Private ocrTesseract As New IronTesseract() ' Add image Private imageInput = New OcrImageInput("paragraph_skewed.png") ' Rotate the image 180 degrees clockwise imageInput.Rotate(180) ' Export the modified image imageInput.SaveAsImages("rotate") $vbLabelText $csharpLabel 使用 SaveAsImages 方法匯出修改過的影像。 下圖為轉換前後的影像。 前 後 如何修正傾斜的影像? Deskewing 可拉直傾斜或歪斜的影像,修正斜度以確保文字水平對齊。 這可修正在掃描器上歪斜放置的文件或以微小角度拍攝的照片。 使用 Deskew 方法套用抗色偏功能。 傳入一個整數,指定要修正的最大偏斜角度。 較高的值允許更多的修正,但處理速度會變慢,並有可能出現如頁面顛倒等錯誤。 預設的 15 度最大值可有效處理大多數情況。 我應該使用什麼角度值來進行傾斜補正? 最佳傾斜角度取決於文件品質和需求: 預設 (無參數):自動偵測大部分文件 5-15度:略微傾斜掃描,平衡精確度與速度 15-30度:嚴重歪斜的文件; 考慮超過 20 度角的旋轉 30+度:可能會修正過度; 使用 影像篩選器 取代 對於嚴重偏斜的文件,請結合抗色偏與 影像最佳化篩選器。 Filter Wizard 可協助找出最佳的預處理步驟。 什麼時候除焦最有效? Deskewing 在下列情況下效果最佳: 橫線清晰的重文字文件 表格和結構化文件 書籍或雜誌的掃描頁面 具有一致傾斜的多頁 TIFF 檔案</a 需要精確對齊的財務文件</a 對以下情況較無效果 不規則基線的手寫文字 具有多種文字方向的圖片 含有大量圖形或表格的文件 已對齊的畫面 如何避免過度修正問題? 透過以下方式預防偏斜問題 1.從保守的角度限制(10-15 度)開始 2.使用 OcrResult 信心分數 來驗證修正內容 3.針對複雜問題在旋轉後套用抗扭轉功能 4.在批次處理前測試樣本文件 5.使用進度追蹤進行大批量工作 6.實作 長時間執行作業的中止代幣</a :path=/static-assets/ocr/content-code-examples/how-to/image-orientation-correction-rotate-image.cs using IronOcr; // Instantiate IronTesseract IronTesseract ocrTesseract = new IronTesseract(); // Add image using var imageInput = new OcrImageInput("paragraph_skewed.png"); // Rotate the image 180 degrees clockwise imageInput.Rotate(180); // Export the modified image imageInput.SaveAsImages("rotate"); Imports IronOcr ' Instantiate IronTesseract Private ocrTesseract As New IronTesseract() ' Add image Private imageInput = New OcrImageInput("paragraph_skewed.png") ' Rotate the image 180 degrees clockwise imageInput.Rotate(180) ' Export the modified image imageInput.SaveAsImages("rotate") $vbLabelText $csharpLabel 前 後 如何縮放影像以獲得更好的 OCR 效果? 縮放可調整影像大小,以標準化尺寸達到一致的文字辨識。 適當的縮放比例可確保文字既不會太小而無法精確檢測,也不會太大而無法有效處理。 使用 Scale 方法以百分比值套用縮放(100% 表示無影響)。 第二個參數,ScaleCropArea,決定作物區域是否按比例縮放(建議為"true")。 縮放維持長寬比,以防止文字失真。 最佳的比例百分比是多少? 最佳縮放取決於來源解析度和 OCR 要求: 50-80%:高解析度掃描 (600+ DPI) 以加快處理速度 100%:無縮放,原始尺寸 120-150%:低解析度影像以增強字元識別 200%+:非常小的文字,雖然DPI設定可能效果更好 為達到最佳效果,文字高度目標為 20-30 像素。 請參閱 針對 Tesseract 優化影像 DPI 以取得解析度最佳化的詳細指引。 縮放如何影響 OCR 效能? 縮放會影響精確度和速度: Downscaling (低於 100%):處理速度更快,但可能會遺失精細的細節 Upscaling (100%以上):對於較小的文字有較好的精確度,但處理速度較慢 記憶體使用量:與影像尺寸成四次方關係 處理時間:隨著尺寸增大而增加 有關效能最佳化,請參閱快速 OCR 配置和提高速度的多執行緒。 何時應該使用 ScaleCropArea? 使用 ScaleCropArea 時: 使用特定的 影像區域工作 處理已定義欄位的表單 擷取身分文件資料 保持條碼閱讀的位置 閱讀特定區域的 MICR 支票</a 設定為 true 除非您需要原始的裁切座標。 :path=/static-assets/ocr/content-code-examples/how-to/image-orientation-correction-rotate-image.cs using IronOcr; // Instantiate IronTesseract IronTesseract ocrTesseract = new IronTesseract(); // Add image using var imageInput = new OcrImageInput("paragraph_skewed.png"); // Rotate the image 180 degrees clockwise imageInput.Rotate(180); // Export the modified image imageInput.SaveAsImages("rotate"); Imports IronOcr ' Instantiate IronTesseract Private ocrTesseract As New IronTesseract() ' Add image Private imageInput = New OcrImageInput("paragraph_skewed.png") ' Rotate the image 180 degrees clockwise imageInput.Rotate(180) ' Export the modified image imageInput.SaveAsImages("rotate") $vbLabelText $csharpLabel 不同的刻度值如何比較? 下面的比較顯示了縮放對尺寸和文字清晰度的影響。 適度的縮放可維持可讀性,同時調整處理需求: 哪些是合併修正的最佳實務? 按此順序進行修正,以獲得最佳效果: 1.Rotation 先針對主要的方向問題 2.Deskewing 微調對齊方式 3.擴充以最佳化 OCR 處理 此順序可確保每次修正都建立在前一次的基礎上,而不會複雜錯誤。 若有複雜的處理需求,請探索 IronOCR 全面的影像濾鏡和 影像品質修正工具。 如何結合所有方向修正? 鎖定多項修正,以進行全面的影像準備: /* :path=/static-assets/ocr/content-code-examples/how-to/image-orientation-correction-combined.cs */ using IronOcr; // Create OCR engine with optimized configuration IronTesseract ocrTesseract = new IronTesseract(); // Load and process image with all corrections using var imageInput = new OcrImageInput("skewed_document.png"); // Apply corrections in optimal sequence imageInput .Rotate(90) // Fix major orientation .Deskew(15) // Correct minor tilts .Scale(150, true); // Enhance for OCR // Perform OCR on corrected image OcrResult result = ocrTesseract.Read(imageInput); // Access extracted text string extractedText = result.Text; /* :path=/static-assets/ocr/content-code-examples/how-to/image-orientation-correction-combined.cs */ using IronOcr; // Create OCR engine with optimized configuration IronTesseract ocrTesseract = new IronTesseract(); // Load and process image with all corrections using var imageInput = new OcrImageInput("skewed_document.png"); // Apply corrections in optimal sequence imageInput .Rotate(90) // Fix major orientation .Deskew(15) // Correct minor tilts .Scale(150, true); // Enhance for OCR // Perform OCR on corrected image OcrResult result = ocrTesseract.Read(imageInput); // Access extracted text string extractedText = result.Text; Imports IronOcr ' Create OCR engine with optimized configuration Dim ocrTesseract As New IronTesseract() ' Load and process image with all corrections Using imageInput As New OcrImageInput("skewed_document.png") ' Apply corrections in optimal sequence imageInput _ .Rotate(90) _ ' Fix major orientation .Deskew(15) _ ' Correct minor tilts .Scale(150, True) ' Enhance for OCR ' Perform OCR on corrected image Dim result As OcrResult = ocrTesseract.Read(imageInput) ' Access extracted text Dim extractedText As String = result.Text End Using $vbLabelText $csharpLabel 哪些額外的預處理可以改善結果? 除了方向修正之外,還要考慮這些強化功能: 褪色文件的顏色校正</a 品質濾波器用於降低雜訊 文字定位的電腦視覺</a 高亮文字調試以驗證修正內容 針對批次處理,實施 async 支援,以有效率地處理多個文件。 使用 逾時監控處理大型作業。 如何匯出已修正的影像? 匯出處理過的影像,以供驗證或進一步使用: 單一影像:SaveAsImages() 方法 內嵌文字的可搜尋 PDF</a hOCR HTML 匯出用於網路整合 雲端儲存的 PDF 串流</a 在實施複雜的工作流程之前,先使用 簡單的單行 OCR 測試修正。 常見問題解答 如何在 OCR 處理前修正傾斜或歪斜的影像? IronOCR 透過其 OcrInput 類別提供強大的影像方向修正功能。您可以鏈結 Rotate()、Deskew() 和 Scale() 等方法來修正傾斜的掃瞄、倒置的文件和大小不當的影像。例如,使用 input.Rotate(90).Deskew(45).Scale(150) 在文字擷取之前,在一行中套用多項修正。 不同的文件方向應該使用何種旋轉角度? IronOCR 支援任何旋轉角度,但常見的值包括:90 度用於從橫向到直向的轉換,180 度用於倒置文件,270 度用於從直向到橫向的轉換。對於微小的調整 (1-10 度),可考慮改用 IronOcr 的 Deskew() 方法,以獲得較佳的輕微傾斜文件效果。 我可以自動偵測文件的正確方向嗎? 是的,IronOCR 包含一個 DetectPageOrientation 方法,可透過文字分析自動判斷正確的方向。此功能在處理方向不一致的文件批次時特別有用,例如歷史檔案或來自不同來源的多頁文件。 何時應該使用抗色偏與旋轉來校正影像? 當文件完全側向或倒置時,使用 IronOCR 的 Rotate() 方法來處理主要的方向問題(90、180、270 度)。使用 Deskew() 方法來處理掃描文件中常見的輕微傾斜和歪斜。您可以將這兩種方法串連起來,以全面修正掃瞄不良的影像。 如何縮放影像以提高 OCR 準確度? IronOCR 的 Scale() 方法允許您按百分比調整影像大小。例如,Scale(150) 可將影像大小增加 50%,這可提高低解析度掃描的 OCR 準確度。當結合旋轉與抗色偏功能來進行全面的影像預先處理時,此功能尤其有用。 Curtis Chau 立即與工程團隊聊天 技術撰稿人 Curtis Chau 擁有電腦科學學士學位(卡爾頓大學),專長於前端開發,精通 Node.js、TypeScript、JavaScript 和 React。Curtis 對製作直覺且美觀的使用者介面充滿熱情,他喜歡使用現代化的架構,並製作結構良好且視覺上吸引人的手冊。除了開發之外,Curtis 對物聯網 (IoT) 也有濃厚的興趣,他喜歡探索整合硬體與軟體的創新方式。在空閒時間,他喜歡玩遊戲和建立 Discord bots,將他對技術的熱愛與創意結合。 審核人 Jeffrey T. Fritz 首席計畫經理 - .NET 社群團隊 Jeff 也是 .NET 和 Visual Studio 團隊的首席計畫經理。他是 .NET Conf 虛擬會議系列的執行製作人,並主持「Fritz and Friends」開發人直播串流,每週播出兩次,與觀眾一起討論技術和編寫程式碼。Jeff 為 Microsoft Build、Microsoft Ignite、.NET Conf 和 Microsoft MVP Summit 等大型 Microsoft 開發人員活動撰寫工作坊、簡報和規劃內容。 準備好開始了嗎? Nuget 下載 5,384,824 | 版本: 2026.2 剛剛發布 免費 NuGet 下載 總下載量:5,384,824 查看許可證