
Halcon学习笔记
BoomBiuBiu
一名在广州读研的大学生,一起学习~
展开
-
基于Halcon学习的缺陷检测【五】光伏电池片的指纹以及划痕检测【第二种方法】
此例子主要是为了把光伏电池片的指纹以及划痕标注出来。总代码:*读取图片read_image (Image, 'E:/研究生学习/电池片练习/手指印/截图.png')*清除窗口dev_clear_window ()*打开新的窗口dev_open_window (0, 0, 512, 512, 'black', WindowHandle)*获得图片的大小get_image_size (Image, Width, Height)*适应窗口dev_set_part (0, 0,...原创 2022-04-09 12:04:35 · 1628 阅读 · 0 评论 -
基于Halcon学习的缺陷检测【四】光伏电池片的指纹以及划痕检测【第一种方法】
此例子主要是为了把光伏电池片的指纹以及划痕标注出来。总代码:*读取图片read_image (Image, 'E:/研究生学习/电池片练习/手指印/截图.png')*清除窗口dev_clear_window ()*打开新的窗口dev_open_window (0, 0, 512, 512, 'black', WindowHandle)*获得图片的大小get_image_size (Image, Width, Height)*适应窗口dev_set_part (0, 0, H..原创 2022-04-09 10:05:25 · 2174 阅读 · 3 评论 -
基于Halcon学习的缺陷检测【二】surface_scratch.hdev
该程序显示了通过局部阈值和形态学后处理提取表面划痕总代码:dev_update_off ()dev_close_window ()* * Step 1: Acquire image* *读取图片read_image (Image, 'surface_scratch')*得到图片的宽高get_image_size (Image, Width, Height)*打开窗口dev_open_window_fit_image (Image, 0, 0, Width, Widt.原创 2022-03-23 11:06:39 · 3964 阅读 · 0 评论 -
基于Halcon学习的缺陷检测【一】detect_mura_blur.hdev
这个例子展示了如何在模糊图像中检测mura缺陷总代码:*频域+差分+空间域dev_close_window ()dev_update_off ()Path := 'lcd/mura_defects_blur_'read_image (Image, Path + '01')get_image_size (Image, Width, Height)dev_open_window_fit_size (0, 0, Width, Height, 640, 480, WindowHandle).原创 2022-03-22 19:59:15 · 898 阅读 · 0 评论 -
基于Halcon学习的二维码识别【十一】ecc200_training.hdev
该示例程序演示了如何为一类ECC 200数据矩阵符号训练2d数据模型,以及如何在训练前后获得模型参数值;此外,还展示了如何将经过训练的数据代码模型写入文件,以及如何读取保存的数据代码模型,然后使用该模型在一系列图像中查找所有ECC200符号。总代码:*初始化图像路径和视觉设置dev_update_off ()dev_close_window ()*图片路径定义ImageFiles := 'datacode/ecc200/ecc200_cpu_0'*变量定义ImageNum :.原创 2022-02-28 10:45:26 · 3571 阅读 · 0 评论 -
基于Halcon学习的二维码识别【十】ecc200_small_modules_robustness.hdev
这个示例程序演示了如何查找和解码模块尺寸非常小的ECC200符号。要成功读取这些符号,参数'small_modules_robustness'默认设置为“低”,必须设置为“高”。此外,参数'module_size_min'必须设置为预期的最小模块大小,在这种情况下设置为值1。为了显示参数“小模块”的影响,在数据代码读取器上,操作员find_data_code_2d被调用两次,参数设置不同。总代码:*更新状态设为offdev_update_off ()*关闭窗口dev_close_w.原创 2022-02-28 09:31:13 · 1001 阅读 · 0 评论 -
基于Halcon学习的二维码识别【九】ecc200_finder_pattren_tolerance.hdev
这个示例程序展示了如何在严重干扰查找器模式的情况下读取ECC200符号。在本例中,finder图案的一面或多面变形。因此,使用包含具有类似干扰的ECC200符号的一些示例图像来训练数据代码模型。然后用于查找数据代码。请注意,您也可以使用运算符将参数“finder_pattern_tolerance”设置为“high”总代码:*初始化图像路径和视觉设置*更新状态设为offdev_update_off ()*关闭窗口dev_close_window ()*定义图片的路径Im..原创 2022-02-27 17:25:02 · 2360 阅读 · 0 评论 -
基于Halcon学习的二维码识别【八】ecc200_contrast_tolerance.hdev
此示例演示了ECC200读卡器的参数“对比度公差”参数的影响如果'contrast_tolerance'”设置为“高”,ECC200读卡器对符号内的局部对比度变化更宽容。这是通过内部预处理实现的。如果'contrast_tolerance'设置为“低”,则省略此预处理步骤。如果'contrast_tolerance'设置为“任意”,则读取器会尝试两种模式。请注意,“对比度公差”也包括在ECC200读卡器的训练模式中。总代码:*更新状态设为offdev_update_off ()*关闭窗.原创 2022-02-27 16:03:33 · 1124 阅读 · 0 评论 -
基于Halcon学习的二维码识别【七】2d_data_codes_rectify_symbol.hdev
这个程序演示了如何通过校正预处理来读取倾斜的二维码总代码:*更新状态设为offdev_update_off ()dev_close_window ()* Get the image and display it*获取图像并显示它read_image (Image_slanted, 'datacode/ecc200/ecc200_to_preprocess_001')*打开自适应图片的窗口dev_open_window_fit_image (Image_slanted, 0, .原创 2022-02-27 11:16:34 · 2013 阅读 · 0 评论 -
基于Halcon学习的二维码识别【六】pdf417_bottle.hdev
本程序演示如何读取PDF 417类型的二维数据代码。总代码:*更新状态设为offdev_update_off ()dev_close_window ()*读取图片read_image (Image, 'datacode/pdf417/pdf417_bottle_01')*打开自适应图片的窗口dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)set_display_font (WindowHandle, 16.原创 2022-02-27 09:59:08 · 689 阅读 · 0 评论 -
基于Halcon学习的二维码识别【五】2d_data_codes_default_settings.hdev
该程序演示了如何使用标准识别、增强识别和最大识别的三种基本默认设置读取二维数据代码。在第一步中,您可以选择要处理的符号类型。然后获得相应的图像,并为每个默认设置创建数据代码模型。在下一步中,使用每个生成的数据代码模型在相应的图像中搜索每个符号类型的数据代码,结果显示在图形窗口中。总代码:*初始化视觉设置*更新状态设为offdev_update_off ()dev_close_window ()*打开窗口dev_open_window (0, 0, 512, 512, 'blac.原创 2022-02-27 09:39:45 · 1539 阅读 · 0 评论 -
基于Halcon学习的二维码识别【四】2d_data_codes_minimize_noise.hdev
这个程序演示了如何预处理带有间隙、不同颜色的模块和扭曲的安静区的符号总代码:*更新状态设为offdev_update_off ()dev_close_window ()* Get the image and display it*获取图像并显示*读取图片read_image (Image, 'datacode/ecc200/ecc200_to_preprocess_004')*打开自适应图片的窗口dev_open_window_fit_image (Image, 0, 0, -.原创 2022-02-26 21:40:20 · 743 阅读 · 0 评论 -
基于Halcon学习的二维码识别【三】2d_data_codes_minimize_module_gaps.hdev
该程序演示了如何通过灰度值形态学最小化模块之间的大间隙,以便找到并解码二维数据代码符号总代码:*更新状态设为offdev_update_off ()dev_close_window ()* * Get the image and display it*获取图像并显示*读取图片read_image (Image, 'datacode/ecc200/ecc200_to_preprocess_003')*打开自适应图片的窗口dev_open_window_fit_image (I.原创 2022-02-26 20:30:56 · 1212 阅读 · 0 评论 -
基于Halcon学习的二维码识别【二】aztec_simple.hdev
此示例程序演示如何读取符号类型为“Aztec代码”的二维数据代码。在第一步中,创建一个数据代码模型。在下一步中,将读取数据代码,并在图形窗口中显示结果。请注意,有些符号无法使用标准默认参数找到。原因可能是:-对比度太低;-有些符号是明暗印刷的,标准型号不包括这些符号-符号太大(>48x48模块);-模块打印为未连接的小点总代码:*初始化图像路径和视觉设置dev_update_off ()dev_close_window ()*图片路径定义ImageFiles := 'd.原创 2022-02-26 16:39:16 · 732 阅读 · 0 评论 -
基于Halcon学习的二维码识别【一】micro_qr_simple.hdev
此示例程序演示如何读取符号类型为“Micro QR Code”的二维数据代码。在第一步中,创建一个数据代码模型。在下一步中,将读取数据代码,并在图形窗口中显示结果。请注意,有些符号无法使用标准默认参数找到。原因可能是:-对比度太低-一些符号是明暗打印的,标准型号没有覆盖-符号太大(>48x48模块)-模块打印为未连接的小点总代码:*初始化图像路径和视觉设置dev_update_off ()dev_close_window ()*图片路径定义ImageFiles := 'da.原创 2022-02-26 16:00:52 · 1261 阅读 · 0 评论 -
基于Halcon学习的二维码识别----常用调用算子流程
1、create_data_code_2d_model【创建二维码模型句柄】2、set_data_code_2d_param【设置参数】3、find_data_code_2d【寻找二维码】4、clear_data_code_2d_model【释放二维码阅读器分配的内存】中间结果获取:1、get_data_code_2d_object【获得一些候选区域】2、get_bar_code_param【获取一个或多个描述条形码模型的参数】3、get_data_code_2d_res..原创 2022-02-26 15:35:08 · 733 阅读 · 0 评论 -
基于Halcon学习的一维码识别----常用调用算子流程
1、create_bar_code_model【创建一维码模型句柄】2、set_bar_code_param【设置参数】3、find_bar_code【寻找条形码】4、clear_bar_code_model【释放条形码阅读器分配的内存】中间结果获取:1、get_bar_code_object【获得一些候选区域】2、get_bar_code_param【获取一个或多个描述条形码模型的参数】3、get_bar_code_result【获得一些码制】...原创 2022-02-26 15:31:01 · 432 阅读 · 0 评论 -
基于Halcon学习的一维码识别【三十三】barcode_param_orientation.hdev
本例显示了条形码参数的使用:方向和全部方向总代码:*创建条形码阅读器create_bar_code_model ([], [], BarCodeHandle)* 设置参数--最小黑条或者白条的像素为1.5set_bar_code_param (BarCodeHandle, 'element_size_min', 1.5)* * Initialization*初始化dev_update_off ()dev_close_window ()*读取图片read_image (Im.原创 2022-02-26 11:52:42 · 486 阅读 · 0 评论 -
基于Halcon学习的一维码识别【三十二】barcode_param_stop_after_result_num.hdev
本例显示了条形码参数'stop_after_result_num',如果已知预期条形码的数量,则使用该参数可以缩短解码时间。总代码:*关闭窗口dev_close_window ()dev_open_window (0, 0, 640, 480, 'white', WindowHandle)set_display_font (WindowHandle, 16, 'mono', 'true', 'false')dev_update_off ()*设置边缘描绘dev_set_draw .原创 2022-02-26 10:41:44 · 639 阅读 · 0 评论 -
基于Halcon学习的一维码识别【三十一】barcode_param_width_height.hdev
此示例演示如何使用条形码参数“barcode_height_min”和“barcode_width_min”用于缩小检测到的候选区域的数量,在这些候选区域中搜索可能的条形码。如果条形码类型、编码字符数等因素在整个应用过程中保持不变,则特别建议使用此选项。然后,手动调整这些参数可以提高速度和鲁棒性。为了说明参数的效果,在设置每个参数之前和之后显示检测到的候选区域。结果表明,当手动调整参数时,潜在候选区域的数量减少。总代码:* Initializationdev_update_off ()de.原创 2022-02-26 09:41:44 · 678 阅读 · 0 评论 -
基于Halcon学习的一维码识别【三十】defect_barcode.hdev
这个示例程序显示了条形码阅读器读取缺陷条形码的能力密码。这是通过人工移除条形码中不同程度的空格来实现的。该空间只是用一个对应于周围条形的灰色值进行了叠加。总代码:dev_update_pc ('off')dev_update_window ('off')dev_update_var ('off')*读取图片read_image (Image, 'barcode/code39/code3904')get_image_size (Image, Width, Height)dev_cl.原创 2022-02-25 22:52:13 · 556 阅读 · 0 评论 -
基于Halcon学习的一维码识别【二十九】decode_bar_code_rectangle2.hdev
此示例演示如何使用运算符decode_bar_code_rectangle2.通过简单的分割提取条形码区域并将返回的矩形2参数传递给操作者decode_bar_code_rectangle2.总代码:* Initialize variables*初始化变量Directory := 'barcode/ean13/'TeaBoxRegExp := '.*tea_box.*'* * Initialize settings*初始化设置dev_update_window ('off').原创 2022-02-25 22:21:41 · 671 阅读 · 0 评论 -
基于Halcon学习的一维码识别【二十八】circular_barcode.hdev
*设置窗口的尺寸dev_set_window_extents (-1, -1, WidthPolar / 2, HeightPolar)阅读环形打印的条形码。总代码:*更新状态dev_update_off ()*获取HALCON系统参数的当前值。get_system ('clip_region', Information)*设置HALCON系统参数。set_system ('clip_region', 'true')read_image (Image, 'circular_..原创 2022-02-25 21:34:04 · 755 阅读 · 0 评论 -
基于Halcon学习的一维码识别【二十七】grid_rectification.hdev
本例说明了如何使用运算符进行网格校正。下面的命令创建一个postscript文件,它包含了修正网格。这个网格一定是印刷品。然后必须将其安装在物体表面总代码:WidthOfGrid := 0.17NumSquares := 17*生成描述校正网格的PostScript文件。create_rectification_grid (WidthOfGrid, NumSquares, 'rectification_grid.ps')* * Read the image of the obj..原创 2022-02-25 10:02:19 · 1937 阅读 · 0 评论 -
基于Halcon学习的一维码识别【二十六】inspect_scanlines.hdev
这个程序演示了条形码扫描线的可视化。这种可视化可用于检查图像质量,其中遮挡或打印缺陷可能会阻止条形码阅读器成功解码底层条形码。使用“扫描线_all”条形码阅读器可以读取的所有扫描线,最终用于解码候选条形码(此处为红色)。使用“扫描线_valid”可以可视化所有可以解码的扫描线,还有(这里用绿色表示)总代码:dev_update_off ()dev_close_window ()dev_open_window (0, 0, 512, 512, 'black', WindowHandle).原创 2022-02-24 21:10:40 · 795 阅读 · 0 评论 -
基于Halcon学习的一维码识别【二十五】msi.hdev
MSI型条形码解码示例程序总代码:*创建带有检查字符验证的条形码阅读器create_bar_code_model ('check_char', 'present', BarCodeHandle)* * * Initialization*初始化dev_close_window ()dev_open_window (0, 0, 320, 240, 'black', WindowHandle)dev_set_draw ('margin')dev_set_color ('green'.原创 2022-02-24 17:31:46 · 323 阅读 · 0 评论 -
基于Halcon学习的一维码识别【二十四】gs1databar_truncated.hdev
GS1数据库截断条形码注:GS1数据库与GS1数据库的符号相同全方位,但高度较小总代码:*创建条形码阅读器create_bar_code_model ('element_size_min', 1.5, BarCodeHandle)* * Initialization*初始化NumImages := 2dev_close_window ()*读取图片 read_image (Image, 'barcode/gs1databar_truncated/gs1databar_t.原创 2022-02-24 17:18:31 · 139 阅读 · 0 评论 -
基于Halcon学习的一维码识别【二十三】gs1databar_stacked_omnidir.hdev
GS1数据库堆叠全方位条形码符号总代码:*创建条形码阅读器create_bar_code_model ([], [], BarCodeHandle)* * Initialization*初始化dev_close_window ()dev_open_window (0, 0, 640, 512, 'black', WindowHandle)dev_set_draw ('margin')dev_set_color ('green')dev_set_line_width (3)s.原创 2022-02-24 17:01:10 · 154 阅读 · 0 评论 -
基于Halcon学习的一维码识别【二十二】gs1databar_stacked.hdev
GS1数据库堆叠条形码符号总代码:*创建条形码阅读器create_bar_code_model ([], [], BarCodeHandle)* * Initialization*初始化dev_close_window ()dev_open_window (0, 0, 640, 512, 'black', WindowHandle)dev_set_draw ('margin')dev_set_color ('green')dev_set_line_width (3)set.原创 2022-02-24 16:46:55 · 496 阅读 · 0 评论 -
基于Halcon学习的一维码识别【二十一】gs1databar_omnidir.hdev
GS1数据库全方位条形码符号总代码:*创建条形码阅读器*设置条形码的最小宽度像素为1.5create_bar_code_model ('element_size_min', 1.5, BarCodeHandle)*初始化dev_close_window ()dev_open_window (0, 0, 360, 256, 'black', WindowHandle)dev_set_draw ('margin')dev_set_color ('green')dev_set_li.原创 2022-02-24 16:28:47 · 716 阅读 · 0 评论 -
基于Halcon学习的一维码识别【二十】gs1databar_limited.hdev
GS1数据库条形码符号总代码:*创建条形码阅读器create_bar_code_model ('element_size_min', 1.5, BarCodeHandle)* * Initialization*初始化NumImages := 2dev_close_window ()dev_open_window (0, 0, 360, 256, 'black', WindowHandle)set_display_font (WindowHandle, 16, 'mono', '.原创 2022-02-24 16:14:07 · 743 阅读 · 0 评论 -
基于Halcon学习的一维码识别【十九】gs1databar_expanded_stacked.hdev
GS1数据库扩展堆叠条形码符号总代码:*创建条形码阅读器create_bar_code_model (['element_size_max','element_size_min'], [16,1.5], BarCodeHandle)* * Initialization*初始化dev_close_window ()dev_open_window (0, 0, 512, 512, 'black', WindowHandle)dev_set_draw ('margin')dev_se.原创 2022-02-24 16:04:27 · 631 阅读 · 0 评论 -
基于Halcon学习的一维码识别【十八】gs1databar_expanded.hdev
GS1扩展条形码符号总代码:*创建条形码阅读器create_bar_code_model ('element_size_min', 1.5, BarCodeHandle)* * Initialization*初始化NumImages := 2dev_close_window ()*读取图片read_image (Image, 'barcode/gs1databar_expanded/gs1databar_expanded_01')*打开自适应图片的窗口dev_open_.原创 2022-02-23 23:56:17 · 199 阅读 · 0 评论 -
基于Halcon学习的一维码识别【十七】gs1databar_composite.hdev
这个程序演示了GS1数据库条形码的复合元件解码总代码:*关闭窗口dev_close_window ()dev_open_window (0, 0, 512, 512, 'black', WindowHandle)set_display_font (WindowHandle, 14, 'mono', 'true', 'false')* ScaleWindow := 1.0* dev_set_draw ('margin')dev_set_color ('green')dev_se.原创 2022-02-23 21:42:30 · 537 阅读 · 0 评论 -
基于Halcon学习的一维码识别【十六】gs1_128.hdev
GS1-128条形码符号;GS1-128条形码的符号结构与代码128符号相同;这种条形码类型仅强制执行数据格式化的附加规则:数据组织在所谓的GS1应用程序元素中*符合GS1通用规范(www.GS1.org)的字符串;在该程序中,GS1-128条形码被解码为128码和GS1-128码,并对解码结果进行比较。虽然符号仍然可以解码为代码128,但生成的字符串缺少数据的语义结构。相比之下,将符号解码为GS1-128将产生有效的GS1数据,并有效地分离应用元素strin总代码:* Constant.原创 2022-02-23 20:16:22 · 687 阅读 · 0 评论 -
基于Halcon学习的一维码识别【十五】ean8.hdev
读取EAN-8型条形码总代码:* 读取EAN-8型条形码*创建模板create_bar_code_model ([], [], BarCodeHandle)dev_close_window ()*读取图片read_image (Image, 'barcode/ean8/ean801')*打开自适应图像的窗口dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)set_display_font (Wind..原创 2022-02-23 19:04:59 · 180 阅读 · 0 评论 -
基于Halcon学习的一维码识别【十四】ean13addon.hdev
读取EAN-13 Add-On 5型条形码总代码:*读取EAN-13 Add-On 5型条形码create_bar_code_model ([], [], BarCodeHandle)dev_close_window ()dev_open_window (0, 0, 120, 300, 'black', WindowHandle)set_display_font (WindowHandle, 16, 'mono', 'true', 'false')dev_set_color ('gr.原创 2022-02-23 18:55:40 · 263 阅读 · 0 评论 -
基于Halcon学习的一维码识别【十三】ean13.hdev
读取EAN-13型条形码总代码:*创建模板create_bar_code_model ([], [], BarCodeHandle)CodeType := 'EAN-13'* dev_close_window ()dev_open_window (0, 0, 544, 496, 'black', WindowHandle)set_display_font (WindowHandle, 16, 'mono', 'true', 'false')dev_set_color ('gree.原创 2022-02-23 16:35:06 · 854 阅读 · 0 评论 -
基于Halcon学习的一维码识别【十二】code39.hdev
读取类型代码39的条形码总代码:create_bar_code_model ([], [], BarCodeHandle)dev_close_window ()dev_open_window (0, 0, 120, 300, 'black', WindowHandle)dev_set_draw ('margin')dev_set_line_width (3)Colors := ['forest green','magenta']set_display_font (WindowHan.原创 2022-02-23 15:21:41 · 502 阅读 · 0 评论 -
基于Halcon学习的一维码识别【十一】code32.hdev
这个示例程序演示了如何读取使用HALCON条形码阅读器键入代码32,以读取代码39结合本程序,将_代码39_转换为_代码32。1. 步骤:用HALCON查找并解码条形码“代码39”类型的条形码阅读器;2. 步骤:将解码条形码从“代码39”类型转换为使用将_代码39_转换为_代码32的过程。总代码:*初始化图像和视觉设置dev_close_window ()dev_update_off ()read_image (Image, 'barcode/code32/code32_01.png'.原创 2022-02-23 11:52:06 · 526 阅读 · 0 评论