#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
//#include <opencv2/cvaux.hpp>
#include <fstream>
using namespace std;
using namespace cv; int main()
{
Mat image1=imread("/Users/war/Desktop/2.jpeg");
Mat image2=imread("/Users/war/Desktop/1.jpeg");
if (image1.empty() || image2.empty())
{
printf("open error");
return ;
}
//1.新建一个要合并的图像
Mat img_merge;
Size size(image1.cols + image2.cols, MAX(image1.rows, image1.rows));
img_merge.create(size, CV_MAKETYPE(image1.depth(), ));
img_merge = Scalar::all();
Mat outImg_left, outImg_right;
//2.在新建合并图像中设置感兴趣区域
outImg_left = img_merge(Rect(, , image1.cols, image1.rows));
outImg_right = img_merge(Rect(image1.cols, , image1.cols, image1.rows));
//3.将待拷贝图像拷贝到感性趣区域中
image1.copyTo(outImg_left);
image2.copyTo(outImg_right);
namedWindow("image1", );
imshow("image1", img_merge);
waitKey();
return ;
}

openCV图像合成

#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
//#include <opencv2/cvaux.hpp>
#include <fstream>
using namespace std;
using namespace cv; int main()
{
Mat image1=imread("/Users/war/Desktop/1.jpeg");
Mat image2=imread("/Users/war/Desktop/2.jpeg");
if (image1.empty() || image2.empty())
{
printf("open error");
return ;
}
//push_back 方法将图像2拷贝到图像1的最后一行
Mat img_merge;
img_merge.push_back(image1);
img_merge.push_back(image2); namedWindow("img_merge", );
imshow("img_merge", img_merge); waitKey();
return ;
}
//#include <cv.h>
#include <opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
//#include <highgui.h>
#include <iostream> using namespace cv;
using namespace std;
int main()
{
double alpha = 0.5; double beta; double input; Mat src1, src2, dst; cout << " Simple Linear Blender " <<endl;
cout << "-----------------------" << endl;
cout << "* Enter alpha [0-1]: ";
cin >> input;
if (input >= 0.0 && input <= 1.0)
{
alpha = input;
} /// Read image ( same size, same type ),注意,这里一定要相同大小,相同类型,否则出错
src1 = imread("/Users/war/Desktop/1.png");
src2 = imread("/Users/war/Desktop/2.png"); if (!src1.data) { printf("Error loading src1 \n"); return -; }
if (!src2.data) { printf("Error loading src2 \n"); return -; } /// Create Windows
namedWindow("Linear Blend", ); beta = (1.0 - alpha);
addWeighted(src1, alpha, src2, beta, 0.0, dst); imshow("Linear Blend",dst); waitKey();
return ;
}
//#include <cv.h>
#include <opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
//#include <highgui.h>
#include <iostream> using namespace cv;
using namespace std;
int main()
{
double alpha = 0.5; double beta; double input; Mat src1, src2, dst; cout << " Simple Linear Blender " <<endl;
cout << "-----------------------" << endl;
cout << "* Enter alpha [0-1]: ";
cin >> input;
if (input >= 0.0 && input <= 1.0)
{
alpha = input;
} /// Read image ( same size, same type ),注意,这里一定要相同大小,相同类型,否则出错
src1 = imread("/Users/war/Desktop/1.png");
src2 = imread("/Users/war/Desktop/2.png"); if (!src1.data) { printf("Error loading src1 \n"); return -; }
if (!src2.data) { printf("Error loading src2 \n"); return -; } /// Create Windows
namedWindow("Linear Blend", ); beta = (1.0 - alpha);
addWeighted(src1, alpha, src2, beta, 0.0, dst); imshow("Linear Blend",dst); waitKey();
return ;
}

