halcon Print-inspection 实例注释

* This example program shows how to use HALCON's variation model operators
* to perform a typical print quality inspection.  The program detects incorrect
* prints on the clips of pens.  In the first step, the variation model is constructed
* from images of correct prints.  Since the position of the objects can vary, the
* images must be transformed to a reference position (the position of the print
* in the first image in this example).  HALCON's shape-based matching is used
* to detect the position and angle of the print in the images.  The found position
* and angle are used to transform the images to the reference position.
* In the second part of the program, the prints of the correct clips and of several
* incorect clips is checked and classified.
dev_update_pc ('off')
dev_update_window ('off')
dev_update_var ('off')
read_image (Image, 'pen/pen-01')
get_image_size (Image, Width, Height)
dev_close_window ()
dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
get_system ('operating_system', OS)
if (OS{0:2} = 'Win')
    set_font (WindowHandle, '-Courier New-18-*-*-*-*-')
else
    set_font (WindowHandle, '-adobe-courier-bold-r-normal--25-*-*-*-*-*-*-*')
endif
dev_set_color ('red')
dev_display (Image)
* Note: the shape model will be constructed from a ROI that is computed
* automatically based on a simple image segmentation.
*二值化
threshold (Image, Region, 100, 255)
*填充图片
fill_up (Region, RegionFillUp)
*图片差异
difference (RegionFillUp, Region, RegionDifference)
*凸包转换区域
shape_trans (RegionDifference, RegionTrans, 'convex')
*鼓胀区域
dilation_circle (RegionTrans, RegionDilation, 8.5)
*重新剪切图片
reduce_domain (Image, RegionDilation, ImageReduced)
*查找合适的模板参数,准备创建模板
inspect_shape_model (ImageReduced, ModelImages, ModelRegions, 1, 20)
*转换一个骨架到XLD,这个只是用于显示骨架
gen_contours_skeleton_xld (ModelRegions, Model, 1, 'filter')
*计算中心点和面积
area_center (RegionDilation, Area, RowRef, ColumnRef)
*建立模板
create_shape_model (ImageReduced, 5, rad(-10), rad(20), 'auto', 'none', 'use_polarity', 20, 10, ShapeModelID)
*建立可变比较模板
create_variation_model (Width, Height, 'byte', 'standard', VariationModelID)
for I := 1 to 15 by 1
    *读取图片
    read_image (Image, 'pen/pen-'+I$'02d')
    *查找模板
    find_shape_model (Image, ShapeModelID, rad(-30), rad(60), 0.5, 1, 0.5, 'least_squares', 0, 0.9, Row, Column, Angle, Score)
    if (|Score| = 1)
        *找到了,用点和角度来生成刚性变换矩阵
        vector_angle_to_rigid (Row, Column, Angle, RowRef, ColumnRef, 0, HomMat2D)
        *刚性变换
        affine_trans_image (Image, ImageTrans, HomMat2D, 'constant', 'false')
        *训练可变模板
        train_variation_model (ImageTrans, VariationModelID)
        dev_display (ImageTrans)
        dev_display (Model)
    endif
