一直使用的是OpenCV C++的接口,但是有些只能用纯c的环境下,就不得不用c接口了,IplImage是c接口图像数据最基本的数据结构,获取其ROI区域的过程如下,首先通过cvSetImageROI(IplImage* src, CvRect rect)设定ROI区域,然后将给部分图像数据拷贝出来,最后通过cvResetImageROI(IplImage* src)重置ROI区域即可。

这里为了使用方便,封装了一下:

IplImage* get_ipl_roi(IplImage* src, CvRect rect)
{cvSetImageROI(src, rect);IplImage* tmp = cvCreateImage(cvSize(src->roi->width, src->roi->height), src->depth, src->nChannels);cvCopy(src, tmp, NULL);cvResetImageROI(src);return tmp;
}

测试代码如下:

int main()
{IplImage *src = cvLoadImage("Hepburn.png", 0);CvRect rect = cvRect(60, 60, 130, 130);IplImage *roi = get_ipl_roi(src, rect);cvNamedWindow("ROI", CV_WINDOW_AUTOSIZE);cvShowImage("ROI", roi);cvWaitKey(0);cvReleaseImage(&roi);cvDestroyWindow("ROI");
}

结果如下:

原始图像

ROI

【OpenCV】IplImage类型图像ROI矩形区域的快速获取相关推荐

  1. 【千律】OpenCV基础:图像外接矩形、最小外接矩形、凸包、外接圆、拟合椭圆的绘制

    环境:Python3.8 和 OpenCV 内容:图像外接矩形.最小外接矩形.凸包.外接圆.拟合椭圆的绘制 import cv2 as cv import numpy as np import mat ...

  2. python opencv 截取矩形区域_python+OpenCV 鼠标交互图片切割矩形区域

    about 本文参考了: 不用鼠标交互,手动设参 先来个热身运动的先,直接手动设参选择.一个要点就是把一个RGB图片看成一个3维的数组. import cv2 def main(): org = cv ...

  3. OpenCV学习五:图片矩形区域的读取

    #include <opencv2/opencv.hpp> #include <stdio.h> #include <stdlib.h>using namespac ...

  4. OpenCV--0016:图像ROI与ROI操作

    文章目录 一.图像ROI 1. 概念 2. 图像ROI操作 2.1 矩形感兴趣区域 2.1.1 使用Rect函数 2.1.2 使用Range 2.1.3 应用实例 2.2 不规则ROI区域 2.2.1 ...

  5. 利用OpenCV提取图像中的矩形区域(PPT屏幕等)

    ** 前言 ** 最近参加了大创项目,题目涉及到计算机视觉,学姐发了个修正图像的博客链接,于是打算用这个题目入门OpenCV. 分析问题 照片中的PPT区域总是沿着x,y,z三个轴都有倾斜(如下图), ...

  6. 利用OpenCV对图像倾斜矩形目标区域进行固定大小裁剪

    文章目录 目的 效果展示 为什么要固定大小裁剪? 代码及解释 原始文件 代码 代码解释 ① 主程序 ② ReadTxt() 函数 ③ rotate() 函数 目的 这篇博客主要介绍如何使用 OpenC ...

  7. OpenCV:将一幅图像复制到另一幅图像的指定区域中ROI

    用途: 使用一幅图像(或ROI)覆盖(替换)另一图像的指定区域,直接的方法是逐个像素进行复制,但这是一种效率很低的操作,下面介绍opencv中一种效率较高且简便的操作. 函数:roiImg.copyT ...

  8. openCV任意几何形状感兴趣区域(ROI)提取

    图像感兴趣区域(ROI)提取主要使用掩模来进行.掩模是二值图像,感兴趣区域的掩模值设置为255,非感兴趣区域的掩模值为0 获取掩模的方法主要有两种 方法一 使用opencv中Mat函数方法,调用Mat ...

  9. OpenCV(十)ROI感兴趣区域

    目录 1.概念 2.代码 3.效果 参考资料 1.概念 在图像处理的时候,常常我们只想对一部分图像进行处理,也就是感兴趣区域(ROI,region of interest).我们把一部分图像区域分化独 ...

最新文章

  1. 艾特某人代码实现_为何敲代码,学好数学很重要?
  2. DNN开发中的一些细节(3)
  3. C#语言连接Mysql数据库实现增删改查
  4. 安卓最新系统_成纺移动校园(移动办公系统)V3.2.1 安卓最新版
  5. DocumentFragment使用
  6. acer笔记本电脑如何进入bios设置
  7. oracle数据如何导入hadoop,hadoop hive 与 Oracle 互相导入数据
  8. python apply函数_8 个 Python 高效数据分析的技巧
  9. 广度(宽度)优先搜索思路总结
  10. bzoj4355 Play with sequence(吉司机线段树)题解
  11. 怎么计算算法复杂度 big O
  12. html滑动验证图片,纯js实现图片滑块验证
  13. 【搜索引擎】强推!最好用资源最全的十个百度网盘搜索引擎
  14. (c++课程设计)简单车辆管理系统(有五种类型的车辆)代码+报告
  15. 颜色空间转换-从RGB到LCH-亮度饱和度色度
  16. 用TFmini-Plus实现人流、身高测量
  17. 适合计算机的音乐,好听的适合做电脑开机音乐的歌
  18. 多颗微粒的阵列光镊系统设计
  19. 实战! excel中常用函数INDIRECT公式的用法
  20. 利用python库twilio来免费发送短信

热门文章

  1. jvm性能调优实战 - 38System.gcy引发的惨案
  2. 深入理解分布式技术 - ServiceMesh 服务网格
  3. 深入理解分布式技术 - 微服务为什么需要API 网关
  4. python 开放_Python
  5. 2020-12-08 Halcon初学者知识:【3-1】Halcon的语法
  6. 小程序之 保存canvas生成商品图片附加小程序二维码 分享到朋友圈
  7. oracle into多个变量,Oracle中merge into的使用:该命令使用一条语句从一个或者多个数据源中完成对表的更新和插入数据....
  8. oracle遍历表做查询,oracle 语句之对数据库的表名就行模糊查询,对查询结果进行遍历,依次获取每个表名结果中的每个字段(存储过程)...
  9. Linux下pdf读取乱码
  10. SVM+HOG:从完全不包含人体的图片中随机剪裁出64*128大小的用于人体检测的负样本