openCV图像合成的更多相关文章

  1. 12 opencv图像合成

    #include < stdio.h > #include < opencv2\opencv.hpp > #include < opencv2\stitching.hpp ...

  2. OpenCV学习笔记之课后习题练习4-1

    第四章课后练习1 1.本章完整讲述了基本的输入/输出编程以及OpenCV的数据结构.下面的练习是基于前面的知识做一些应用,为后面大程序的实现提供帮助.a.创建一个程序实现以下功能:(1)从视频文件中读 ...

  3. Python 图像处理 OpenCV (3):图像属性、图像感兴趣 ROI 区域及通道处理

    前文传送门: 「Python 图像处理 OpenCV (1):入门」 「Python 图像处理 OpenCV (2):像素处理与 Numpy 操作以及 Matplotlib 显示图像」 图像属性 图像 ...

  4. 使用OpenCV进行简单的人像分割与合成

    图像合成 实现思路 通过背景建模的方法,对源图像中的动态人物前景进行分割,再将目标图像作为背景,进行合成操作,获得一个可用的合成影像. 实现步骤如下. 使用BackgroundSubtractorMO ...

  5. opencv在图像显示中文

    在图像定位和模式识别时,经常需要把结果标注到图片上,标注内容可以是数字字母.矩形框等(opencv支持的)或者是中文汉字(借助freetype). 1.显示数字/矩形框 #include <op ...

  6. opencv中Mat与IplImage,CVMat类型之间转换

    opencv中对图像的处理是最基本的操作,一般的图像类型为IplImage类型,但是当我们对图像进行处理的时候,多数都是对像素矩阵进行处理,所以这三个类型之间的转换会对我们的工作带来便利. Mat类型 ...

  7. opencv源码:cascadedetect

    级联分类器检测类CascadeClassifier,提供了两个重要的方法: CascadeClassifier cascade_classifier; cascade_classifier.load( ...

  8. 基于OpenCV的车辆检测与追踪的实现

    最近老师布置了一个作业,是做一个基于视频的车辆检测与追踪,用了大概两周的时间做了一个简单的,效果不是很理想,但抑制不住想把自己的一些认识写下来,这里就把一些网络上的博客整理一下分享给大家,希望帮助到大 ...

  9. OpenCV人脸识别Eigen算法源码分析

    1 理论基础 学习Eigen人脸识别算法需要了解一下它用到的几个理论基础,现总结如下: 1.1 协方差矩阵 首先需要了解一下公式: 共公式可以看出:均值描述的是样本集合的平均值,而标准差描述的则是样本 ...

随机推荐

  1. 常用Linux Tips(不定期更新)

    查看本机所有开放端口 lsof -i -P | grep -i listen 查看一段文本单词出现频率 awk '{b[length($0)]++;total_lines++;for(i=1;i< ...

  2. webpack英文文档

    https://github.com/webpack/docs/wiki/contents

  3. 算法系列:Shell 排序

    Copyright © 1900-2016, NORYES, All Rights Reserved. http://www.cnblogs.com/noryes/ 欢迎转载,请保留此版权声明. -- ...

  4. Android开发 layer-list详解

    参考:https://blog.csdn.net/speverriver/article/details/80925686 挖坑,以后填坑

  5. crontab[计划任务],tar[压缩],grep[查找]

    计划任务:1.新建一个计划任务:crontab -e -----> 3*/1 * * * * date >> /tmp/data.txt查看计划任务:crontab -l.如果超过6 ...

  6. 数组(Array)与 字符串(String)公用的属性与方法

    数组与字符串都有很多方法,有一些方法是公用的,在这里就将数组与字符串公用的方法提取出来,方便大家的记忆 1. length 可通过str.length与arr.length分别取到字符串与数组的长度: ...

  7. csp-s模拟测试56Merchant, Equation,Rectangle题解

    题面:https://www.cnblogs.com/Juve/articles/11619002.html merchant: 二分答案,贪心选前m大的 但是用sort复杂度不优,会T掉 我们只是找 ...

  8. C++ Builder 2007中应用数据库SQLite(转载)

    第一次使用SQLite数据库,而且BCB2007也不熟,这两者的结合那就更让我难受了.今天只是简单的在BCB中调用SQLite,就花了我一下午时间,这也足见本人知识的浅薄,另一方面也说明我对这二者确实 ...

  9. VS2010文件包含

    一. 关于iostream.h VS2010的iostream不加.h在后面(加.h的是旧版本),把iostream作为类,正确使用方法: #include<iostream> using ...

  10. Template-Thymeleaf:Thymeleaf

    ylbtech-Template-Thymeleaf:Thymeleaf 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部 0. https://www.thyme ...