endfor
*返回用于比较的图片
get_variation_model (MeanImage, VarImage, VariationModelID)
*准备比较参数
prepare_variation_model (VariationModelID, 20, 3)
* We can now free the training data to save some memory.
*释放训练内存
clear_train_data_variation_model (VariationModelID)
* Note: the checking of the print will be restricted to the region of the clip.
* Sometimes the print is also in an incorrect position of the clip.  This will lead
* to erroneous regions at the top or bottom border of the clip and hence can
* be detected easily.
*腐蚀区域
erosion_rectangle1 (RegionFillUp, RegionROI, 1, 15)
dev_display (MeanImage)
set_tposition (WindowHandle, 20, 20)
dev_set_color ('green')
write_string (WindowHandle, 'Reference image')
stop ()
dev_display (VarImage)
set_tposition (WindowHandle, 20, 20)
dev_set_color ('green')
write_string (WindowHandle, 'Variation image')
stop ()
dev_set_draw ('margin')
for I := 1 to 30 by 1
    *读取图片
    read_image (Image, 'pen/pen-'+I$'02d')
    *查找模板
    find_shape_model (Image, ShapeModelID, rad(-10), rad(20), 0.5, 1, 0.5, 'least_squares', 0, 0.9, Row, Column, Angle, Score)
    if (|Score| = 1)
        *找到了,点和角度生成刚性变换矩阵
        vector_angle_to_rigid (Row, Column, Angle, RowRef, ColumnRef, 0, HomMat2D)
        *将图片进行刚性变换
        affine_trans_image (Image, ImageTrans, HomMat2D, 'constant', 'false')
        *重切图片为热区
        reduce_domain (ImageTrans, RegionROI, ImageReduced)
        *比较图片
        compare_variation_model (ImageReduced, RegionDiff, VariationModelID)
        *连通区域
        connection (RegionDiff, ConnectedRegions)
        *选择区域
        select_shape (ConnectedRegions, RegionsError, 'area', 'and', 20, 1000000)
        *计算区域个数并显示结果
        count_obj (RegionsError, NumError)
        dev_clear_window ()
        dev_display (ImageTrans)
        dev_set_color ('red')
        dev_display (RegionsError)
        set_tposition (WindowHandle, 20, 20)
        if (NumError = 0)
            dev_set_color ('green')
            write_string (WindowHandle, 'Clip OK')
        else
            dev_set_color ('red')
            write_string (WindowHandle, 'Clip not OK')
        endif
    endif
    stop ()
endfor
stop ()
clear_shape_model (ShapeModelID)
clear_variation_model (VariationModelID)
### 回答1: Halcon 10.0 是一款强大的机器视觉开发软件,支持在Windows系统上运行。halcon10.0-windows.exe 是Halcon 10.0 软件的可执行文件,用于在Windows系统上安装和运行该软件。 通过运行 halcon10.0-windows.exe 文件,用户可以开始安装Halcon 10.0 软件。安装过程中,用户需要按照提供的安装向导进行操作,包括选择安装路径、设置组件和功能、以及输入必要的许可证信息等。完成安装后,用户可以在自己的计算机上打开Halcon 10.0 软件。 Halcon 10.0 软件提供了丰富的功能和工具,用于开发和实现机器视觉应用。它支持图像处理、图像分析、模式匹配、三维视觉、相机校准等多项功能。用户可以通过Halcon 10.0 软件进行图像的预处理、特征提取、目标识别和测量等操作,从而实现各种视觉检测和测量任务。 除了功能强大的视觉算法和工具,Halcon 10.0 软件还提供了友好的用户界面和丰富的编程接口,使得用户可以根据自己的需求进行定制化开发和编程。用户可以通过编写脚本或使用常见的编程语言如C++、C#等来编写自己的机器视觉应用程序。 总而言之,halcon10.0-windows.exe 是Halcon 10.0 软件的安装文件,通过安装和运行该软件,用户可以方便地进行机器视觉应用的开发和实现。 ### 回答2: Halcon 10.0-windows.exe是一种软件程序,它是由MVTec Software GmbH开发的一款专业机器视觉软件。Halcon被广泛应用于各种工业领域,如制造业、物流、医疗等,用于图像处理、检测、识别和测量等方面的任务。 Halcon 10.0-windows.exe是Halcon 10.0版本的Windows操作系统的可执行文件。这意味着它可以在Windows操作系统上运行,并且可以直接从该可执行文件启动Halcon 10.0软件。 Halcon 10.0是Halcon软件最新的一个重要版本,它引入了许多新功能和改进,以提供更好的机器视觉解决方案。该版本具有更高的性能、更强大的图像处理能力和更便捷的用户界面。用户可以使用Halcon 10.0进行图像分析、模式识别、目标检测、形状测量等任务。此外,Halcon 10.0还支持多种编程语言和平台,并提供了丰富的开发工具和函数库,以便用户根据自己的需求进行定制和扩展。 对于使用Halcon进行机器视觉应用的用户来说,Halcon 10.0-windows.exe是一个非常重要的文件,它提供了启动Halcon 10.0软件的能力。用户只需双击该文件,就可以快速启动Halcon 10.0,并开始使用其功能进行图像处理和分析。对于那些希望在Windows操作系统上进行机器视觉开发和应用的用户来说,Halcon 10.0-windows.exe无疑是一个不可或缺的工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值