OpenCV 中 boundingRect和minAreaRect 的区别和用法
在通过findcontours得到对象轮廓后,可通过boundingRect() 得到的是包覆此轮廓的最小正矩形,minAreaRect()则是得到包覆此轮廓的最小斜矩形。boundingRect(intputArray points);minAreaRect(intputArray points);输入均为包含点的容器(vector)或者是Mat .其中mat类型使用的比较少如果参数是Mat类型
在通过findcontours得到对象轮廓后,可通过boundingRect() 得到的是包覆此轮廓的最小正矩形,minAreaRect()则是得到包覆此轮廓的最小斜矩形。
boundingRect(intputArray points);
minAreaRect(intputArray points);
输入均为包含点的容器(vector)或者是Mat .
其中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。
更多推荐
所有评论(0)