1、Mat

Mat src, image_src;                  //原图
Mat imageROI;                       //ROI区域
Mat TempImg;                        //裁取出的区域存储为Mat
int x_begin, y_begin, width, height;        //裁取区域的坐标及大小
int srcWidth, srcHeight;                    //存储原图宽、高//赋初值
x_begin = 0;
y_begin = 0;
width = 100;
height = 100;//读取原图
src = imread("test.jpg", 1);
if(!src.data){cout<<" image read error!"<<endl;return -1;
}
srcWidth = src.cols;   //获取原图宽、高
srcHeight = src.rows;//控制裁取区域不超过原图
if(width < 1 || height < 1 || width > srcWidth || height > srcHeight){LOOGE<<"[Rect error: srcWidth = "<<srcWidth<<", srcHeight = "<<srcHeight<<", x_begin = "<<x_begin<<", y_begin = "<<y_begin<<", width = "<<width<<", height = "<<height<<" ]";return -1;
}
if(x_begin + width > srcWidth)      width = srcWidth - x_begin;
if(y_begin + height > srcHeight)height = srcHeight - y_begin;//区域裁取
image_src = src.clone();           //备份原图
imageROI = image_src(Rect(x_begin, y_begin, width, height));   //设置待裁取ROI
imageROI.convertTo(TempImg, TempImg.type());        //将ROI区域拷贝至dst

2、IplImage

int x_begin, y_begin, width, height;         //裁取区域的坐标及大小
int srcWidth, srcHeight;                        //原图宽、高//赋初值
x_begin = 0;
y_begin = 0;
width = 100;
height = 100;//读取原图
IplImage* src = cvLoadImage("test.jpg", 1);
if(!src){cout<<" image read error!"<<endl;cvReleaseImage(&src);return -1;}
srcWidth = image->width;    //获取原图宽、高
srcHeight = image->height;//控制裁取区域不超过原图
if(width < 1 || height < 1 || width > srcWidth || height > srcHeight){LOOGE<<"[Rect error: srcWidth = "<<srcWidth<<", srcHeight = "<<srcHeight<<", x_begin = "<<x_begin<<", y_begin = "<<y_begin<<", width = "<<width<<", height = "<<height<<" ]";cvReleaseImage(&src);return -1;
}
if(x_begin + width > srcWidth) width = srcWidth - x_begin;
if(y_begin + height > srcHeight)height = srcHeight - y_begin;//区域裁取
IplImage* image_src = cvCloneImage(src);   //备份原图
cvSetImageROI(image_src, cvRect(x_begin, y_begin, width, height));  //设置待裁取ROI
IplImage* dst = cvCreateImage(cvSize(width, height), src->depth, src->nChannels);    //创建裁取区域大小的IplImage*
cvCopy(image_src, dst);     //将ROI区域拷贝至dst//释放资源
cvReleaseImage(&src);
cvResetImageROI(image_src);
cvReleaseImage(&image_src);

