|
类型 |
轮廓 | ||||||
|
描述 |
轮廓分割,将连续的曲线轮廓分割成一段段小的直线、圆弧、椭圆弧基元等小的轮廓段 注意:仅支持基本轮廓,或多边形轮廓但分割类型只能是直线段,处理后还是基本轮廓,如ZV_CONTAPPROXPOLY处理过的轮廓不能用于圆弧或椭圆弧基元分割(点数太少不能准确拟合圆或椭圆) | ||||||
|
语法 |
ZV_CONTSEGMENT(cont,list,type,eps1,eps2) 参数: cont:ZVOBJECT类型,输入轮廓 list:ZVOBJECT类型,列表类型,分割后的多段轮廓列表 type:分割类型,分割成轮廓基元的类型,0、1类型用的较多,2用的较少
eps1:多边形近似的精度,即将曲线轮廓分割成小线段的精度,精度值越小对于后续的轮廓基元如圆弧分割则越精确,常用值1、1.5、2,建议值1 eps2:多边形轮廓融合成基元的精度,如某段轮廓拟合成圆弧的精度,即此轮廓拟合成圆弧的精度小于等于eps2则此段轮廓用圆弧基元表示,常用值1、1.5、2,eps2要大于eps1 | ||||||
|
适用控制器 |
支持ZV功能或者5系列以上的控制器 | ||||||
|
例子 |
ZVOBJECT img, img_bw, dst, contlist, contlist_seg, con_src DIM con_count ZV_READIMAGE(img, "test.jpg",0)'以原图像格式读取图片 ZV_THRESH(img,img_bw,150,255)'图像二值化 ZV_CONTGEN(img_bw,contlist,1,0)'生成轮廓 ZV_CONTSETMAXRADIUS(1000)'设置圆弧最大半径为1000 con_count = ZV_LISTCOUNT(contlist)'获取轮廓列表个数 ZV_IMGCOPY(img,dst)'复制图像 ZV_IMGSETCONST(dst,0)'常数填充图像 FOR i = 0 TO con_count-1 ZV_LISTGET(contlist, con_src,i)'获取某个轮廓 ZV_CONTSEGMENT(con_src,contlist_seg,1,1,1)'将轮廓分割成直线和圆弧基元 ZV_CONTLIST(dst,contlist_seg,255,0)'绘制轮廓 NEXT |