OpenCV中图像融合

     准备2副背景图像,注意图像黑色的部分,是作为mask用的,我们会用灰度图的方式打开它们,这时黑色的部分值为0,则图像融合时候,可以把第二幅图像在黑色的部分显示出来。

代码非常简单,注意就是图像copyTo函数的使用,把背景图像copy到前景图像时候,掩码部分不会拷贝。

CImageEffect::CImageEffect(){    backImage = cv::imread("background.png");

if(!backImage.data)        QMessageBox::about(NULL, "About Me", "can't open back image!");

maskImg = cv::imread("background.png",0);

//注意掩码的部分,要用黑色,这样在图像copy时候,不会copyif(!maskImg.data)        QMessageBox::about(NULL, "About Me", "can't oopen back image mask!");

logo1Img = cv::imread("2.png");

//注意掩码的部分,要用黑色,这样在图像copy时候,不会copyif(!logo1Img.data)        QMessageBox::about(NULL, "About Me", "can't oopen logo image mask!");    logo1maskImg = cv::imread("2.png",0);

//注意掩码的部分,要用黑色,这样在图像copy时候,不会copyif(!logo1maskImg.data)        QMessageBox::about(NULL, "About Me", "can't oopen logo mask image mask!");

}

void CImageEffect::ImageMerge1(cv::Mat& img, cv::Mat& out){    img.copyTo(out);    backImage.copyTo(out, maskImg);

cv::Mat imageROI;    imageROI = out(cv::Rect(10,10, logo1Img.rows, logo1Img.cols));    logo1Img.copyTo(imageROI, logo1maskImg);

}

下面是程序执行后的界面:

时间: 2024-09-19 20:31:15

OpenCV中图像融合的相关文章

库函数-opencv中图像轮廓矢量化算法

问题描述 opencv中图像轮廓矢量化算法 opencv中图像轮廓矢量化算法,有直接矢量化的库函数么?急求答案! 解决方案 说的有点含糊,如果你是要opencv中的代码,你可以直接抠出来用.

计算方差-请教大神在opencv中怎么计算图像局部方差

问题描述 请教大神在opencv中怎么计算图像局部方差 请教大神在opencv中怎么计算图像局部方差, 请教大神在opencv中怎么计算图像局部方差, 请教大神在opencv中怎么计算图像局部方差,谢谢 解决方案 你也在学opencv吗,可以交流下 解决方案二: 局部,是正常的矩形还是不规则区域 矩形: 坐标的x y即像素点的x y根据长宽遍历 不规则: 我暂时没有计算过 你图像是灰阶还是RGB 如果灰阶 按照灰阶度使用公式即可,如果是RGB建议先用cvmerxx 函数忘记了 把RGB通道合成之

利用OpenCV检测图像中的长方形画布或纸张并提取图像内容

原文:利用OpenCV检测图像中的长方形画布或纸张并提取图像内容 基于知乎上的一个答案.问题如下: 也就是在一张照片里,已知有个长方形的物体,但是经过了透视投影,已经不再是规则的长方形,那么如何提取这个图形里的内容呢?这是个很常见的场景,比如在博物馆里看到一幅很喜欢的画,用手机找了下来,可是回家一看歪歪斜斜,脑补原画内容又觉得不对,那么就需要算法辅助来从原图里提取原来的内容了.不妨把应用的场景分为以下: 纸张四角的坐标(图中红点)已知的情况 也就是上面的左图中4个红点是可以准确获取,比如手动标注

图像处理-opencv中怎么可以求得图像中区域轮廓的近似长短轴呢

问题描述 opencv中怎么可以求得图像中区域轮廓的近似长短轴呢 如题 解决方案 http://blog.csdn.net/augusdi/article/details/9000777

关于opencv中遍历图像时channels的问题

问题描述 关于opencv中遍历图像时channels的问题 小白求教!!! 在用at的方法,通过一个个像素遍历彩色图像,对像素点操作 for (int j = 0; j < NewCols; j++){ for (int i = 0; i < NewRows; i++){ for (int k = 0; k < img.channels(); k++) 但是我发现 有无 for (int k = 0; k < img.channels(); k++)这一句 对图像效果没影响,请问

在OpenCV中利用鼠标绘制矩形和截取图像的矩形区域

这是两个相关的程序,前者是后者的基础.实际上前一个程序也是在前面博文的基础上做的修改,请参考<在OpenCV中利用鼠标绘制直线> .下面贴出代码. 程序之一,在OpenCV中利用鼠标绘制矩形 [c-sharp] view plaincopy #include <cv.h>   #include <highgui.h>   #include <stdio.h>   #pragma comment( lib, "cv.lib" )   #pr

c++和opencv-利用opencv中的张正友方法进行摄像机标定

问题描述 利用opencv中的张正友方法进行摄像机标定 利用opencv和c++进行摄像机标定,采用的程序是网上的基于张正友的标定方法,网上说的结果和我的执行结果不同,是采用了不同角度的20张图片,理论上这20张图片的旋转向量和平移向量应该不相同,但是我最后求出来的旋转矩阵和平移向量竟然都是相同的,结果如下,,,,,,不知道是怎么回事儿??请教高手解答啊 第1幅图像的旋转向量: {{-2.65698e+303,-2.65698e+303,-2.65698e+303}} 第1幅图像的旋转矩阵: {

目标跟踪学习笔记_1(opencv中meanshift和camshift例子的应用)

在这一节中,主要讲目标跟踪的一个重要的算法Camshift,因为它是连续自使用的meanShift,所以这2个函数opencv中都有,且都很重要.为了让大家先达到一个感性认识.这节主要是看懂和运行opencv中给的sample并稍加修改.      Camshift函数的原型为:RotatedRect CamShift(InputArray probImage, Rect& window, TermCriteria criteria).      其中probImage为输入图像直方图的反向投影

使用Python+OpenCV进行图像模板匹配(Match Template)

本篇文章介绍使用Python和OpenCV对图像进行模板匹配和识别.模板匹配是在图像中寻找和识别模板的一种简单的方法.以下是具体的步骤及代码. 首先导入所需库文件,numpy和cv2. #导入所需库文件  import cv2  import numpy as np  然后加载原始图像和要搜索的图像模板.OpenCV对原始图像进行处理,创建一个灰度版本,在灰度图像里进行处理和查找匹配.然后使用相同的坐标在原始图像中进行还原并输出. #加载原始RGB图像  img_rgb = cv2.imread