2013年11月16日

OpenCV学习(32) 求轮廓的包围盒

摘要: 在OpenCV中,能够很方便的求轮廓包围盒。包括矩形,圆形,椭圆形以及倾斜的矩形(包围面积最小)集中包围盒。用到的四个函数是:Rect boundingRect(InputArray points)void minEnclosingCircle(InputArray points, Point2f& center, float& radius)RotatedRect minAreaRect(InputArray points)RotatedRect fitEllipse(InputArray points)输入的参数都是轮廓,下面是程序代码:1. Rect和原型包围盒代码:nt 阅读全文

posted @ 2013-11-16 19:25 迈克老狼2012 阅读(10937) 评论(0) 推荐(0)

OpenCV学习(31) 基于defects的简单手势

摘要: 前几年在做毕业设计时候曾用opencv1.0中defects做过简单的手势识别,这几天看OpenCV2.46中的轮廓函数,发现和以前差别挺大,函数调用完全不一样,重新实现了简单手势的代码。1.首先用简单的肤色检测算法,得到手的区域。 Mat img = cv::imread("../hand2.jpg"); namedWindow("image"); imshow("image", img); Mat hsvimg; 首先把图像转化到HSV颜色空间,利用肤色色度、饱和度和亮度的特殊范围,得到手的区域。最后对得到的二值手的区域进行开闭操 阅读全文

posted @ 2013-11-16 17:43 迈克老狼2012 阅读(1851) 评论(0) 推荐(0)

OpenCV学习(30) 轮廓defects

摘要: 上一篇教程中,我们学习了如何计算轮廓的凸包,其实对一个轮廓而言,可能它的凸包和它本身是重合的,也有可能不是重合的。比如下面左边图像的轮廓本身就是凸包,而右边图像的轮廓则不是。我们可以通过函数bool isContourConvex(InputArray contour),来判定一个轮廓是否是凸包,是的话返回true,否则false[注意测试的轮廓必须是简单轮廓,没有自交叉之类的]。 对一个非凸包的轮廓而言,它包括一系列的凹陷区域,这些区域称作defect,比如下面手轮廓中,包括6个defect区域。在OpenCV中,我们用下面的结构来定义defect。struct CvConvexityDe. 阅读全文

posted @ 2013-11-16 13:01 迈克老狼2012 阅读(5168) 评论(0) 推荐(1)

导航