《cv中文参考手册-图像轮廓处理-结构分析与形状识别--外接正矩形轮廓区域》

在目标识别中我们首先要把感兴趣的目标提取出来,而一般常见的步骤都是通过颜色或纹理提取出目标的前景图(一幅黑白图像,目标以白色显示在图像中),接下来我们要对前景图进行分析进一步地把目标提取出来,而这里常常用到的就是提取目标的轮廓。OpenCV 里提取目标轮廓的函数是findContours,它的输入图像是一幅二值图像,输出的是每一个连通区域的轮廓点的集合:vector<vector<Point>>。外层vector的size代表了图像中轮廓的个数,里面vector的 size代表了轮廓上点的个数。下面我们通过实例来看函数的用法。提取到轮廓后,其实我们更关心的是如果把这些轮廓转换为可以利用的特征,也就是涉及到轮廓的描述问题,这时就有多种方法可以选择,比如矢量化为多边形、矩形、椭圆等。OpenCV里提供了一些这样的函数。

1、获取包围对象的垂直矩阵cv::Rect r0= cv::boundingRect(cv::Mat(contours[0]));
cv::rectangle(result,r0,cv::Scalar(0),2);

Calculates the up-right bounding rectangle of a point set.

C++: Rect boundingRect(InputArray points)
Python: cv2.boundingRect(points) → retval
C: CvRect cvBoundingRect(CvArr* points, int update=0 )
Parameters:

The function calculates and returns the minimal up-right bounding rectangle for the specified point set.

输入参数points是所要求最小外结矩的点集数组或向量.

cv::Rect r0= cv::boundingRect(cv::Mat(contours[0]));
cv::rectangle(result,r0,cv::Scalar(0),2); 

  1. // 轮廓表示为一个矩形 
  2. Rect r = boundingRect(Mat(contours[0])); //矩形
  3. rectangle(result, r, Scalar(255), 2);
  4. Mat srcImage(Size(500,500), CV_8UC3, Scalar(0));
  5. vector <Point> points ;
  6. Rect rect=boudingRect(points); //随机生成点集
  7. rectangle(srcImage,rect,Scalar(0,255,0),2); 选择区域Rect

    1)构造函数 Rect(x,y,width,height),x, y 为左上角坐标, width, height 则为长和宽。

    2)方法 contain(Point) 可返回改点是否在矩形内。

    3)方法 inside(Rect) 可返回该矩形是否在矩形内。

    4)交集 Rect=Rect1&Rect2

    5)  并集 Rect=Rect1|Rect2

    6) 平移 RectShift=Rect+Point

    7) 缩放 RectScale=Rect+Size

    8) 利用对角线两点来画矩形:

    void rectangle(Mat& img, Point pt1,Point pt2,const Scalar& color, int thickness=1, int lineType=8, int shift=0)

    9) 传入矩形参数来画矩形:

    void rectangle(Mat& img, Rect rec, const Scalar& color, int thickness=1, int lineType=8, int shift=0 )

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值