8-感兴趣区域ROI图像获取操作

原创 2018年04月17日 09:26:44

====================分割线====================


       上一节最后部分中,我们在处理两个图像尺寸不同时要融合过程中,提到了利用ROI,那么什么是ROI呢?

       在图像处理中,我们常常需对图像中某个重点区域进行分析处理,而不改变图像中的其他区域,因此这就要从整幅图像中提取感兴趣区域ROI(region of interest)。OpenCV中常常用到Rect来设置相应的ROI。下面我们通过一个demo来简单的了解是如何提取感兴趣区域ROI。

=====================分割线===================

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp> 
#include <iostream> 
using namespace cv;
using namespace std;
/*
在图像处理中,我们常常需对图像中某个重点区域进行分析处理,
而不改变图像中的其他区域,因此这就要从整幅图像中提取感兴趣区域ROI(region of interest)
OpenCV中常常用到Rect来设置相应的ROI。
下面我们通过一个demo来简单的了解是如何提取感兴趣区域ROI。

*/

//1 全局变量
Mat g_srcImage;//源图像
Mat g_roiImage;//提取制定坐标区域ROI图像

//2 getROI()函数声明,获取ROI及显示
void getROI(int xRoi, int yRoi, int widthRoi, int heightRoi);

int main()
{
	//3 读取源图像并检查图像是否读取成功
	g_srcImage = imread("demo01.jpg");
	if (g_srcImage.empty())
	{
		cout << "读取图像有误,请重新输入正确路径" << endl;
		return -1;
	}
	imshow("源图像", g_srcImage);//窗口显示源图像
	cout << "源图像g_srcImage的行高:" << g_srcImage.rows << ",列宽:" << g_srcImage.cols << endl;

	//4 利用Rect选择区域(150,170,350,200)
	int xRoi = 50;
	int yRoi = 70;
	int widthRoi = 50;
	int heightRoi = 20;
	getROI(xRoi,yRoi,widthRoi,heightRoi);//改变其中的四个变量的值,即可以调整ROI的位置及其尺寸 

	//5 输出信息并保持等待状态
	cout << "ROI图像g_roiImage的行高:" << g_roiImage.rows << ",列宽:" << g_roiImage.cols << endl;
	waitKey(0);
	return 0;
}

void getROI(int xRoi, int yRoi, int widthRoi, int heightRoi)
{
	//将感兴趣区域复制到输出图像roiImage上。 方式一:
	g_srcImage(Rect(xRoi,yRoi,widthRoi,heightRoi)).copyTo(g_roiImage);
	/*
	方式二:
	roiImage = g_srcImage(Rect(xRoi, yRoi, widthRoi, heightRoi));
	*/
	imshow("提取的g_roiImage图像", g_roiImage);

}

图像感兴趣区域ROI获取的正确方式

获取感兴趣区域图像,能保存得到正确的图像(cv::Mat)。 但转换成后续所需要的接口数据类型(const void* const)之后,处理结果错误。 提醒大家,获取感兴趣区域图像的方式要注意!...
  • rongrongyaofeiqi
  • rongrongyaofeiqi
  • 2016-09-12 17:24:42
  • 3749

OPENCV图像处理基础(二)感兴趣区域ROI

说到图像的感兴趣区域,玩过微博的对水印不陌生吧,水印就是感兴趣区域的一种用法。 今天就在这里演示一下如何上水印。其实其思路就是,在源图片(要被上水印的图)中画划出一片区域,然后在用水印图(不一定要是...
  • chenpidaxia
  • chenpidaxia
  • 2016-03-12 22:04:20
  • 3277

设置图像的感兴趣区域(ROI)

新函数用红色显示,程序为:#include #include #include void main(){IplImage * src=cvLoadImage("baboon.jpg",-1);IplI...
  • th0624
  • th0624
  • 2010-12-28 10:53:00
  • 5571

基于opencv的感兴趣区域ROI的操作

本文章主要对感兴趣区域ROI的操作(对于ROI区域图像叠加)说明 在图像处理的领域,我们常常需要去设置自己感兴趣的区域(ROI,region of interest),来专注或者简化工作过程...
  • JiaFanChen
  • JiaFanChen
  • 2016-04-14 10:16:19
  • 4495

C/C++ OpenCV设置感兴趣区域ROI

C/C++ OpenCV设置感兴趣区域RO
  • qq78442761
  • qq78442761
  • 2017-01-09 15:05:09
  • 3095

opencv学习之感兴趣区域(ROI)

新手学习就是苦啊,好多东西都要一点点的摸索,之前的经验太少,积累太少,许多问题太简单了,问别人都不好开口,谁让自己太low了啊! 那就自己折腾呗…… 今天看了opencv的矩阵和图像操作部分内容,这里...
  • shihz_fy
  • shihz_fy
  • 2014-11-26 22:11:21
  • 10669

Python+OpenCV感兴趣区域ROI提取

Python+OpenCV2感兴趣区域ROI提取方法一:使用轮廓步骤1"""src为原图""" ROI = np.zeros(src.shape, np.uint8) #感兴趣区域ROI p...
  • xinyu3307
  • xinyu3307
  • 2017-06-23 22:00:28
  • 3532

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

图像感兴趣区域(ROI)提取主要使用掩模来进行。掩模是二值图像,感兴趣区域的掩模值设置为255,非感兴趣区域的掩模值为0 获取掩模的方法主要有两种 方法一 使用opencv中Mat函数方法,调用Ma...
  • ktigerhero3
  • ktigerhero3
  • 2016-11-07 21:04:03
  • 19239

Iplimage设置感兴趣区域(ROI)

原图: 关键函数: cvSetImageROI( img , cvRect(100,100,150,200) );//选定感兴趣区域 cvAddS(img,cvScalar(200,0,...
  • u011430438
  • u011430438
  • 2016-01-19 15:58:21
  • 676

OpenCV 中Mat对象的获取ROI区域自图像的问题

问题:         OpenCV 2中使用Mat图像数据进行ROI提取子图像的操作 代码: int main() { // Mat big = Mat::zeros (400,...
  • mylaf
  • mylaf
  • 2017-02-06 09:26:06
  • 1578
收藏助手
不良信息举报
您举报文章:8-感兴趣区域ROI图像获取操作
举报原因:
原因补充:

(最多只允许输入30个字)