Halcon OCR字符识别

create_text_model_reader创建一个文本模型描述要用于分割的文本find_text.

的parameter value文本分段方法的值为*'自动'* 和*'手动'*.

通常,参数模式应设置为*'自动'* 因为这种模式更稳定,需要更少 配置工作量。请注意,在这种情况下,还有一个 OCR 分类器 必须传入OCRClassifierMLP.仅当 以下限制适用,模式必须设置为*'手动'*:

  • 需要对点阵进行分割。

  • 文本的分段,其中 极性是必需的。例如,由于反射,雕刻的文本经常 具有很强的局部差异。

  • 没有合适的基于 MLP 的 OCR 分类器可用(见下文)。

如果模式 = '自动' ,find_text能够提取任意大小的文本。可以限制 搜索到具有特定属性的字符,请参阅set_text_model_param了解详情。 此外,必须传入 OCR 分类器OCRClassifierMLP. 此 OCR 分类器必须基于多层感知器 (MLP)。此外 强烈建议使用提供拒绝的 OCR 分类器 类(请参阅set_rejection_params_ocr_class_mlp) 并接受过培训 使用正则化参数(请参阅set_regularization_params_ocr_class_mlp).合适的 OCR classifier 可以使用create_ocr_class_mlpread_ocr_class_mlp.也可以传递 包含已存储的 OCR 分类器路径的字符串 跟write_ocr_class_mlp.

在以下情况下启用文本分段模式 = '手动' , 文本模型的合理参数,包括预期的 字符高度和宽度,必须使用set_text_model_param.在这种情况下,OCRClassifierMLP被忽略。

文本模型可以使用set_text_model_paramget_text_model_param.

由于在调用create_text_model_reader在以下操作中, model 应由运算符显式释放clear_text_model如 一旦它不再使用。

cs 复制代码
read_image (Image, 'E:/项目/电容/Image_20240311160353328.bmp')
cs 复制代码
gen_rectangle1 (ROI_0, 967.743, 3347.29, 1342.24, 3829.91)
dev_get_window (WindowHandle)
reduce_domain (Image, ROI_0, ImageReduced)
text_line_orientation (ROI_0, ImageReduced, 30, rad(-30), rad(30), OrientationAngle)
rotate_image (ImageReduced, ImageRotate, deg(-OrientationAngle+rad(180)), 'constant')
cs 复制代码
gen_rectangle1 (ROI_0, 2438.7, 1691.79, 2582.98, 1856.02)
reduce_domain (ImageRotate, ROI_0, ImageReduced1)
crop_domain (ImageReduced1, ImagePart)
cs 复制代码
get_image_size (ImagePart, Width, Height)
emphasize (ImagePart, ImageEmphasize, 17, 17, 3)
threshold (ImageEmphasize, Region, 0, 120)
region_to_bin (Region, BinImage, 0, 255, Width, Height)
cs 复制代码
create_text_model_reader ('auto', 'Universal_0-9A-Z+_Rej.occ', TextModel)
set_text_model_param (TextModel, 'min_stroke_width',3)
set_text_model_param (TextModel, 'min_char_height',20)
find_text (BinImage, TextModel, TextResultID)
get_text_object (Characters, TextResultID, 'all_lines')
get_text_result (TextResultID, 'class', Classes)
cs 复制代码
area_center (Characters, Area, Row, Column)
query_font (WindowHandle, Font)
* Specify font name and size
FontWithSize := Font[0]+'-40'

set_font (WindowHandle, FontWithSize)
disp_message (WindowHandle, Classes, 'image', Row-30, Column , 'green', 'false')

例2:

read_ocr_class_mlp读取已 存储于write_ocr_class_mlp.由于训练了 OCR 分类器可以消耗比较长的时间,分类器是 通常在离线进程中训练,并写入具有write_ocr_class_mlp.在在线流程中,分类器 读取 并随后用于 classification 替换为read_ocr_class_mlpdo_ocr_single_class_mlpdo_ocr_multi_class_mlp.

do_ocr_multi_class_mlp计算每个 区域给出的字符字符和灰色 值图像使用 OCR 分类器OCR汉德尔和 返回和相应的 中类的置信度(概率)信心. 与do_ocr_single_class_mlp,do_ocr_multi_class_mlp可以对多个字符进行分类 一次调用,因此通常比使用do_ocr_single_class_mlp对单个字符进行分类。 然而do_ocr_multi_class_mlp只能返回最好的 class 的 class 的 intent 值。因为置信度可以被解释 作为概率(参见classify_class_mlpevaluate_class_mlp),因此很容易检查 一个角色是否被归类为不确定性太大, 这通常不是缺点,除非 类重叠如此之多,以至于在许多情况下,第二好的类 必须进行检查才能决定字符的类别。 在这些情况下,do_ocr_single_class_mlp应该使用。 调用do_ocr_multi_class_mlp,则分类器必须为 训练trainf_ocr_class_mlp.

cs 复制代码
read_image (Image12, 'E:/Halcon数据/测量程序/OCR识别/12.png')
cs 复制代码
dev_get_window (WindowHandle)
gen_rectangle1 (ROI_0, 140.933, 176.767, 286.107, 660.934)
reduce_domain (Image12, ROI_0, ImageReduced)
threshold (ImageReduced, Region, 0, 100)
connection (Region, ConnectedRegions)
read_ocr_class_mlp ('DotPrint_NoRej', OCRHandle)
do_ocr_multi_class_mlp (ConnectedRegions, Image12, OCRHandle, Class, Confidence)
smallest_rectangle1 (ConnectedRegions, Row11, Column1, Row2, Column21)
query_font (WindowHandle, Font)
FontWithSize := Font[0]+'-60'
set_font (WindowHandle, FontWithSize)
disp_message (WindowHandle, Class, 'image', Row2+50, Column1, 'green', 'false')
相关推荐
冻柠檬飞冰走茶2 小时前
PTA基础编程题目集 7-11 分段计算居民水费(C语言实现)
c语言·开发语言·算法
得物技术2 小时前
推荐系统体验的数字化突破:得物自动化评测平台的技术实践|AICon 文章整理
算法·架构·llm
VALENIAN瓦伦尼安教学设备2 小时前
转子/行星/平行轴齿轮箱综合故障模拟实验台可复现常见机械问题
大数据·数据库·人工智能·嵌入式硬件·算法
rannn_1113 小时前
【力扣hot100】哈希表专题——从两数之和到最长连续序列
java·算法·leetcode·哈希
小保CPP3 小时前
OpenCV C++基于极值区域滤波算法的场景文本检测(OCR)
c++·人工智能·opencv·算法·计算机视觉·ocr
白驹_过隙3 小时前
【大模型OCR落地终极排坑:OvisOCR2+vLLM从报错到批量稳定部署全过程】
人工智能·ocr·vllm
来一碗刘肉面3 小时前
字符串模式匹配(朴素模式匹配算法与KMP算法)
数据结构·算法
dyxal4 小时前
eˣ 的泰勒展开式:从“化繁为简”到“万物统一”的微积分之美
算法
BetterFlow_CFD4 小时前
COMSOL声学仿真基础知识(二)
开发语言·算法·matlab
徐小夕15 小时前
花了一周,3亿tokens,我开源了一款 Word 文档智能审查平台,文稿自动质检+可视化分析,告别低效人工审核
前端·算法·github