QT/C++ 使用opencv 对图片裁剪/截取 cv::Rect 矩形类​的使用

对于图片的裁剪可以使用cv::Rect 矩形类

目录

1.使用cv::Rect 矩形类​裁剪图片

2. cv::Rect 矩形类的其他使用方法介绍


1.使用cv::Rect 矩形类​裁剪图片

img = cv::imread(name);//读取一张图片

cv::Rect rect(500,500, 4000, 4000);//创建一个Rect对象

img2 =img(rect);                     //img2就是被截取后的图片

 左侧为截取后图像

2. cv::Rect 矩形类的其他使用方法介绍

   首先创建一个对象

第一个参数:为矩形左上角顶点x轴坐标

第二个参数:为矩形左上角顶点y轴坐标

第三个参数:为矩形的宽度

第四个参数:矩形高度

创建一个Rect对象rect后rect会有以下几个功能:

rect.area();     //返回rect的面积 

rect.size();     //返回rect的尺寸 

rect.tl();       //返回rect的左上顶点的坐标 

rect.br();       //返回rect的右下顶点的坐标 

rect.width();    //返回rect的宽度 

rect.height();   //返回rect的高度 

rect.contains(Point(x, y));  //返回布尔变量,判断rect是否包含Point(x, y)点


//求两个矩形的交集和并集

rect = rect1 & rect2;

rect = rect1 | rect2;


//对矩形进行平移和缩放  

rect = rect + Point(-100, 100);    //平移,也就是左上顶点的x坐标-100,y坐标+100

rect = rect + Size(-100, 100);    //缩放,左上顶点不变,宽度-100,高度+100


//对矩形进行对比,返回布尔变量

rect1 == rect2;

rect1 != rect2;



//判断rect1是否在rect2里面
bool isInside(Rect rect1, Rect rect2)

{

    return (rect1 == (rect1&rect2));

}


//获取矩形中心点

Point getCenterPoint(Rect rect)

{

    Point cpt;

    cpt.x = rect.x + cvRound(rect.width/2.0);

    cpt.y = rect.y + cvRound(rect.height/2.0);

    return cpt;

}


//围绕矩形中心缩放

Rect rectCenterScale(Rect rect, Size size)

{

    rect = rect + size;    

    Point pt;

    pt.x = cvRound(size.width/2.0);

    pt.y = cvRound(size.height/2.0);

    return (rect-pt);

}





  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值