比如现在有一张小图,是一张logo图片,然后有张大图,是一张底图,现在需要将这张logo叠加到底图的指定位置上进行显示,这个时候我们就可以使用OpenCV的ROI功能。
具体的示例代码如下
#include <iostream>
#include <opencv2/opencv.hpp>
int main()
{
cv::Mat roi_mat(1080, 640, CV_8UC3, cv::Scalar(0, 255, 0));
cv::Mat target_mat(1080, 1920, CV_8UC3, cv::Scalar(0, 0, 255));
cv::Rect roi(0, 0, 640, 1080);
roi_mat.copyTo(target_mat(roi));
cv::imwrite("result.png", target_mat);
return 0;
}
在上述代码中创建一个640x1080的log图,颜色为绿色,然后创建了一个1920x1080的底图,颜色为红色。
然后创建了一个roi,第一个参数表示在底图上roi的起始x坐标,第二个参数表示在底图上roi的起始y坐标,第三个参数表示在底图上roi的宽度,第四个参数表示在底图上roi的高度。
最后叠加图片的效果如下:
本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:OpenCV | C++ – 将一张图片叠加到另一张图片的指定位置上显示
原文链接:https://www.stubbornhuang.com/2650/
发布于:2023年06月07日 17:02:54
修改于:2023年06月07日 17:03:26
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论
52