• halcon之区域:多种区域(Region)生成(4)


    一、提要

            某些区域生成概念很多,初学者往往不得要领,如果不系统地学一下,几年下来,思想依然模糊,做项目感觉到“书到用时方恨少”,本篇是前几篇的后续,目的在于全面系统地渗透,达水滴石穿之功效。

    二、基于区域的算子

    2.1 轮廓线的点获取

            算子:get_region_contour(region, Rows, Columns)

    获取已知区域region的散点,保存在Rows, Columns内。

    1. read_image (Image, 'f:/images/DOTS/block.jpg')
    2. rgb1_to_gray(Image,gray)
    3. get_image_size(gray,width,height)
    4. * gen_rectangle1(rect,0,0,height,width)
    5. fast_threshold (gray,rect,0, 50 , 7)
    6. * get_region_chain(rect, Row, Column, Chain)
    7. get_region_contour(rect, Rows, Columns)
    8. gen_image_const(BlkImage,'byte',width,height)
    9. for I:=0 to |Rows|-1 by 1
    10. tmpRow:=Rows[I]
    11. tmpClm:=Columns[I]
    12. set_grayval(BlkImage, tmpRow, tmpClm, 228)
    13. endfor
    14. dev_display(BlkImage)

    2.2.获取线段区域

    gen_region_line(regline,row1,col1,row2,col2)

    获取一条线段的区域,注意,regline是个区域,不是像素列表;若要获取散列点需要如下步骤:

    1. gen_region_line(RegionLines, 100, 50, 150, 250)
    2. get_region_points(RegionLines, Rows, Columns)

    2.3 获取区域的像素元组(见上小节)

     gen_region_points(regin,rows,cos)

    功能:将个别的像素存储为图像区域。

    2.4 生成多边形

    gen_region_polygon

    功能:将一个多边形存储为一个区域。

    1. gen_image_const(BlkImage,'byte',width,height)
    2. gen_region_polygon(reg,[100,50,50,100,300,300,300,100],[50,100,200,400,400,200,50,50])

     2.5 生成多边形实心

     gen_region_polygon_filled(region,rows,cols)

    功能:将一个多边形存储为一个已填充区域。

    1. gen_image_const(BlkImage,'byte',width,height)
    2. gen_region_polygon_filled(reg,[100,50,50,100,300,300,300,100],[50,100,200,400,400,200,50,50])

     2.6 从区域获取xld

    gen_contour_region_xld (reg, Contours, 'border')

    reg是输入区域,Contours是得到的xld对象。

    1. gen_image_const(BlkImage,'byte',width,height)
    2. gen_region_polygon_filled(reg,[100,50,50,100,300,300,300,100],[50,100,200,400,400,200,50,50])
    3. gen_image_const(xldImage,'byte',width,height)
    4. gen_contour_region_xld (reg, Contours, 'border')

    2.6. 生成多边形区域

    gen_region_polygon_xld

    功能:创建一个XLD多边形中的区域。

     以下代码生成外轮廓的region边缘。

    1. gen_image_const(BlkImage,'byte',width,height)
    2. gen_region_polygon_filled(reg,[100,50,50,100,300,300,300,100],[50,100,200,400,400,200,50,50])
    3. gen_image_const(xldImage,'byte',width,height)
    4. gen_contour_region_xld (reg, Contours, 'border')
    5. gen_polygons_xld(Contours,Polygons , 'ramer', 1 )
    6. gen_region_polygon_xld( Polygons,Region, 'margin')

    2.7.生成区域扫描线

    gen_region_runs

       功能:创建一个扫描宽度编码中的图像区域。

    2.8. 标注相同灰度的区域

    label_to_region

    功能:提取一幅图像中灰度值相同的区域。

  • 相关阅读:
    Python电子邮件自动化基础:从零开始
    Mybatis概述
    java处理高并发高负载类网站的优化方法
    使用 Macaca 测试 Electron 桌面 App
    获取url动态参数
    Jdbc初测试(一)
    【数据库原理与应用(第3版)】第二章:数据模型(选择与填空)
    JavaEE:多线程(3):案例代码
    从技术角度看城市停车难问题
    Spring Aop注解配置源码分析(1)
  • 原文地址:https://blog.csdn.net/gongdiwudu/article/details/125445953