zoukankan      html  css  js  c++  java
  • OpenCV boundingRect、minAreaRect的用法区别

    当得到对象轮廓后,可用boundingRect()得到包覆此轮廓的最小正矩形,minAreaRect()得到包覆轮廓的最小斜矩形。

    1)Rect boundingRect(InputArray points)

    points:输入信息,可以为包含点的容器(vector)或是Mat。
    返回包覆输入信息的最小正矩形。如下图:

    2)RotatedRect minAreaRect(InputArray points)

    points:输入信息,可以为包含点的容器(vector)或是Mat。

    返回包覆输入信息的最小斜矩形。如下图:

    【说明】

    如果参数是Mat类型的(注意需要是N行2列),必须满足depth == CV_32F || depth == CV_32S,且checkVector(2)才可以,否则会报错【minAreaRect()中主要调用的求凸包的函数convexHull()会检查Mat满不满足上面的条件】。

    Mat::depth()函数:求矩阵中元素的一个通道的数据类型,这个值和type是相关的。

    Mat::checkVector()函数:当Mat的channels,depth,和连续性  满足checkVector的参数内容时,返回(int)(total()*channels()/_elemChannels), 否则返回-1。checkVector(2),要求矩阵的列数位2。

    注意:第二种(红色框)求得是真正的最小外接矩形,如下图所示说明。

  • 相关阅读:
    (转)Scrapy 深入一点点
    解决Scrapy shell启动出现UnicodeEncodeError问题
    js回调方法
    UGUI 之 控件以及按钮的监听事件系统 存档
    重力感应示例
    网格概念
    Flash Player11异步解码Bitmap
    打包包含已修改过的bug
    ios7官方推荐icon尺寸
    项目资源通过swc获取
  • 原文地址:https://www.cnblogs.com/ybqjymy/p/14334228.html
Copyright © 2011-2022 走看看