HALCON例程:二维码质量检测·一:ecc200_print_quality.hdev

二维码质量等级参数        

        基于ISO/IEC 15415:2011标准,演示ECC200数据代码打印质量等级的示例程序。

        该程序调查所有提到的元素,除了整体质量和解码。对于其他六个打印质量元素,程序在几个迭代步骤中调整图像以模拟各种质量。然后为每个迭代步骤计算并显示用于评估打印质量的等级(从最低:0到最高:4)和相应的原始值。

Labels:
* - Overall quality
* - Contrast
* - Modulation
* - Fixed pattern damage
* - Decode
* - Axial non-uniformity
* - Grid non-uniformity
* - Unused error correction
* - Reflectance Margin
* - Print Growth
* - Contrast Uniformity
* - Aperture
*显示设置,进行简短描述
dev_update_off ()
dev_close_window ()
* 
read_image (Image, 'datacode/ecc200/ecc200_print_quality_01')
dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)
dev_set_color ('green')
dev_set_line_width (3)
set_display_font (WindowHandle, 14, 'mono', 'true', 'false')
* 
Message := 'This program demonstrates the print quality'
Message[1] := 'grades of ECC200 data codes based on the'
Message[2] := 'standard ISO/IEC 15415:2011.'
Message[3] := 'Successively images with various qualities'
Message[4] := 'are generated and the respective print'
Message[5] := 'quality grades queried. The grades are'
Message[6] := 'values from 0 (lowest) to 4 (highest).'
dev_disp_text (Message, 'window', 'top', 'left', 'black', [], [])
dev_disp_text ('Press Run (F5) to continue', 'window', 'bottom', 'right', 'black', [], [])
stop ()

* Constants for quality grade access
* The grades correpond to the position of the elements in the tuple
*质量等级访问的常量
*等级对应于元组中元素的位置

GRADE_CONTRAST := 1
GRADE_MODULATION := 2
GRADE_FIXED_PATTERN_DAMAGE := 3
GRADE_DECODE := 4
GRADE_AXIAL_NON_UNIFORMITY := 5
GRADE_GRID_NON_UNIFORMITY := 6
GRADE_UNUSED_ERROR_CORRECTION := 7
GRADE_UNUSED_REFECTANCE_MARGIN := 8
GRADE_UNUSED_PRINT_GROWTH := 9
GRADE_UNUSED_CONTRAST_UNIFORMITY := 10
Wait := .5
* 
* Create a model of a 2D data code class  //创建模型
create_data_code_2d_model ('Data Matrix ECC 200', [], [], DataCodeHandle)
* 
* Set the parameters to enhanced recognition mode//设置'enhanced_recognition'参数,提高识别率
set_data_code_2d_param (DataCodeHandle, 'default_parameters', 'enhanced_recognition')
* Get the grade labels of the print quality elements (e.g., 'Contrast')
*获取打印质量元素的等级标签(例如“Contrast”)
get_data_code_2d_results (DataCodeHandle, 'general', 'quality_isoiec15415_labels', Labels)
* 
ModuleWidth := 10

1、Contrast——对比度

     逐渐降低对比度,对比度越低,等级越低

Contrast: 最小和最大像素强度之间的范围

for Index := 1 to 10 by 1
    * Minimize the contrast in each iteration step a little more
    * by scaling the gray values of the image
    *通过缩放图像的灰度值来最小化每个迭代步骤中的对比度
    scale_image (Image, ImageScaled, 1.0 / Index * 1.15, Index * 20 - 50)//灰度缩放

    *逐渐降低对比度,识别二维码
    * Find the 2d data code symbol in the image with reduced contrast
    find_data_code_2d (ImageScaled, SymbolXLDs, DataCodeHandle, [], [], ResultHandles, DecodedDataStrings)
    * 
    * Get the current grades of assessment of the print quality elements
    * and the respective raw values//获得当前印刷质量要素的考核等级和各自的原始值
    get_data_code_2d_results (DataCodeHandle, ResultHandles, 'quality_isoiec15415', Quality)
    get_data_code_2d_results (DataCodeHandle, ResultHandles,'quality_isoiec15415_values', QualityValues)
    dev_display (ImageScaled)
    dev_display (SymbolXLDs)
    * 
    * Compute and display a message with the current assessment
    * grade for contrast and the respective raw value.
    *计算并显示带有当前评估等级对比和各自原始值的消息
    *显示函数
    grade_message_text (Labels, Quality, QualityValues, GRADE_CONTRAST, Message) 
    dev_disp_text (Message, 'window', 'top', 'left', 'black', [], [])
    wait_seconds (Wait)
