博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OpenCV 中boundingRect、minAreaRect的用法区别
阅读量:4299 次
发布时间:2019-05-27

本文共 629 字,大约阅读时间需要 2 分钟。

当得到对象轮廓后,可用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。

 

 

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

你可能感兴趣的文章
X 分钟速成 Python
查看>>
对于模拟交易所引发的思考
查看>>
高频交易的几种策略
查看>>
量化策略回测TRIXKDJ
查看>>
量化策略回测唐安奇通道
查看>>
CTA策略如何过滤部分震荡行情?
查看>>
量化策略回测DualThrust
查看>>
量化策略回测BoolC
查看>>
量化策略回测DCCV2
查看>>
mongodb查询优化
查看>>
五步git操作搞定Github中fork的项目与原作者同步
查看>>
git 删除远程分支
查看>>
删远端分支报错remote refs do not exist或git: refusing to delete the current branch解决方法
查看>>
python multiprocessing遇到Can’t pickle instancemethod问题
查看>>
APP真机测试及发布
查看>>
iOS学习之 plist文件的读写
查看>>
通知机制 (Notifications)
查看>>
10 Things You Need To Know About Cocoa Auto Layout
查看>>
C指针声明解读之左右法则
查看>>
一个异步网络请求的坑:关于NSURLConnection和NSRunLoopCommonModes
查看>>