如何使用 C# 中的 IronOCR 阅读 MICR 支票</35;
人工处理支票既慢又容易出错。 IronOCR通过专门的引擎简化了这一工作流程,该引擎可准确读取 MICR(磁性墨水字符识别)线,让您自动提取路由号码、帐号和其他关键数据。
快速入门:OCR 从支票图像读取 MICR
使用 IronOCR 快速抓取 MICR 行--只需将 Language 设置为 MICR,指定 MICR 文本出现的矩形区域,运行 Read() 并立即获取 result.Text 字符串。 非常适合希望以最少的设置提取可靠财务数据的开发人员。
立即开始使用 NuGet 创建 PDF 文件:
使用 NuGet 包管理器安装 IronOCR
复制并运行这段代码。
string micrText = new IronOcr.IronTesseract { Language = IronOcr.OcrLanguage.MICR }.Read(new IronOcr.OcrInput().LoadImage("micr.png", new System.Drawing.Rectangle(125, 240, 310, 15))).Text;部署到您的生产环境中进行测试
最小工作流程(5 个步骤)
- 下载用于读取 MICR 支票的 C# 库
- 实例化 OCR 引擎
- 将
Language设置设为 MICR - 使用
Read方法从样本支票图像中提取数据 - 访问OcrResult属性以查看和操作提取的数据
如何从支票图像中读取 MICR 数据? 使用 IronOCR 阅读 MICR 行既简单又直观。首先将 `IronTesseract` 实例的 `Language` 属性设置为 `OcrLanguage.Micr`。 为确保引擎读取正确的区域,请通过在 `OcrInput` 上设置矩形边界来指定 MICR 行的位置。 具体方法是选择 x 和 y 坐标以及边界框矩形的高度和宽度,然后在调用 `Load` 方法时将矩形作为第二个参数传递。 调用`Read`方法后,只会处理这个已定义的区域。 MICR 语言设置与特定区域的这种结合保证了 IronOCR 能够准确提取相关的财务信息。 MICR 技术使用特殊的磁性墨水和独特的字体(北美为 E-13B),其中包含 14 个字符:数字 0-9 和四个特殊符号。 这些符号包括中转符号 (⑆),用于标记路由编号的边界; on-us 符号 (⑈),用于将帐号与其他数据分开; 金额符号 (⑊),用于编码金额; 以及作为分隔符的破折号 (⑉)。 这种油墨的磁性使其即使在支票折叠、盖章或轻微损坏的情况下也能可靠读取,因此 MICR 是大批量支票处理的理想选择。MICR 支票看起来像什么? 。MICR 行包含哪些信息? **支票号码**:此号码用于唯一标识账户持有人支票簿中的特定支票。 它为追踪个人付款和维护交易记录提供了清晰的参考依据。 在自动处理系统中,支票号码有助于防止重复处理并协助对账程序。 **路由号码**:这个九位数的代码,用⑆符号括起来,用于识别持有该账户的金融机构。 这是清算机构用来将支票发送到正确银行进行付款的第一条信息。 路由号码遵循特定的格式:前四位数字表示美联储路由符号,后四位数字表示机构,最后一位数字是校验和,用于验证。 **账号**:用于识别将从中提取资金的特定客户账户。 其长度因银行而异,通常在 10 到 12 位数之间。 银行可能会在账号结构中包含内部代码或分支机构标识符。提取 MICR 数据需要哪些代码? ```csharp :path=/static-assets/ocr/content-code-examples/how-to/read-micr-cheque.cs ``` 代码演示了[MICR 支票处理](https://ironsoftware.com/csharp/ocr/examples/read-micr-cheque/)的完整工作流程。 在运行此代码之前,请确保您已通过 NuGet 安装了 MICR 语言包。 [OcrInput 类](https://ironsoftware.com/csharp/ocr/examples/csharp-ocr-input-for-irontesseract/)为加载和预处理图像提供了强大的方法,而 Rectangle 参数则允许精确定位 MICR 线位置。我应该期待什么样的结果?
上面的输出显示了从 MICR 支票中获得的三个部分:过境号码、路由号码和账号。 请注意特殊 MICR 符号在输出中的表示方式--这是正常现象,因为这些符号有特定的 Unicode 表示法,在控制台输出中可能会有不同的显示方式。 #### MICR OCR 结果 `OcrResult`对象提供有关扫描的详细信息: **文本**:从 `OcrInput` 中提取的文本。 这包括 MICR 行中的所有字符和符号,并保持其原始顺序。 **置信度**:表示平均每个字符的统计准确性置信度,1 为最高,0 为最低。对于 MICR 读取,由于采用标准化字体设计,置信度通常高于 0.9。 了解有关[跟踪 OCR 结果](https://ironsoftware.com/csharp/ocr/how-to/tesseract-result-confidence/)的更多信息。 **块、段、行和单词**:识别文本的层次结构,对于 MICR 而言,通常由单行和由符号分隔的多个单词段组成。 **条形码数据**:在处理 MICR 时,IronOCR 可同时检测支票上存在的任何 [ 条形码或 QR 码](https://ironsoftware.com/csharp/ocr/examples/csharp-ocr-barcodes/)。如何验证 OCR 区域的正确性? 为了确保您已为 MICR 线选择了正确的坐标,您可以可视化您定义的**ContentArea** 。 一个简单的方法是在输入图像上绘制矩形,然后使用`StampCropRectangleAndSaveAs`将其另存为新文件。 这有助于您调试和微调坐标,以获得最佳性能。 要找到矩形的坐标,请使用 MS Paint 等简单的图像编辑器。 打开您的支票图像,将鼠标悬停在 MICR 线的左上角和右下角,并记下 `(x,y)` 像素坐标。 然后,您可以计算矩形的属性:`(x1, y1, width, height)` 其中 `width = x2-x1` 和 `height = y2-y1`。 有关更高级的区域选择技术,请浏览 [OCR 区域定位](https://ironsoftware.com/csharp/ocr/how-to/ocr-region-of-an-image/) 和 [ PDF 内容区域](https://ironsoftware.com/csharp/ocr/troubleshooting/crop-regions-rectangles/)。 这是在示例支票上绘制指定边界框后的输出图像。 #### 输出
浅蓝色矩形表示我们已经正确分离出 MICR 线进行处理。 ### 性能优化技巧 在处理多个检查时,请考虑实施[多线程以提高性能](https://ironsoftware.com/csharp/ocr/examples/csharp-tesseract-multithreading-for-speed/)。 IronOCR 可高效处理并发操作: ```csharp // Process multiple cheques in parallel var chequeFiles = Directory.GetFiles("cheques/", "*.png"); Parallel.ForEach(chequeFiles, file => { using (var ocr = new IronTesseract { Language = OcrLanguage.MICR }) using (var input = new OcrInput()) { input.LoadImage(file, micrRegion); var result = ocr.Read(input); ProcessMicrData(result.Text); } }); ``` ### 常见故障排除场景 **低质量扫描**:如果您使用的是质量较差的检查图像,请应用[图像预处理过滤器](https://ironsoftware.com/csharp/ocr/examples/ocr-low-quality-scans-tesseract/)以提高可读性。 MICR 字体的独特形状有助于在图像质量下降的情况下保持准确性。 **字符识别错误**:确保您安装了最新的 MICR 语言包。 专门的[MICR 语言配置](https://ironsoftware.com/csharp/ocr/troubleshooting/financial-language-pack/)经过专门训练,可识别 E-13B 字体。 **可变的 MICR 线位置**:不同银行的 MICR 线位置可能略有不同。 考虑实施动态区域检测或维护一个包含不同检查格式坐标的配置文件。 ### 相关财务文档处理 IronOCR 的功能不仅限于检查处理。 探索这些相关功能,实现全面的财务文档自动化: - [从扫描发票中提取数据](https://ironsoftware.com/csharp/ocr/examples/read-scanned-document/) - [处理身份证件](https://ironsoftware.com/csharp/ocr/examples/read-passport/)以符合 KYC 合规性要求 - [阅读财务报表中的表格](https://ironsoftware.com/csharp/ocr/examples/read-table-in-document/) 通过 IronOCR 掌握 MICR 读取,您就迈出了实现全自动财务文档处理的第一步,减少了手动输入错误,大大加快了工作流程。
MICR 行包含哪些信息? **支票号码**:此号码用于唯一标识账户持有人支票簿中的特定支票。 它为追踪个人付款和维护交易记录提供了清晰的参考依据。 在自动处理系统中,支票号码有助于防止重复处理并协助对账程序。 **路由号码**:这个九位数的代码,用⑆符号括起来,用于识别持有该账户的金融机构。 这是清算机构用来将支票发送到正确银行进行付款的第一条信息。 路由号码遵循特定的格式:前四位数字表示美联储路由符号,后四位数字表示机构,最后一位数字是校验和,用于验证。 **账号**:用于识别将从中提取资金的特定客户账户。 其长度因银行而异,通常在 10 到 12 位数之间。 银行可能会在账号结构中包含内部代码或分支机构标识符。提取 MICR 数据需要哪些代码? ```csharp :path=/static-assets/ocr/content-code-examples/how-to/read-micr-cheque.cs ``` 代码演示了[MICR 支票处理](https://ironsoftware.com/csharp/ocr/examples/read-micr-cheque/)的完整工作流程。 在运行此代码之前,请确保您已通过 NuGet 安装了 MICR 语言包。 [OcrInput 类](https://ironsoftware.com/csharp/ocr/examples/csharp-ocr-input-for-irontesseract/)为加载和预处理图像提供了强大的方法,而 Rectangle 参数则允许精确定位 MICR 线位置。我应该期待什么样的结果?
上面的输出显示了从 MICR 支票中获得的三个部分:过境号码、路由号码和账号。 请注意特殊 MICR 符号在输出中的表示方式--这是正常现象,因为这些符号有特定的 Unicode 表示法,在控制台输出中可能会有不同的显示方式。 #### MICR OCR 结果 `OcrResult`对象提供有关扫描的详细信息: **文本**:从 `OcrInput` 中提取的文本。 这包括 MICR 行中的所有字符和符号,并保持其原始顺序。 **置信度**:表示平均每个字符的统计准确性置信度,1 为最高,0 为最低。对于 MICR 读取,由于采用标准化字体设计,置信度通常高于 0.9。 了解有关[跟踪 OCR 结果](https://ironsoftware.com/csharp/ocr/how-to/tesseract-result-confidence/)的更多信息。 **块、段、行和单词**:识别文本的层次结构,对于 MICR 而言,通常由单行和由符号分隔的多个单词段组成。 **条形码数据**:在处理 MICR 时,IronOCR 可同时检测支票上存在的任何 [ 条形码或 QR 码](https://ironsoftware.com/csharp/ocr/examples/csharp-ocr-barcodes/)。如何验证 OCR 区域的正确性? 为了确保您已为 MICR 线选择了正确的坐标,您可以可视化您定义的**ContentArea** 。 一个简单的方法是在输入图像上绘制矩形,然后使用`StampCropRectangleAndSaveAs`将其另存为新文件。 这有助于您调试和微调坐标,以获得最佳性能。 要找到矩形的坐标,请使用 MS Paint 等简单的图像编辑器。 打开您的支票图像,将鼠标悬停在 MICR 线的左上角和右下角,并记下 `(x,y)` 像素坐标。 然后,您可以计算矩形的属性:`(x1, y1, width, height)` 其中 `width = x2-x1` 和 `height = y2-y1`。 有关更高级的区域选择技术,请浏览 [OCR 区域定位](https://ironsoftware.com/csharp/ocr/how-to/ocr-region-of-an-image/) 和 [ PDF 内容区域](https://ironsoftware.com/csharp/ocr/troubleshooting/crop-regions-rectangles/)。 这是在示例支票上绘制指定边界框后的输出图像。 #### 输出
浅蓝色矩形表示我们已经正确分离出 MICR 线进行处理。 ### 性能优化技巧 在处理多个检查时,请考虑实施[多线程以提高性能](https://ironsoftware.com/csharp/ocr/examples/csharp-tesseract-multithreading-for-speed/)。 IronOCR 可高效处理并发操作: ```csharp // Process multiple cheques in parallel var chequeFiles = Directory.GetFiles("cheques/", "*.png"); Parallel.ForEach(chequeFiles, file => { using (var ocr = new IronTesseract { Language = OcrLanguage.MICR }) using (var input = new OcrInput()) { input.LoadImage(file, micrRegion); var result = ocr.Read(input); ProcessMicrData(result.Text); } }); ``` ### 常见故障排除场景 **低质量扫描**:如果您使用的是质量较差的检查图像,请应用[图像预处理过滤器](https://ironsoftware.com/csharp/ocr/examples/ocr-low-quality-scans-tesseract/)以提高可读性。 MICR 字体的独特形状有助于在图像质量下降的情况下保持准确性。 **字符识别错误**:确保您安装了最新的 MICR 语言包。 专门的[MICR 语言配置](https://ironsoftware.com/csharp/ocr/troubleshooting/financial-language-pack/)经过专门训练,可识别 E-13B 字体。 **可变的 MICR 线位置**:不同银行的 MICR 线位置可能略有不同。 考虑实施动态区域检测或维护一个包含不同检查格式坐标的配置文件。 ### 相关财务文档处理 IronOCR 的功能不仅限于检查处理。 探索这些相关功能,实现全面的财务文档自动化: - [从扫描发票中提取数据](https://ironsoftware.com/csharp/ocr/examples/read-scanned-document/) - [处理身份证件](https://ironsoftware.com/csharp/ocr/examples/read-passport/)以符合 KYC 合规性要求 - [阅读财务报表中的表格](https://ironsoftware.com/csharp/ocr/examples/read-table-in-document/) 通过 IronOCR 掌握 MICR 读取,您就迈出了实现全自动财务文档处理的第一步,减少了手动输入错误,大大加快了工作流程。
我应该期待什么样的结果?
上面的输出显示了从 MICR 支票中获得的三个部分:过境号码、路由号码和账号。 请注意特殊 MICR 符号在输出中的表示方式--这是正常现象,因为这些符号有特定的 Unicode 表示法,在控制台输出中可能会有不同的显示方式。 #### MICR OCR 结果 `OcrResult`对象提供有关扫描的详细信息: **文本**:从 `OcrInput` 中提取的文本。 这包括 MICR 行中的所有字符和符号,并保持其原始顺序。 **置信度**:表示平均每个字符的统计准确性置信度,1 为最高,0 为最低。对于 MICR 读取,由于采用标准化字体设计,置信度通常高于 0.9。 了解有关[跟踪 OCR 结果](https://ironsoftware.com/csharp/ocr/how-to/tesseract-result-confidence/)的更多信息。 **块、段、行和单词**:识别文本的层次结构,对于 MICR 而言,通常由单行和由符号分隔的多个单词段组成。 **条形码数据**:在处理 MICR 时,IronOCR 可同时检测支票上存在的任何 [ 条形码或 QR 码](https://ironsoftware.com/csharp/ocr/examples/csharp-ocr-barcodes/)。如何验证 OCR 区域的正确性? 为了确保您已为 MICR 线选择了正确的坐标,您可以可视化您定义的**ContentArea** 。 一个简单的方法是在输入图像上绘制矩形,然后使用`StampCropRectangleAndSaveAs`将其另存为新文件。 这有助于您调试和微调坐标,以获得最佳性能。 要找到矩形的坐标,请使用 MS Paint 等简单的图像编辑器。 打开您的支票图像,将鼠标悬停在 MICR 线的左上角和右下角,并记下 `(x,y)` 像素坐标。 然后,您可以计算矩形的属性:`(x1, y1, width, height)` 其中 `width = x2-x1` 和 `height = y2-y1`。 有关更高级的区域选择技术,请浏览 [OCR 区域定位](https://ironsoftware.com/csharp/ocr/how-to/ocr-region-of-an-image/) 和 [ PDF 内容区域](https://ironsoftware.com/csharp/ocr/troubleshooting/crop-regions-rectangles/)。 这是在示例支票上绘制指定边界框后的输出图像。 #### 输出
浅蓝色矩形表示我们已经正确分离出 MICR 线进行处理。 ### 性能优化技巧 在处理多个检查时,请考虑实施[多线程以提高性能](https://ironsoftware.com/csharp/ocr/examples/csharp-tesseract-multithreading-for-speed/)。 IronOCR 可高效处理并发操作: ```csharp // Process multiple cheques in parallel var chequeFiles = Directory.GetFiles("cheques/", "*.png"); Parallel.ForEach(chequeFiles, file => { using (var ocr = new IronTesseract { Language = OcrLanguage.MICR }) using (var input = new OcrInput()) { input.LoadImage(file, micrRegion); var result = ocr.Read(input); ProcessMicrData(result.Text); } }); ``` ### 常见故障排除场景 **低质量扫描**:如果您使用的是质量较差的检查图像,请应用[图像预处理过滤器](https://ironsoftware.com/csharp/ocr/examples/ocr-low-quality-scans-tesseract/)以提高可读性。 MICR 字体的独特形状有助于在图像质量下降的情况下保持准确性。 **字符识别错误**:确保您安装了最新的 MICR 语言包。 专门的[MICR 语言配置](https://ironsoftware.com/csharp/ocr/troubleshooting/financial-language-pack/)经过专门训练,可识别 E-13B 字体。 **可变的 MICR 线位置**:不同银行的 MICR 线位置可能略有不同。 考虑实施动态区域检测或维护一个包含不同检查格式坐标的配置文件。 ### 相关财务文档处理 IronOCR 的功能不仅限于检查处理。 探索这些相关功能,实现全面的财务文档自动化: - [从扫描发票中提取数据](https://ironsoftware.com/csharp/ocr/examples/read-scanned-document/) - [处理身份证件](https://ironsoftware.com/csharp/ocr/examples/read-passport/)以符合 KYC 合规性要求 - [阅读财务报表中的表格](https://ironsoftware.com/csharp/ocr/examples/read-table-in-document/) 通过 IronOCR 掌握 MICR 读取,您就迈出了实现全自动财务文档处理的第一步,减少了手动输入错误,大大加快了工作流程。


常见问题解答
什么是 MICR,为什么它对支票处理很重要?
MICR(磁性墨水字符识别)是一种使用特殊磁性墨水和独特字体对支票上的金融信息进行编码的技术。IronOCR 的专用 MICR 引擎可以准确读取这些编码数据,包括路由号码、账号和支票号码,将原本缓慢且容易出错的人工流程自动化。
如何配置 OCR 引擎以读取 MICR 文本?
要使用 IronOCR 阅读 MICR 文本,需要将 IronTesseract 实例的语言属性设置为 OcrLanguage.MICR。这样,引擎就会使用专门为读取支票上使用的 E-13B 字体而设计的 MICR 字符识别算法。
我能否明确指定在支票的哪个位置查找 MICR 数据?
是的,IronOCR 允许您通过在 OcrInput 上设置矩形边界来指定 MICR 线的准确位置。您可以通过选择 x 和 y 坐标以及边界框矩形的高度和宽度来定义,然后在调用加载方法时将其作为第二个参数传递。
MICR 编码中使用了哪些特殊字符?
MICR 共使用 14 个字符:数字 0-9 和四个特殊符号。其中包括用于路由号码边界的中转符号 (⑆)、用于分隔账号的 on-us 符号 (⑈)、用于编码金额的金额符号 (⑊),以及作为分隔符的破折号 (⑉)。IronOCR 可以识别所有这些 MICR 专用字符。
如何快速从支票图像中提取 MICR 数据?
使用 IronOCR,只需一行代码就能提取 MICR 数据。只需创建一个语言设置为 MICR 的 IronTesseract 实例,加载指定了 MICR 区域的图片,调用 Read(),然后访问 result.Text 属性,即可立即获得提取的 MICR 字符串。
可以从 MICR 行中提取哪些类型的财务信息?
IronOCR 可以提取 MICR 行中编码的所有关键财务数据,包括路由号(识别银行)、账号(识别特定账户)和支票号码(唯一识别单张支票)。这种自动提取可简化金融文档处理。