endfor
dev_disp_text ('Press Run (F5) to continue', 'window', 'bottom', 'right', 'black', [], [])
stop ()

 2、Modulation and Contrast Uniformity——调制和对比度均匀性(一致性)

        在同一个条码内,可能既有高对比度又有低对比度的区域(通常是由于墨分布不均)。整个符号的对比度一致性称为调制。

Modulation and Contrast Uniformity:

*调制度量符号内模块振幅的均匀性调制等级高 意味着振幅大,模块分配更好。
*对比度均匀性是在任何模块中发现的最小调制值。
*对比度均匀度是可选参数,不影响整体等级。

*定义一个矩形,在其中模拟图像中的缺陷
gen_rectangle1 (Defect, 160, 220, 320, 335)
* 
for Offset := 0 to 110 by 10
    * Brighten the image in each iteration step a little more
    *在每个迭代步骤中稍微提亮图像
    scale_image (Image, ImageScaled, 1, Offset)
    dev_display (ImageScaled)
    * 
    * 将增亮图像的域缩小到预定义的矩形,然后将其灰度值绘制到原始图像中。
    *这将生成一个包含一个矩形的图像,其中灰度值在每一个迭代步骤中变得越来越亮

    reduce_domain (ImageScaled, Defect, ImageReduced)
    *将一个图像的灰度值绘制到另一个图像中。
    paint_gray (ImageReduced, Image, ImageModulation)
    * Find the data code symbols in the generated image//识别二维码
    find_data_code_2d (ImageModulation, SymbolXLDs, DataCodeHandle, [], [], ResultHandles, DecodedDataStrings)
    * 
    * Get the current grades of assessment of the print quality elements
    * and the respective raw values//获得当前印品质量要素的评定等级和各自的原始值
    get_data_code_2d_results (DataCodeHandle, ResultHandles, 'quality_isoiec15415', Quality)
    get_data_code_2d_results (DataCodeHandle, ResultHandles, 'quality_isoiec15415_values', QualityValues)
    * 
    * Display the image with the defect//显示有缺陷的图像
    dev_display (ImageModulation)
    dev_set_color ('green')
    dev_display (SymbolXLDs)
    dev_display_data_code_2d_print_quality_results (DataCodeHandle, ResultHandles, 'reflectance_margin_module_grades', 'isoiec15415', [], [], [])

    set_line_style (WindowHandle, [2,4])
    gen_contour_region_xld (Defect, Contours, 'border')
    dev_set_color ('red')
    dev_display (Contours)
    set_line_style (WindowHandle, [])
    * 
    * Compute and display a message with the current assessment
    * grade for modulation and the respective raw value.
    *计算并显示带有当前调制评估等级和各自原始值的消息。
    grade_message_text (Labels, Quality, QualityValues, GRADE_MODULATION, MessageModulation)
    * 
    * Compute and display a message with the current assessment
    * grade for  contrast uniformity and the respective raw value.
    *计算并显示带有对比均匀性的当前评估等级和各自原始值的消息。
    grade_message_text (Labels, Quality, QualityValues, GRADE_UNUSED_CONTRAST_UNIFORMITY, MessageContrastUniformity)
    dev_disp_text ([MessageModulation,MessageContrastUniformity], 'window', 'top', 'left', 'black', [], [])
    wait_seconds (Wait)
endfor
dev_disp_text ('Press Run (F5) to continue', 'window', 'bottom', 'right', 'black', [], [])
stop ()

3、Fixed Pattern Damage——固定图案损坏

        二维码有定位图案(L)及时钟图案(边框交替出现黑色和白色的单元格)等,任何对这些必备元素的障碍都将被视为固定模式的损坏等级。

Fixed Pattern Damage:

*评估固定模式或各自安静区域的退化/损坏,从而描述在图像中定位和识别符号的可靠性

*(1)生成和调查图像与损坏的安静区
for NumModules := 0 to 10 by 1
    * 
    * 首先创建一个平行于坐标轴的矩形,然后将其以灰度值0绘制到图像中,生成一个有受损安静区的图像
    gen_rectangle1 (Defect, 388, 171, 398, NumModules * ModuleWidth + 171)
    paint_region (Defect, Image, ImageDefect, 0, 'fill')
    * Find the data code symbol in the image with damaged quiet zone//识别二维码
    find_data_code_2d (ImageDefect, SymbolXLDs, DataCodeHandle, [], [], ResultHandles, DecodedDataStrings)
    * 获得对应值
    get_data_code_2d_results (DataCodeHandle, ResultHandles, 'quality_isoiec15415', Quality)
    get_data_code_2d_results (DataCodeHandle, ResultHandles,'quality_isoiec15415_values', QualityValues)
    * 
    * Display the image with the defect//显示有缺陷的图像
    dev_display (ImageDefect)
    dev_set_color ('green')
    dev_display (SymbolXLDs)
    set_line_style (WindowHandle, [2,4])
    gen_contour_region_xld (Defect, Contours, 'border')
    dev_set_color ('red')
    dev_display (Contours)
    set_line_style (WindowHandle, [])
    dev_display_data_code_2d_print_quality_results (DataCodeHandle, ResultHandles, 'bad_modules', 'isoiec15415', [], [], [])
    * 
    grade_message_text (Labels, Quality, QualityValues, GRADE_FIXED_PATTERN_DAMAGE, Message)
    Message[1] := 'Damaged quiet zone'
    dev_disp_text (Message, 'window', 'top', 'left', 'black', [], [])
    wait_seconds (Wait)
endfor
dev_disp_text ('Press Run (F5) to continue', 'window', 'bottom', 'right', 'black', [], [])
stop ()

 

(2)生成并研究在查找器模式的L型处有损坏的图像
for NumModules := 0 to 10 by 1
    * 
    * 通过首先在查找器模式处创建水平矩形,然后将其以灰度值0绘制到图像中,生成具有查找器模式损坏的l型图像
    gen_rectangle1 (Defect, 375, 171, 385, NumModules * ModuleWidth + 171)
    paint_region (Defect, Image, ImageDefect, 255, 'fill')
    * Find the data code in the image with damaged finder pattern
    find_data_code_2d (ImageDefect, SymbolXLDs, DataCodeHandle, [], [], ResultHandles, DecodedDataStrings)
    * 
    get_data_code_2d_results (DataCodeHandle, ResultHandles, 'quality_isoiec15415', Quality)
    get_data_code_2d_results (DataCodeHandle, ResultHandles, 'quality_isoiec15415_values', QualityValues)
    * 
    * Display the image with the defect
    dev_display (ImageDefect)
    dev_set_color ('green')
    dev_display (SymbolXLDs)
    set_line_style (WindowHandle, [2,4])
    gen_contour_region_xld (Defect, Contours, 'border')
    dev_set_color ('red')
    dev_display (Contours)
    set_line_style (WindowHandle, [])
    dev_display_data_code_2d_print_quality_results (DataCodeHandle, ResultHandles, 'bad_modules', 'isoiec15415', [], [], [])

    grade_message_text (Labels, Quality, QualityValues, GRADE_FIXED_PATTERN_DAMAGE, Message)
    Message[1] := 'Damaged L-shape of finder pattern'
    dev_disp_text (Message, 'window', 'top', 'left', 'black', [], [])
    wait_seconds (Wait)
endfor
dev_disp_text ('Press Run (F5) to continue', 'window', 'bottom', 'right', 'black', [], [])
stop ()

 

(3)生成并研究在查找器模式交替一侧有损坏的图像
for NumModules := 0 to 10 by 1
    * 
    * 通过首先在交替一侧创建一个垂直的矩形,然后将灰度值为0的矩形绘制到图像中,生成具有查找器模式损坏的交替一侧的图像
    gen_rectangle1 (Defect, 226, 376, NumModules * ModuleWidth + 226, 386)
    paint_region (Defect, Image, ImageDefect, 255, 'fill')
    * Find the data code in the image with damaged alternating side
    find_data_code_2d (ImageDefect, SymbolXLDs, DataCodeHandle, [], [], ResultHandles, DecodedDataStrings)
    * 
    get_data_code_2d_results (DataCodeHandle, ResultHandles, 'quality_isoiec15415', Quality)
    get_data_code_2d_results (DataCodeHandle, ResultHandles, 'quality_isoiec15415_values', QualityValues)
    * 
    * Display the image with the defect
    dev_display (ImageDefect)
    dev_set_color ('green')
    dev_display (SymbolXLDs)
    set_line_style (WindowHandle, [2,4])
    gen_contour_region_xld (Defect, Contours, 'border')
    dev_set_color ('red')
    dev_display (Contours)
    set_line_style (WindowHandle, [])
    dev_display_data_code_2d_print_quality_results (DataCodeHandle, ResultHandles, 'bad_modules', 'isoiec15415', [], [], [])

    grade_message_text (Labels, Quality, QualityValues, GRADE_FIXED_PATTERN_DAMAGE, Message)
    Message[1] := 'Damaged alternating side of the\nfinder pattern'
    dev_disp_text (Message, 'window', 'top', 'left', 'black', [], [])
    wait_seconds (Wait)
endfor
dev_disp_text ('Press Run (F5) to continue', 'window', 'bottom', 'right', 'black', [], [])
stop ()

 

 4、Axial non-uniformity——轴向不均匀性

        测量符号整体宽高比。大多数二维码由单个方块组成,如果这些单元由于太高或太宽看起来更像长方形,那么包含它们的符号在轴向不均匀性方面将会得到很低的评级。

Axial non-uniformity:宽高比的畸变导致轴向不均匀性的退化

IterationIndex := 0
for Scale := 1 to 1.2 by 0.02
    *仅通过缩放图像的高度来生成符号纵横比失真的图像
    affine_trans_image (Image, ImageDeformed, [Scale,0,(-Scale + 1) * 140,0,1,0], 'weighted', 'false')//对图像应用仿射二维变换
    * Find the data code in the image with distorted aspect ratio//识别二维码
    find_data_code_2d (ImageDeformed, SymbolXLDs, DataCodeHandle, [], [], ResultHandles, DecodedDataStrings)
    * 
    get_data_code_2d_results (DataCodeHandle, ResultHandles, 'quality_isoiec15415', Quality)
    get_data_code_2d_results (DataCodeHandle, ResultHandles, 'quality_isoiec15415_values', QualityValues)
    * 
    * Display the image with the distortion
    dev_display (ImageDeformed)
    dev_set_color ('green')
    dev_set_line_width (2)
    dev_display (SymbolXLDs)
    dev_set_line_width (1)
    dev_display_data_code_2d_print_quality_results (DataCodeHandle, ResultHandles, 'grid', 'isoiec15415', [], [], [])
    * 
    grade_message_text (Labels, Quality, QualityValues, GRADE_AXIAL_NON_UNIFORMITY, Message)
    dev_disp_text (Message, 'window', 'top', 'left', 'black', [], [])
    wait_seconds (Wait)
endfor
dev_disp_text ('Press Run (F5) to continue', 'window', 'bottom', 'right', 'black', [], [])
stop ()

 

 5、Grid non-uniformity——网格不均匀性

测量网格交叉点与理想位置的最大适量偏差,即符号的斜向拉伸程度

Grid non-uniformity:

除了仿射畸变,透视或其他畸变也会降低网格的非均匀性质量。
for Diff := 0 to 4 by 1
    R := [40,40,210,210]
    C := [30,200,200,30]
    R2 := R + [0,0,Diff,0]
    C2 := C + [0,0,Diff,0]
    * 
    * 通过对计算出的变换矩阵的图像应用射影变换,生成一个模块偏离其理想网格的图像(对于每个迭代增加偏差)。
    *利用给定的点对应关系计算一个射影变换矩阵
    vector_to_proj_hom_mat2d (R, C, R2, C2, 'normalized_dlt', [], [], [], [], [], [], HomMat2D, Covariance)
    *对图像应用射影变换
    projective_trans_image (Image, ImageDeformed, HomMat2D, 'bilinear', 'false', 'false')
    * 识别二维码
    find_data_code_2d (ImageDeformed, SymbolXLDs, DataCodeHandle, [], [], ResultHandles, DecodedDataStrings)
    * 
    get_data_code_2d_results (DataCodeHandle, ResultHandles, 'quality_isoiec15415', Quality)
    get_data_code_2d_results (DataCodeHandle, ResultHandles, 'quality_isoiec15415_values', QualityValues)
    * 
    * Display the image with the distortio
    dev_display (ImageDeformed)
    dev_set_color ('green')
    dev_set_line_width (2)
    dev_display (SymbolXLDs)
    dev_set_line_width (1)
    dev_display_data_code_2d_print_quality_results (DataCodeHandle, ResultHandles, 'grid', 'isoiec15415', [], [], [])
    * 
    grade_message_text (Labels, Quality, QualityValues, GRADE_GRID_NON_UNIFORMITY, Message)
    dev_disp_text (Message, 'window', 'top', 'left', 'black', [], [])
    wait_seconds (Wait)
endfor
dev_disp_text ('Press Run (F5) to continue', 'window', 'bottom', 'right', 'black', [], [])
stop ()

 

 6、Unused error correction——未使用纠错

Unused error correction:
尚未使用的纠错容量反映了解码过程的可靠性
for NumModules := 1 to 18 by 1
    * 
    * for NumModules := 1 to 18 by 1
    * 
    * 通过在图像内部创建一个白色矩形,为每次迭代生成一个具有更多缺陷的图像,这样在每次迭代中未使用的错误修正量就会减少。
    gen_rectangle1 (Defect, 270, 171, 310, NumModules * ModuleWidth + 171)
    paint_region (Defect, Image, ImageDefect, 255, 'fill')
    * 
    find_data_code_2d (ImageDefect, SymbolXLDs, DataCodeHandle, [], [], ResultHandles, DecodedDataStrings)
    * 
    get_data_code_2d_results (DataCodeHandle, ResultHandles, 'quality_isoiec15415', Quality)
    get_data_code_2d_results (DataCodeHandle, ResultHandles, 'quality_isoiec15415_values', QualityValues)
    * 
    dev_display (ImageDefect)
    dev_set_color ('green')
    dev_set_line_width (2)
    dev_display (SymbolXLDs)
    set_line_style (WindowHandle, [2,4])
    gen_contour_region_xld (Defect, Contours, 'border')
    dev_set_color ('red')
    dev_display (Contours)
    set_line_style (WindowHandle, [])
    dev_display_data_code_2d_print_quality_results (DataCodeHandle, ResultHandles, 'bad_modules', 'isoiec15415', [], [], [])
    * 
    grade_message_text (Labels, Quality, QualityValues, GRADE_UNUSED_ERROR_CORRECTION, Message)
    dev_disp_text (Message, 'window', 'top', 'left', 'black', [], [])
    wait_seconds (Wait)
endfor
dev_disp_text ('Press Run (F5) to continue', 'window', 'bottom', 'right', 'black', [], [])
stop ()
   

 

 7、Print Growth——印刷增长(打印单元格增大):

度量模块是否在标称大小的基础上增长或缩小

Print Growth:

for Erosion := 1 to 17 by 2
    * 在每个迭代步骤中稍微削弱图像
    zoom_image_factor (Image, ImageZoomed, 4, 4, 'bilinear')//按给定因子缩放图像
    *确定所选掩码内的最小灰度值
    gray_erosion_shape (ImageZoomed, ImageZoomedErosion, Erosion, Erosion, 'octagon')
    zoom_image_factor (ImageZoomedErosion, ImageErosion, 0.25, 0.25, 'bilinear')
    dev_display (ImageErosion)
    * 识别二维码
    find_data_code_2d (ImageErosion, SymbolXLDs, DataCodeHandle, [], [], ResultHandles, DecodedDataStrings)
    * 
    get_data_code_2d_results (DataCodeHandle, ResultHandles, 'quality_isoiec15415', Quality)
    get_data_code_2d_results (DataCodeHandle, ResultHandles, 'quality_isoiec15415_values', QualityValues)
    dev_set_color ('green')
    dev_display (SymbolXLDs)
    * 
    grade_message_text (Labels, Quality, QualityValues, GRADE_UNUSED_PRINT_GROWTH, Message)
    dev_disp_text (Message, 'window', 'top', 'left', 'black', [], [])
    wait_seconds (Wait)
endfor
* 
for Dilation := 1 to 17 by 2
    * 在每个迭代步骤中稍微扩大图像
    zoom_image_factor (Image, ImageZoomed, 4, 4, 'bilinear')
    gray_dilation_shape (ImageZoomed, ImageZoomedDilation, Dilation, Dilation, 'octagon')
    zoom_image_factor (ImageZoomedDilation, ImageDilation, 0.25, 0.25, 'bilinear')
    dev_display (ImageDilation)
    * 
    find_data_code_2d (ImageDilation, SymbolXLDs, DataCodeHandle, [], [], ResultHandles, DecodedDataStrings)
    * 
    get_data_code_2d_results (DataCodeHandle, ResultHandles, 'quality_isoiec15415', Quality)
    get_data_code_2d_results (DataCodeHandle, ResultHandles, 'quality_isoiec15415_values', QualityValues)
    dev_set_color ('green')
    dev_display (SymbolXLDs)
    * 
    grade_message_text (Labels, Quality, QualityValues, GRADE_UNUSED_PRINT_GROWTH, Message)
    dev_disp_text (Message, 'window', 'top', 'left', 'black', [], [])
    wait_seconds (Wait)
endfor
dev_disp_text ('Press Run (F5) to continue', 'window', 'bottom', 'right', 'black', [], [])
stop ()

 

 8、Reflectance Margin——反射率裕度

        检查整体亮和暗的全局阈值,并确定亮或暗符号将如何正确识别的可能性。它不衡量强度差异,而是衡量对比度问题(或反射在代码表面的光线问题)会导致错误的可能性。

Reflectance Margin:

测量每个模块如何正确区分为亮和暗
*低反射率边际等级增加了模块被错误识别的概率。

*定义一个模仿图像缺陷的矩形
gen_rectangle1 (Defect, 160, 220, 320, 335)
* 
for Offset := 50 to 90 by 6
    * 在每个迭代步骤中稍微提亮图像
    scale_image (Image, ImageScaled, 1, Offset)
    dev_display (ImageScaled)
    * 
    * 将增亮图像的域缩小到预定义的矩形,然后将其灰度值绘制到原始图像中。这将生成一个包含一个矩形的图像,其中灰度值随着每一个迭代步骤变得越来越亮。
    reduce_domain (ImageScaled, Defect, ImageReduced)
    paint_gray (ImageReduced, Image, ImageReflectanceMargin)
    * 
    find_data_code_2d (ImageReflectanceMargin, SymbolXLDs, DataCodeHandle, [], [], ResultHandles, DecodedDataStrings)
    * 
    get_data_code_2d_results (DataCodeHandle, ResultHandles, 'quality_isoiec15415', Quality)
    get_data_code_2d_results (DataCodeHandle, ResultHandles, 'quality_isoiec15415_values', QualityValues)
    * 
    dev_display (ImageReflectanceMargin)
    dev_set_color ('green')
    dev_display (SymbolXLDs)
    set_line_style (WindowHandle, [2,4])
    gen_contour_region_xld (Defect, ContoursContrast, 'border')
    dev_set_color ('red')
    dev_display (ContoursContrast)
    set_line_style (WindowHandle, [])
    dev_display_data_code_2d_print_quality_results (DataCodeHandle, ResultHandles, 'reflectance_margin_module_grades', 'isoiec15415', [], [], [])
    * 
    grade_message_text (Labels, Quality, QualityValues, GRADE_UNUSED_REFECTANCE_MARGIN, Message)
    dev_disp_text (Message, 'window', 'top', 'left', 'black', [], [])
    wait_seconds (Wait)
endfor
* 

for NumModules := 1 to 10 by 1
    * 
    * 通过在图像内部创建一个白色矩形,为每次迭代生成一个具有更多缺陷的图像
    gen_rectangle1 (Defect, 270, 171, 310, NumModules * ModuleWidth + 171)
    paint_region (Defect, ImageReflectanceMargin, ImageDefect, 255, 'fill')
    * 
    find_data_code_2d (ImageDefect, SymbolXLDs, DataCodeHandle, [], [], ResultHandles, DecodedDataStrings)
    * 
    get_data_code_2d_results (DataCodeHandle, ResultHandles, 'quality_isoiec15415', Quality)
    get_data_code_2d_results (DataCodeHandle, ResultHandles, 'quality_isoiec15415_values', QualityValues)
    * 
    dev_display (ImageDefect)
    dev_set_color ('green')
    dev_display (SymbolXLDs)
    set_line_style (WindowHandle, [2,4])
    gen_contour_region_xld (Defect, ContoursDefect, 'border')
    dev_set_color ('red')
    dev_display (ContoursDefect)
    dev_display (ContoursContrast)
    set_line_style (WindowHandle, [])
    dev_display_data_code_2d_print_quality_results (DataCodeHandle, ResultHandles, 'reflectance_margin_module_grades', 'isoiec15415', [], [], [])
    * 
    grade_message_text (Labels, Quality, QualityValues, GRADE_UNUSED_REFECTANCE_MARGIN, Message)
    dev_disp_text (Message, 'window', 'top', 'left', 'black', [], [])
    wait_seconds (Wait)
endfor
dev_disp_text ('      End of program      ', 'window', 'bottom', 'right', 'black', [], [])

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值