数字化时代 HALCON 机器视觉软件字符识别程序全解析
在当下数字化的时代当中,机器视觉以及光学字符识别,也就是OCR技术的运用愈发广泛起来,从自动化生产线的质量把控方面,再到智能文档处理系统那里,这些技术均起着关键的作用。它身为一种先进的机器视觉软件,给出了强大的图像处理功能,能够去处理繁杂的视觉任务。接下来呈现的是针对一个运用来做字符识别以及显示的程序 。
程序概览
这一程序的主要目的在于依循特定流程从图像文件里辨别以及把基于特定规则辨析出的文本字符于图像之上予以呈现,此流程涵盖了对图像进行预先处理,将字符从彼此相连的整体中区分切割开来并展开辨析,还有把最终得出的结果于图像上进行展示这一系列操作,整个流程涉及到多道环节,有读取包含字符图案的图像文件,运用阈值分割方法把图像中不同区域区分开来,解析图像中相互连接的区域找出字符所在区域,对字符所在区域进行筛选并合并相近区域,把字符从合并后的区域中分割出来,对分割出的字符按一定顺序排列,对字符进行识别,最终把识别出的字符结果在图像上显示出来 。
[]
首先,程序对窗口参数以及字体进行了设置,以此为后续的图像显示以及文本显示做好相应准备,。
dev_update_off ();dev_close_window ();dev_open_window (0, 0[id_650436550] 512, 256, [id_2030501581], WindowHandle);set_display_font (WindowHandle, 30, 'mono', 'true', 'false');
这段代码将自动更新予以关闭,把所有已打开的窗口尽数关闭,新开启了一个窗口,该窗口的背景颜色为黑色,还对用于显示文本的字体样式以及字体大小进行了设置。
字体库的读取
而后,程序读取了一个字体库文件,该字体库对后续的字符识别而言至关重要 。
read_ocr_class_mlp ('字体.omc', OCRHandle);

字体库文件,名为字体.omc,当中包含了,用于OCR操作的,训练好的模型参数。
图像处理和字符识别
程序持续开展图像文件的读取工作,随后着手处理该图像文件。借助针对每个图像文件施行阈值分割之势态、连通域分析之举以及字符区域的筛选之行为,程序筛选出了潜在的字符区域。
list_files ('', ['files','follow_links'], ImageFiles);...将图像读取,把图像读取至,图像文件之中索引所对应的那个里面 。threshold (Image, Regions, 50, 140);建立关联,关联的对象是区域,以及连接起来的区域,;。Select_shape, 它涉及到 ConnectedRegions, 在此基础上产生 SelectedRegions, 。'area', 'and', 800, 3000);
接着,程序通过动态切分和排序,准备字符区域以供识别:
union1partition_dynamic区域联盟,被划分的,价值/ (此表述不太清晰完整,建议你补充更准确的需求以便能更好改写)。3, 30);sort_region这并不是一个完整的有意义的句子呀,请你提供完整的内容以便我按照要求进行改写 。'character', 'true', 'row');
最后,进行OCR识别,并在图像上显示识别的字符:
对多个类别执行光学字符识别的多层感知器,(对已排序区域、图像、光学字符识别处理程序、类别、置信度进行操作);。dev_clear_window ();dev_display(Image);dev_disp_text (Class, 'image', Row-150, Column-10, 'yellow', 'box', false);
资源的释放

在程序的最后,释放了OCR字体库句柄资源:
clear_ocr_class_mlp (OCRHandle);
完整代码
*字符显示*#设置窗口及程序参数dev_update_off ()dev_close_window ()dev_open_window (0, 0, 512, 256, 'black', WindowHandle)将显示的字体赋予窗口句柄进行设置,后面跟着括号,括号里是窗口句柄 。30, 'mono', 'true', 'false')*#读取字体库read_ocr_class_mlp ('字体.omc', OCRHandle)*#读图list_files ('', ['files','follow_links'], ImageFiles)选取元组正则表达式(图像文件,[),标点,标点,标点,标点,标点,。其结尾为点,而后跟着tif,或者tiff,或者gif,或者bmp,或者jpg,或者jpeg,或者jp2,或者png,或者pcx,或者pgm,或者ppm,或者pbm,或者xwd,或者ima,或者hobj,最后以$符号结束'。,'ignore_case'], ImageFiles)for Index := 0 to |ImageFiles| - 1 by 1读取图像,该图像源自图像文件列表中索引所对应位置的图像文件。*阈值分割threshold (Image, Regions, 50, 140)*连通域分析连接(区域,相连区域),区域,相连区域,连接它们,有连接关系,存在连接,连接着区域与相连区域 。*筛选字符区域'area' ,'and', 800, 3000)*合并操作将所选区域与区域联合相合并,联合1 ,(所选区域,区域联合) .*字符切分region_features (RegionUnion, 'width', Value)if(|Value|=0)dev_clear_window ()dev_display(Image)dev_disp_text ('未发现字符', 'window','top', 'left', 'red', 'box', false)continueendif3, 30)*字符排序不能明确你具体需求,你提供的内容似乎不完整,请补充完整以便准确改写 。'character', 'true', 'row')*字符识别针对SortedRegions来进行操作,对Image开展相关事宜,依托OCRHandle,获取Class,并计算Confidence,来执行do_ocr_multi_class_mlp 。*字符显示区域中心(已排序区域集合,面积,行索引,列索引),其中,区域中心是通过某种特定方式,依据已排序区域集合来确定的,该方式在考量面积的状况下,并与行索引以及列。dev_clear_window ()dev_display(Image)dev_disp_text (Class, 'image',Row-150, Column-10, 'yellow', 'box', false)stop ()endfor*#释放OCR句柄清理光学字符识别分类多层感知器,(它是)光学字符识别处理程序所具有的 。
需要字体和图像可私信


欢迎 你 发表评论: