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

本文深入介绍了图像处理中的区域操作,包括轮廓线点获取、线段区域生成、像素元组获取、多边形与多边形填充的生成,以及如何从区域获取XLD对象、生成多边形区域、创建扫描线和标注相同灰度区域的方法。通过实例代码详细解析了每个操作的实现,旨在帮助初学者系统掌握这些概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、提要

二、基于区域的算子

2.1 轮廓线的点获取

2.2.获取线段区域

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

2.4 生成多边形

 2.5 生成多边形实心

 2.6 从区域获取xld

2.7. 生成多边形区域

2.8.生成区域扫描线

2.9. 标注相同灰度的区域


一、提要

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

二、基于区域的算子

2.1 轮廓线的点获取

        算子:get_region_contour(region, Rows, Columns)

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

read_image (Image, 'f:/images/DOTS/block.jpg')
rgb1_to_gray(Image,gray)

get_image_size(gray,width,height)
* gen_rectangle1(rect,0,0,height,width)
fast_threshold (gray,rect,0, 50 , 7)
* get_region_chain(rect, Row, Column, Chain)
get_region_contour(rect, Rows, Columns)

gen_image_const(BlkImage,'byte',width,height)


for I:=0 to |Rows|-1 by 1
    tmpRow:=Rows[I]
    tmpClm:=Columns[I]
    set_grayval(BlkImage, tmpRow, tmpClm, 228)
endfor
dev_display(BlkImage)

2.2.获取线段区域

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

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

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

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

 gen_region_points(regin,rows,cos)

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

2.4 生成多边形

gen_region_polygon

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

gen_image_const(BlkImage,'byte',width,height)
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)

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

gen_image_const(BlkImage,'byte',width,height)
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对象。

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

2.7 生成多边形区域

gen_region_polygon_xld

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

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

gen_image_const(BlkImage,'byte',width,height)
gen_region_polygon_filled(reg,[100,50,50,100,300,300,300,100],[50,100,200,400,400,200,50,50])
gen_image_const(xldImage,'byte',width,height)
gen_contour_region_xld (reg, Contours, 'border')
gen_polygons_xld(Contours,Polygons , 'ramer', 1 )

gen_region_polygon_xld( Polygons,Region,  'margin')

2.8 生成区域扫描线

gen_region_runs

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

2.9 标注相同灰度的区域

label_to_region

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无水先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值