Como Corrigir Cores de Imagem para Converter Imagem em Texto com IronOCR em C
Corrija cores de imagem em C# usando os métodos de binarização, escala de cinza, inversão e substituição de cores do IronOCR para melhorar a legibilidade e a leitura de texto. Leia cores de texto específicas para extração direcionada ao realizar reconhecimento óptico de caracteres.
Início Rápido: Isole Cores de Texto Específicas
Use o método SelectTextColor do IronOCR para focar a OCR em cores de texto específicas—não é necessária manipulação complexa de imagens. Carregue uma imagem, escolha a cor do texto e a tolerância, e extraia apenas esse texto para resultados de OCR precisos.
-
Instale IronOCR com o Gerenciador de Pacotes NuGet
PM > Install-Package IronOcr -
Copie e execute este trecho de código.
new IronTesseract().Read(new IronOcr.OcrImageInput("sample.jpg").SelectTextColor(new IronSoftware.Drawing.Color("#DB645C"), 60)); -
Implante para testar em seu ambiente de produção.
Comece a usar IronOCR em seu projeto hoje com uma avaliação gratuita
Como corrigir as cores da imagem para leitura em C#
- Baixe uma biblioteca C# para corrigir cores de imagem
- Importe o documento PDF e as imagens para leitura.
- Aplique efeitos de cor: binarização, escala de cinza, inversão e substituição de cores.
- Exporte a imagem corrigida para visualização.
- Leia cores de texto específicas usando `SelectTextColor`
Como Posso Binarizar uma Imagem para Melhorar o OCR?
A binarização converte imagens em formato de duas cores, tipicamente preto e branco. Isso separa o texto do fundo e reduz o ruído, tornando o texto mais distinto e fácil de ler.
Por Que a Binarização Melhora a Precisão do OCR?
Aplique binarização usando o método Binarize. O OCR funciona melhor com imagens de alto contraste com texto preto em fundos brancos. Este método cria uma distinção clara entre fundo e caracteres.
A binarização é excelente com documentos digitalizados que apresentam iluminação irregular ou ruído de fundo. O algoritmo analisa as imagens e determina os limiares ideais para separar o texto do primeiro plano do fundo. Para técnicas avançadas de pré-processamento, veja o guia de Filtros de Otimização de Imagem de OCR.
Qual É a Implementação de Código para Binarização?
: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");
Imports IronOcr
' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()
' Add image
Private imageInput = New OcrImageInput("sample.jpg")
' Apply binarize affect
imageInput.Binarize()
' Export the modified image
imageInput.SaveAsImages("binarize.jpg")
Para processamento em lote, combine binarização com outros filtros. Use o Assistente de Filtros para determinar a melhor combinação de filtros para suas imagens.
Como Posso Exportar e Comparar Resultados?
Exporte imagens modificadas usando o método SaveAsImages. Compare as imagens antes e depois da binarização abaixo.
Antes
Depois
Como Posso Converter Imagens para Escala de Cinza para Melhor Leitura?
Converter imagens para escala de cinza reduz a desordem visual e melhora a legibilidade. Isso ajuda quando as cores originais distraem do conteúdo.
Quando Devo Usar Escala de Cinza Em Vez de Outros Métodos?
Aplique escala de cinza usando o método ToGrayScale. O processo faz a média dos valores R, G e B.
A escala de cinza funciona bem com fundos coloridos ou marcas d'água que interferem no reconhecimento de texto. Ao contrário da binarização, a escala de cinza preserva detalhes em imagens com variações sutis. Use-a para fotografias com texto embutido ou layouts complexos. Para digitalizações de baixa qualidade, veja Corrigindo Digitalizações e Imagens de Baixa Qualidade.
Qual é o código simples para conversão em escala de cinza?
:path=/static-assets/ocr/content-code-examples/how-to/image-color-correction-grayscale-image.cs
// Apply grayscale affect
imageInput.ToGrayScale();
' Apply grayscale affect
imageInput.ToGrayScale()
Para qualidades de imagem variadas, combine escala de cinza com outras etapas de pré-processamento. A documentação da Classe OcrInput explica a encadeação de múltiplos filtros.
Como a escala de cinza se compara ao original?
Antes
Depois
Quando devo inverter as cores da imagem?
Inverter cores melhora o contraste. Converter texto branco em fundos pretos para texto preto em fundos brancos melhora a legibilidade.
Como implemento a inversão de cores?
Use o método Invert para inverter as cores. Passe um valor booleano para remover canais de cor e retornar em escala de cinza.
A inversão de cores lida com imagens negativas ou capturas de tela de temas escuros. Aplicativos modernos usam interfaces em modo escuro que desafiam o OCR tradicional. Inverter essas imagens garante o reconhecimento ótimo. Para vários tipos de imagem, veja o guia de Configuração Rápida de OCR.
:path=/static-assets/ocr/content-code-examples/how-to/image-color-correction-invert-image.cs
// Apply invert affect
imageInput.Invert();
' Apply invert affect
imageInput.Invert()
Para processamento em lote com tipos de documentos mistos, implemente a detecção automática de fundo escuro. Recursos de Visão Computacional no IronOCR identificam quando a inversão é necessária.
Qual é a diferença entre as opções de inversão?
Compare o método Invert com e sem escala de cinza:
Invertido
Invertido & em Escala de Cinza
Como posso substituir cores específicas em uma imagem?
Substitua cores específicas para destacar ou desvalorizar elementos. Use isso para melhorar a proeminência do texto ou corrigir contrastes problemáticos.
Por que a tolerância é importante na substituição de cores?
O método ReplaceColor requer a cor atual, nova cor e valor de tolerância. Maior tolerância lida melhor com imagens borradas.
A tolerância determina quão próximos os pixels devem corresponder à sua cor alvo. Valores baixos (0-50) são adequados para cores uniformes. Valores mais altos (100-200) lidam com texto anti-aliased ou artefatos de compressão. Isso ajuda com documentos digitalizados onde o sangramento de tinta ou textura do papel cria variações.
Como implemento a substituição de cores?
: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");
Imports IronOcr
' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()
' Add image
Private imageInput = New OcrImageInput("sample.jpg")
Private currentColor As New IronSoftware.Drawing.Color("#DB645C")
Private newColor As IronSoftware.Drawing.Color = IronSoftware.Drawing.Color.DarkCyan
' Replace color
imageInput.ReplaceColor(currentColor, newColor, 80)
' Export the modified image
imageInput.SaveAsImages("replaceColor")
Como lido com cenários avançados de substituição de cores?
Encadeie múltiplas substituições para cenários complexos:
/* :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);
Imports IronSoftware.Drawing
' Replace multiple colors in sequence
Using imageInput As New OcrImageInput("multi-color-document.jpg")
' Replace red text with black
imageInput.ReplaceColor(Color.Red, Color.Black, 70)
' Replace blue headers with dark gray
imageInput.ReplaceColor(Color.Blue, Color.DarkGray, 60)
' Replace light yellow background with white
imageInput.ReplaceColor(New Color("#FFFACD"), Color.White, 40)
' Perform OCR on the cleaned image
Dim result = ocrTesseract.Read(imageInput)
End Using
Para substituições de cores complexas, veja Filtros de Correção de Imagem para técnicas de pré-processamento adicionais.
Quais são os resultados visuais da substituição de cores?
Antes
Depois
Como leio apenas cores de texto específicas?
Leia cores de texto específicas usando o método SelectTextColor. Especifique a cor alvo e a tolerância (0-255). A tolerância representa as diferenças permitidas entre o pixel e a cor selecionada para valores R, G e B.
Como a tolerância de cor afeta os resultados?
: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);
Imports IronOcr
Imports System
' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()
' Add image
Private imageInput = New OcrImageInput("sample.jpg")
' Text color to focus on
Private focusColor As New IronSoftware.Drawing.Color("#DB645C")
' Specify which text color to read
imageInput.SelectTextColor(focusColor, 60)
' Perform OCR
Dim ocrResult As OcrResult = ocrTesseract.Read(imageInput)
' Output result to console
Console.WriteLine(ocrResult.Text)
Use a leitura seletiva de cor para formulários com seções codificadas por cores, extraindo texto destacado ou lendo mensagens de aviso específicas. Para extração de dados estruturados, veja Classe OcrResult para processamento avançado.
Qual saída posso esperar da seleção de cores?
O resultado do OCR lê apenas texto em cor laranja:
Como salvo PDFs modificados com filtros aplicados?
IronOCR salva PDFs modificados com ou sem filtros. O segundo parâmetro do método SaveAsSearchablePdf especifica se deve salvar com os filtros aplicados.
Qual é a implementação para PDFs pesquisáveis?
:path=/static-assets/ocr/content-code-examples/how-to/image-quality-correction-searchable-pdf.cs
using IronOcr;
// Create OCR engine: filters are applied at the OcrInput level, so no configuration changes are needed here
var ocr = new IronTesseract();
var ocrInput = new OcrInput();
// Load the scanned PDF as the OCR source
ocrInput.LoadPdf("invoice.pdf");
// Convert to grayscale: removes color noise that can reduce OCR accuracy on color-printed documents
ocrInput.ToGrayScale();
// Run OCR on the preprocessed input
OcrResult result = ocr.Read(ocrInput);
// Write the searchable PDF; true = embed the grayscale-filtered image rather than the original color scan
result.SaveAsSearchablePdf("outputGrayscale.pdf", true);
Imports IronOcr
' Create OCR engine: filters are applied at the OcrInput level, so no configuration changes are needed here
Dim ocr As New IronTesseract()
Dim ocrInput As New OcrInput()
' Load the scanned PDF as the OCR source
ocrInput.LoadPdf("invoice.pdf")
' Convert to grayscale: removes color noise that can reduce OCR accuracy on color-printed documents
ocrInput.ToGrayScale()
' Run OCR on the preprocessed input
Dim result As OcrResult = ocr.Read(ocrInput)
' Write the searchable PDF; True = embed the grayscale-filtered image rather than the original color scan
result.SaveAsSearchablePdf("outputGrayscale.pdf", True)
Quando devo aplicar filtros ao PDF salvo?
Aplique filtros ao criar documentos mais limpos e legíveis. Isso ajuda para fins de arquivamento ou compartilhamento de documentos em diferentes dispositivos. Veja Criar PDFs Pesquisa por OCR para mais informações.
Para documentos complexos com tabelas, explore Ler Tabela no Documento para extração especializada. Para processamento de alto volume, veja OCR Tesseract Multithreading para otimizar a aplicação do filtro em vários documentos.
Perguntas frequentes
Como posso corrigir cores de imagem ruins que afetam a precisão do OCR?
O IronOCR oferece diversos métodos de correção de cores, incluindo binarização, conversão para tons de cinza, inversão e substituição de cores. Esses filtros ajudam a melhorar a legibilidade do texto, aumentando o contraste entre o texto e o fundo, facilitando a extração precisa do texto em imagens com baixa qualidade de cor pelo mecanismo de OCR.
O que é binarização e quando devo usá-la para OCR?
A binarização converte imagens para um formato de duas cores (normalmente preto e branco) usando o método Binarize do IronOCR. É particularmente eficaz para documentos digitalizados com iluminação irregular ou ruído de fundo, pois cria uma distinção clara entre texto e fundo, analisando a imagem e determinando os limites ideais para a separação.
Como faço para extrair apenas um texto de cor específica de uma imagem?
O método SelectTextColor do IronOCR permite que você concentre o OCR em cores de texto específicas sem manipulação complexa de imagens. Basta especificar a cor de destino e o nível de tolerância - por exemplo, SelectTextColor(new IronSoftware.Drawing.Color("#DB645C"), 60) - para extrair apenas o texto nessa faixa de cores.
Quando devo converter imagens para escala de cinza em vez de usar a binarização?
Use o método ToGrayScale do IronOCR ao lidar com fundos coloridos ou marcas d'água que interferem no reconhecimento de texto. Ao contrário da binarização, a escala de cinza preserva detalhes em imagens com variações sutis, sendo ideal quando você precisa manter a qualidade da imagem e, ao mesmo tempo, reduzir a poluição visual.
Posso exportar as imagens corrigidas para visualizar os resultados dos filtros de cor?
Sim, o IronOCR oferece o método SaveAsImages para exportar imagens modificadas após a aplicação de correções de cor. Isso permite comparar os resultados antes e depois, ajudando você a determinar quais métodos de correção de cor funcionam melhor para suas imagens específicas.
Como posso determinar o melhor filtro de correção de cores para minhas imagens?
O IronOCR inclui uma ferramenta Assistente de Filtros que ajuda a determinar a combinação ideal de filtros para suas imagens. Para processamento em lote, você pode combinar vários filtros, como binarização, com outras técnicas de pré-processamento para obter os melhores resultados de OCR para o seu tipo de documento.

