【OpenCV】OpenCV函数精讲之 -- 感兴趣区域ROI

 2023-09-09 阅读 30 评论 0

摘要:定义ROI区域有两种方法: 第一种:使用表示矩形区域的Rect。指定矩形的左上角坐标(构造函数的前两个参数)和矩形的长宽(构造函数的后两个参数)。 imageROI = image(Rect(500, 250, logo.cols, logo.rows)); opencv快速入门?第二

定义ROI区域有两种方法:

第一种:使用表示矩形区域的Rect。指定矩形的左上角坐标(构造函数的前两个参数)和矩形的长宽(构造函数的后两个参数)。

imageROI = image(Rect(500, 250, logo.cols, logo.rows));

opencv快速入门?第二种:指定感兴趣行或列的范围(Range)。Range是从起始索引到终止索引(不包括终止索引)的一连续序列。CRange可以用来定义Range。

imageROI = image(Range(250, 250+logoImage.rows), Range(200, 200+logoImage.cols));

下边用一个例子来说明ROI的用法。例子是利用ROI将一幅图加到另一幅图的指定位置。 

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>using namespace cv;
using namespace std;void main(){//读入图像并显示图像Mat srcImage = imread("dota_pa.jpg");Mat logoImage = imread("dota_logo.jpg");if (!srcImage.data)cout << "读取srcImage错误!" << endl;imshow("dota_pa原始图", srcImage);if (!logoImage.data)cout << "读取logoImage错误!"<< endl;imshow("dota_logo原始图",logoImage);//定义一个Mat类型并给其设定ROI区域Mat imageROI = srcImage(Rect((srcImage.cols - logoImage.cols), (srcImage.rows - logoImage.rows), logoImage.cols, logoImage.rows));//加载掩模板(灰度图就可以)Mat mask = imread("dota_logo.jpg", 0);//将掩膜复制到ROIlogoImage.copyTo(imageROI, mask);//显示结果namedWindow("<1>利用ROI实现图像叠加实例窗口");imshow("<1>利用ROI实现图像叠加实例窗口", srcImage);waitKey(0);
}

运行结果:

opencv roi,上述代码关于copyTo函数的用法,可参考博文OpenCV中copyTo()函数及Mask详解(附代码详解) 

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/3/26168.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息