IronOCR 操作指南 修正圖片顏色 如何在 C# 中修復圖像顏色以進行讀取 Curtis Chau 更新:2026年2月11日 下載 IronOCR NuGet 下載 DLL 下載 Windows 安裝程式 開始免費試用 LLM副本 LLM副本 將頁面複製為 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 的二值化、灰度化、反轉和顏色替換方法在 C# 中修復圖像顏色,以提高文字可讀性和 OCR 準確性。 讀取特定文字顏色以進行目標提取。 快速入門:隔離特定文字顏色 使用 IronOCR 的 SelectTextColor 方法,將 OCR 聚焦於特定的文字顏色—無需複雜的影像處理。 載入圖像,選擇文字顏色和容差,然後僅提取該文本,以獲得準確的 OCR 結果。 使用NuGet套件管理器安裝https://www.nuget.org/packages/IronOcr PM > Install-Package IronOcr 複製並運行這段程式碼。 new IronTesseract().Read(new IronOcr.OcrImageInput("sample.jpg").SelectTextColor(new IronSoftware.Drawing.Color("#DB645C"), 60)); 部署到您的生產環境進行測試 今天就在您的專案中開始使用免費試用IronOCR Free 30 Day Trial 如何在 C# 中修復圖像顏色以進行讀取 下載一個用於校正影像顏色的 C# 庫 導入PDF文件和圖像以供閱讀 應用顏色效果:二值化、灰階化、反轉和顏色替換 匯出校正後的影像以供查看 使用`SelectTextColor`讀取特定文字顏色 如何將影像二值化以提高 OCR 辨識率? 二值化將影像轉換為雙色格式,通常為黑白影像。這可以將文字與背景分離並減少雜訊,使文字更加清晰易讀。 為什麼二值化可以提高OCR辨識準確率? 使用 Binarize 方法應用二值化。 OCR技術在高對比影像(例如白底黑字)上效果最佳。 這種方法可以清晰地區分背景和人物。 二值化技術在處理光線不均或背景雜訊較大的掃描文件時效果尤佳。此演算法分析影像並確定最佳閾值,從而將前景文字與背景分開。 有關進階預處理技術,請參閱OCR 影像優化濾鏡指南。 二進位化的程式碼實作是什麼? :path=/static-assets/ocr/content-code-examples/how-to/image-color-correction-binarize-image.cs using IronOcr; // Instantiate IronTesseract IronTesseract ocrTesseract = new IronTesseract(); // Add image using var imageInput = new OcrImageInput("sample.jpg"); // Apply binarize affect imageInput.Binarize(); // Export the modified image imageInput.SaveAsImages("binarize.jpg"); $vbLabelText $csharpLabel 對於批量處理,將二值化與其他濾波器結合使用。 使用濾鏡精靈確定最適合您影像的濾鏡組合。 如何匯出和比較結果? 使用 SaveAsImages 方法匯出修改後的圖片。 對比下圖二值化前後的影像。 前 後 如何將影像轉換為灰階影像以便更好地閱讀? 將影像轉換為灰階影像可以減少視覺混亂並提高可讀性。 這有助於避免原始色彩分散人們對內容的注意力。 何時應該使用灰階影像而不是其他方法? 使用 ToGrayScale 方法應用灰階。 過程對 R、G 和 B 值取平均值。 灰階影像與會幹擾文字辨識的彩色背景或浮水印配合使用效果很好。 與二值化不同,灰階影像能夠保留細微變化中的細節。 適用於具有嵌入式文字或複雜佈局的照片。 對於低品質掃描件,請參閱"修復低品質掃描件和影像" 。 灰階轉換的簡單程式碼是什麼? :path=/static-assets/ocr/content-code-examples/how-to/image-color-correction-grayscale-image.cs // Apply grayscale affect imageInput.ToGrayScale(); $vbLabelText $csharpLabel 對於不同的影像質量,可將灰階影像與其他預處理步驟結合使用。 OcrInput 類別文件說明如何連結多個篩選器。 灰階影像與原圖相比如何? 前 後 何時應該反轉影像顏色? 反轉顏色可以增強對比。將黑底白字轉換為白底黑字可以提高可讀性。 如何實現顏色反轉? 使用 Invert 方法反轉顏色。 傳遞一個布林值以移除顏色通道並返回灰階影像。 顏色反轉功能可以處理負片或深色主題的螢幕截圖。 現代應用程式使用深色模式介面,這對傳統的OCR技術提出了挑戰。 反轉這些影像可確保最佳辨識效果。 有關各種影像類型,請參閱快速 OCR 設定指南。 :path=/static-assets/ocr/content-code-examples/how-to/image-color-correction-invert-image.cs // Apply invert affect imageInput.Invert(); $vbLabelText $csharpLabel 對於混合文件類型的批次處理,實現自動深色背景檢測。 IronOCR中的電腦視覺功能可以辨識何時需要反轉。 反向期權有什麼區別? 比較使用灰階模式和不使用灰階模式的 Invert 方法: 倒 反轉和灰階化 如何替換影像中的特定顏色? 替換特定顏色以突出顯示或弱化元素。 使用此功能可以增強文字的突出性或糾正對比度問題。 為什麼顏色替換中容差很重要? ReplaceColor 方法需要目前顏色、新顏色和容差值。 更高的容差值能更好地處理模糊影像。 容差決定了像素與目標顏色的匹配程度。 低值(0-50)適合純色。 較高的值(100-200)可以處理抗鋸齒文字或壓縮偽影。 這有助於處理掃描文檔,避免墨水暈染或紙張紋理造成差異。 如何實現顏色替換? :path=/static-assets/ocr/content-code-examples/how-to/image-color-correction-replace-color.cs using IronOcr; // Instantiate IronTesseract IronTesseract ocrTesseract = new IronTesseract(); // Add image using var imageInput = new OcrImageInput("sample.jpg"); IronSoftware.Drawing.Color currentColor = new IronSoftware.Drawing.Color("#DB645C"); IronSoftware.Drawing.Color newColor = IronSoftware.Drawing.Color.DarkCyan; // Replace color imageInput.ReplaceColor(currentColor, newColor, 80); // Export the modified image imageInput.SaveAsImages("replaceColor"); $vbLabelText $csharpLabel 如何處理進階顏色替換場景? 針對複雜場景進行多次鍊式替換: /* :path=/static-assets/ocr/content-code-examples/how-to/image-color-correction-multiple-replacements.cs */ // Replace multiple colors in sequence using var imageInput = new OcrImageInput("multi-color-document.jpg"); // Replace red text with black imageInput.ReplaceColor(IronSoftware.Drawing.Color.Red, IronSoftware.Drawing.Color.Black, 70); // Replace blue headers with dark gray imageInput.ReplaceColor(IronSoftware.Drawing.Color.Blue, IronSoftware.Drawing.Color.DarkGray, 60); // Replace light yellow background with white imageInput.ReplaceColor(new IronSoftware.Drawing.Color("#FFFACD"), IronSoftware.Drawing.Color.White, 40); // Perform OCR on the cleaned image var result = ocrTesseract.Read(imageInput); /* :path=/static-assets/ocr/content-code-examples/how-to/image-color-correction-multiple-replacements.cs */ // Replace multiple colors in sequence using var imageInput = new OcrImageInput("multi-color-document.jpg"); // Replace red text with black imageInput.ReplaceColor(IronSoftware.Drawing.Color.Red, IronSoftware.Drawing.Color.Black, 70); // Replace blue headers with dark gray imageInput.ReplaceColor(IronSoftware.Drawing.Color.Blue, IronSoftware.Drawing.Color.DarkGray, 60); // Replace light yellow background with white imageInput.ReplaceColor(new IronSoftware.Drawing.Color("#FFFACD"), IronSoftware.Drawing.Color.White, 40); // Perform OCR on the cleaned image var result = ocrTesseract.Read(imageInput); $vbLabelText $csharpLabel 對於複雜的顏色替換,請參閱影像校正濾鏡以了解其他預處理技術。 顏色替換的視覺效果如何? 前 後 如何只顯示特定顏色的文字? 使用 SelectTextColor 方法讀取特定文字顏色。 指定目標顏色和容差(0-255)。 容差表示 R、G 和 B 值中像素與所選顏色之間允許的差異。 顏色容差如何影響結果? :path=/static-assets/ocr/content-code-examples/how-to/image-color-correction-select-text-color.cs using IronOcr; using System; // Instantiate IronTesseract IronTesseract ocrTesseract = new IronTesseract(); // Add image using var imageInput = new OcrImageInput("sample.jpg"); // Text color to focus on IronSoftware.Drawing.Color focusColor = new IronSoftware.Drawing.Color("#DB645C"); // Specify which text color to read imageInput.SelectTextColor(focusColor, 60); // Perform OCR OcrResult ocrResult = ocrTesseract.Read(imageInput); // Output result to console Console.WriteLine(ocrResult.Text); $vbLabelText $csharpLabel 使用選擇性顏色閱讀功能,可以閱讀帶有顏色編碼部分的表格、提取突出顯示的文本或閱讀特定的警告訊息。 對於結構化資料擷取,請參閱OcrResult 類別以了解高階處理方法。 顏色選擇後我能得到什麼樣的輸出結果? OCR辨識結果只辨識出橘色文字: 如何儲存已套用篩選條件的修改後的PDF檔案? IronOCR可以保存有濾鏡或沒有濾鏡的修改後的 PDF 檔案。 SaveAsSearchablePdf 方法的第二個參數指定是否應用篩選條件進行保存。 可搜尋PDF的實作方式是什麼? :path=/static-assets/ocr/content-code-examples/how-to/image-quality-correction-searchable-pdf.cs using IronOcr; var ocr = new IronTesseract(); var ocrInput = new OcrInput(); // Load a PDF file ocrInput.LoadPdf("invoice.pdf"); // Apply gray scale filter ocrInput.ToGrayScale(); OcrResult result = ocr.Read(ocrInput); // Save the result as a searchable PDF with filters applied result.SaveAsSearchablePdf("outputGrayscale.pdf", true); $vbLabelText $csharpLabel 何時應該對已儲存的 PDF 檔案套用篩選器? 在建立更清晰、更易讀的文件時,可以使用篩選器。 這有助於文件存檔或在不同設備間共用文件。 有關更多信息,請參閱"透過 OCR 建立可搜尋 PDF" 。 對於包含表格的複雜文檔,請探索"讀取文檔中的表格"功能以進行專門提取。 對於大批量處理,請參閱 多執行緒 Tesseract OCR ,以最佳化跨多個文件的過濾器應用。 常見問題解答 如何修正影響 OCR 準確性的不良影像顏色? IronOCR 提供多種色彩校正方法,包括二值化、灰階轉換、反轉和色彩置換。這些濾鏡可增強文字與背景之間的對比,有助於提高文字的可讀性,讓 OCR 引擎更容易從色彩品質不佳的影像中準確提取文字。 什麼是二進位,什麼時候應該將其用於 OCR? Binarization 使用 IronOCR 的 Binarize 方法將影像轉換為雙色格式(通常是黑白)。它對於光線不均勻或背景雜訊的掃描文件特別有效,因為它能透過分析影像並決定最佳的分離臨界值,在文字和背景之間建立清晰的區別。 如何從影像中只擷取特定顏色的文字? IronOCR 的 SelectTextColor 方法可讓您集中對特定文字顏色進行 OCR,而無需複雜的影像處理。只需指定目標顏色和容差等級 - 例如,SelectTextColor(new IronSoftware.Drawing.Color("#DB645C"), 60) - 即可僅擷取該顏色範圍內的文字。 何時應該將圖像轉換為灰階,而不是使用二值化? 在處理會干擾文字辨識的彩色背景或水印時,請使用 IronOCR 的 ToGrayScale 方法。與二值化不同,灰階能夠保留影像中細微變化的細節,因此當您需要維持影像品質,同時減少視覺雜訊時,灰階是最理想的選擇。 我可以匯出修正後的影像來檢視色彩濾鏡的結果嗎? 是的,IronOCR 提供 SaveAsImages 方法,可在套用色彩修正後匯出修改後的影像。這可讓您比較之前和之後的結果,幫助您確定哪種色彩修正方法最適合您的特定影像。 如何為我的影像決定最佳的色彩校正濾鏡? IronOCR 包含濾鏡精靈工具,可協助您決定影像的最佳濾鏡組合。對於批次處理,您可以將二值化等多種篩選器與其他預處理技術結合,以達到適合您的文件類型的最佳 OCR 結果。 Curtis Chau 立即與工程團隊聊天 技術作家 Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。 審核人 Jeffrey T. Fritz 首席程序经理 - .NET 社群团队 Jeff 也是 .NET 和 Visual Studio 团队的首席程序经理。他是 .NET Conf 虚拟会议系列的执行制作人,并主持“Fritz 和朋友”这一每周两次的開發者的直播节目,在节目上讨论技術并与观众一起编写代碼。Jeff 撰写研讨会、主持演讲,并计划大型 Microsoft 開發者活動(包括 Microsoft Build、Microsoft Ignite、.NET Conf 和 Microsoft MVP Summit)的內容。 準備好開始了嗎? Nuget 下載 5,525,971 | 版本: 2026.3 剛剛發布 開始免費試用 免費 NuGet 下載 總下載量:5,525,971 查看許可證 還在捲動嗎? 想要快速證明? PM > Install-Package IronOcr 執行範例 觀看您的圖片變成可搜尋的文字。 免費 NuGet 下載 總下載量:5,525,971 查看許可證