C++ 从一幅图片上裁取需要的区域相关推荐

  1. C++ 判断一幅图片中的两个矩形区域是否邻近

    应用: 存在于一幅图片中的两个矩形区域,计算其距离并判断其是否邻近.邻近则返回真,否则返回假. (注:我在此处存储单个矩形的数据格式为vector<int>,方便自己读写数据) int A ...

  2. 利用Python在Jetson TX2上抓取和显示摄像头影像

    小编来自水下机器人社区193369905,里面小编给出了很多资料 在本贴中,小编"我"分享了如何使用python 代码(及 OpenCV)在Jetson TX2上抓取和显示摄像头影 ...

  3. idea从git上拉取并管理项目

    idea从git上拉取并管理项目 1:idea从git上拉取项目 (1)FILE --> New --> Project from Version Control --> Git ( ...

  4. 从Internet上抓取指定URL的源码的方案

    从Internet上抓取指定URL的源码的方案 作者: 引言: 在做无线项目的时候,与通讯公司的数据通讯有一部分是通过XML交互的,所以必须要动态抓取通讯公司提供的固定的Internet上的数据,便研 ...

  5. 根据专利号到专利查询的网站上抓取想要的信息(上)

    前述:前几天看到有人论要请别人写一个从从网页上抓取某个专利号的收费信息的一个程序,说实话我自己知道那里面的原理是什么,但一直没有自己动手实现以下.根据自己的实际的工作需要一般是有一张Excel表,第一 ...

  6. 数理统计 - 圆环上随机取3个点组成一个锐角三角形的概率

    问题 在一个圆环上随机取3点,求这3个点组成一个锐角三角形的概率 题解 如下图所示: 取单位圆上任意不同两点A和B,A.B两点确定以后,点A.B.C三点要够成锐角三角形,点C必须在DE之间,否在将构成 ...

  7. 利用在京东上爬取的商品评论做分析

    利用在京东上爬取的商品评论做分析 1.读入数据 Python中读入数据,查看数据 import pandas as pd import re import os os.chdir("C:/U ...

  8. 两个相离圆上各取一点P、Q,求线段PQ中点M的轨迹。

    中点轨迹多种表现形式 来源:[南通]张海洋(1531861160) 9/17/2021 6:07:47 PM 题目:两个相离圆上各取一点P.Q,求线段PQ中点M的轨迹. 1. 构造坐标系 不妨取一个圆 ...

  9. Matlab 从怀俄明大学上爬取探空数据

    function sounding %设置爬取时间  49行可以选取早八晚八,默认是都下载 start_year       =2019     ; start_month      =06     ...

最新文章

  1. iframe元素內嵌页面如何去掉继承的html及body背景色/背景图片
  2. 终于把XGBoost总结写出来了!
  3. 线下活动【深圳】用Leangoo做Scrum敏捷开发实战课(免费)
  4. windows查看端口占用 windows端口占用 查找端口占用程序 强制结束端口占用 查看某个端口被占用的解决方法 如何查看Windows下端口占用情况...
  5. hdu 4982 贪心构造序列
  6. Python学习笔记--组合数据类型
  7. mfc cstring 写入文件_兄弟Brother单色激光传真一体机MFC系列不能写入此文件夹提示解决方案...
  8. Minimize the Permutation CodeForces - 1256(贪心)
  9. 《大数据》第1期“研究”——大数据管理系统评测基准的 挑战与研究进展(上)...
  10. 组合框载入数据库的内容
  11. 人工智能在财富领域的应用与探索
  12. php模板建站seo,phpwin建站教程,phpwind模板
  13. 2022年R2移动式压力容器充装特种作业证考试题库及在线模拟考试
  14. 使用ado访问excel中的数据
  15. eclipse新建java项目报错 jrt-fs.jar
  16. Illustrating How Mechanical Assemblies Work
  17. python和易语言哪个容易胖_坐着长肉还是躺着长肉 哪个更容易胖
  18. 在Python中如何判断一个对象的类型?
  19. 最大数leetcode_Leetcode:最大化有效体验
  20. Centos如何联网

热门文章

  1. Python实现办公自动化
  2. 《中国迈向新一代人工智能》全文来了。道翰天琼认知智能平台为您揭秘新一代人工智能
  3. c语言vb考试试题,湖南省计算机二级VB以及C语言考试(OFFICE部分基础选择题)
  4. 云服务器和共享主机,共享虚拟主机、独享虚拟主机还是云服务器?
  5. 查看索引是否命中oracle,Oracle 索引命中详解
  6. linux zip压缩排除目录,Linux系统zip压缩命令详细参数,附文件排除选项的正确用法...
  7. 记一次3dmax入门
  8. Bag标签之轻开B2C电子商务网站登录校验实例
  9. 将分布式项目sck-demo部署到本地kubernetes,以及实现版本升级和回滚
  10. 黑苹果热补丁hotpatch来禁用笔记本独显