轮廓处理函数详细

本文详细介绍了OpenCV中用于轮廓处理和计算几何的函数,包括轮廓逼近、边界框、面积计算、弧长计算、轮廓树、椭圆拟合、直线拟合等,帮助理解并应用这些函数进行图像处理。
摘要由CSDN通过智能技术生成
ApproxChains

用多边形曲线逼近 Freeman 链

CvSeq* cvApproxChains( CvSeq* src_seq, CvMemStorage* storage, int method=CV_CHAIN_APPROX_SIMPLE, double parameter=0, int minimal_perimeter=0, int recursive=0 );  

 

src_seq
涉及其它链的链指针
storage
存储多边形线段位置的缓存
method
逼近方法 (见函数  cvFindContours 的描述).
parameter
方法参数(现在不用).
minimal_perimeter
仅逼近周长大于  minimal_perimeter 轮廓。其它的链从结果中除去。
recursive
如果非 0, 函数从  src_seq 中利用  h_next 和  v_next links 连接逼近所有可访问的链。如果为 0, 则仅逼近单链。

这是一个单独的逼近程序。 对同样的逼近标识,函数 cvApproxChains 与 cvFindContours 的工作方式一模一样。它返回发现的第一个轮廓的指针。其它的逼近模块,可以用返回结构中的 v_next 和 v_next 域来访问


StartReadChainPoints

初始化链读取

void cvStartReadChainPoints( CvChain* chain, CvChainPtReader* reader );  

 

chain  

      链的指针

reader

      链的读取状态

函数 cvStartReadChainPoints 初始化一个特殊的读取器 (参考 Dynamic Data Structures 以获得关于集合与序列的更多内容).


ReadChainPoint

得到下一个链的点

CvPoint cvReadChainPoint( CvChainPtReader* reader );  

 

reader
链的读取状态

函数 cvReadChainPoint 返回当前链的点,并且更新读取位置。


ApproxPoly

用指定精度逼近多边形曲线

CvSeq* cvApproxPoly( const void* src_seq, int header_size, CvMemStorage* storage, int method, double parameter, int parameter2=0 );  

 

src_seq
点集数组序列
header_size
逼近曲线的头尺寸
storage
逼近轮廓的容器。如果为 NULL, 则使用输入的序列
method
逼近方法。目前仅支持  CV_POLY_APPROX_DP , 对应 Douglas-Peucker 算法.
parameter
方法相关参数。对  CV_POLY_APPROX_DP 它是指定的逼近精度
parameter2
如果  src_seq 是序列,它表示要么逼近单个序列,要么在  src_seq 的同一个或低级层次上逼近所有序列 (参考  cvFindContours 中对轮廓继承结构的描述). 如果  src_seq 是点集的数组 ( CvMat*) , 参数指定曲线是闭合 ( parameter2!=0) 还是非闭合 ( parameter2=0).

函数 cvApproxPoly 逼近一个或多个曲线,并返回逼近结果。对多个曲线的逼近,生成的树将与输入的具有同样的结构。(1:1 的对应关系).


BoundingRect

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值