OpenCV 轮廓的凸性
来源:互联网 发布:java对数据库增删改查 编辑:程序博客网 时间:2024/06/04 18:04
一、概括
理解物体形状或轮廓的另外一种有用的方法是计算一个物体的凸包(convex hull)然后计算其凸缺陷(convexity defects)。很多复杂物体的特性能很好的被这种缺陷表现出来。
二、相关函数
1、发现点集的凸外形
CvSeq* cvConvexHull2( const CvArr* input, void* hull_storage=NULL,
int orientation=CV_CLOCKWISE,int return_points=0 );
points
2D 点集的序列或数组,32-比特整数或浮点数坐标
hull_storage
输出的数组(CvMat*) 或内存缓存 (CvMemStorage*),用以存储凸外形。 如果是数组,则它应该是一维的,而且与输入的数组/序列具有同样数目的元素。输出时,通过修改头结构将数组裁减到凸外形的尺寸。
orientation
凸外形的旋转方向: 逆时针或顺时针 (CV_CLOCKWISE or CV_COUNTER_CLOCKWISE)
return_points
如果非零,hull_storage 为数组情况下,点集将以外形 (hull) 存储,而不是顶点形式 (indices)。如果 hull_storag 为内存存储模式下则存储为点集形式(points)。
函数 cvConvexHull2 使用 Sklansky 算法计算 2D 点集的凸外形。如果 hull_storage 是内存存储仓, 函数根据 return_points 的值,创建一个包含外形的点集或指向这些点的指针的序列。
2、测试轮廓的凸性
int cvCheckContourConvexity( const CvArr* contour );
contour
被测试轮廓 (点序列或数组).
函数 cvCheckContourConvexity 输入的轮廓是否为凸的。必须是简单轮廓,比如没有自交叉。
3、发现轮廓凸形缺陷
CvSeq* cvConvexityDefects( const CvArr* contour, const CvArr* convexhull,
CvMemStorage* storage=NULL );
contour
输入轮廓
convexhull
用 cvConvexHull2 得到的凸外形,它应该包含轮廓的定点的指针或下标,而不是外形点的本身,即cvConvexHull2 中的参数 return_points 应该设置为 0.
storage
凸性缺陷的输出序列容器。如果为 NULL, 使用轮廓或外形的存储仓。
函数 cvConvexityDefects 发现输入轮廓的所有凸性缺陷,并且返回 CvConvexityDefect 结构序列。
- OpenCV 轮廓的凸性
- opencv 轮廓的凸包,凸缺陷
- opencv 轮廓的凸包,凸缺陷
- opencv 轮廓的凸包,凸缺陷
- OpenCV图像的轮廓
- opencv 获取手势的轮廓
- opencv 获取手势的轮廓
- opencv 获取手势的轮廓
- opencv轮廓的简单应用
- opencv的轮廓高级应用
- opencv轮廓相关的函数
- opencv的contour轮廓排序
- 【OpenCV】轮廓与凸包
- openCV轮廓
- OPENCV轮廓
- OpenCV 轮廓
- opencv:轮廓
- OpenCV-轮廓
- 线程之join()
- Qt之自定义搜索框
- 关于串的kmp匹配问题
- jquery 加载等待效果
- 面试题34:丑数
- OpenCV 轮廓的凸性
- 局域网内任何一台pc上windows下eclipse远程连接hbase数据库
- 最美好地祝福我们自己
- Python Built-in Funcitons
- Android用GridView画带背景色和点击事件的简单表格
- 在myeclipse中奖java项目打包成jar文件
- HUST Sum of Consecutive Prime Numbers
- Xmppframework could not build module dnssd或者libxml
- 博客开通