opencv学习笔记-3,图像混合

OpenCV总结3——图像拼接Stitching 之前折腾过一段时间配准发现自己写的一点都不准,最近需要进行图像的拼接,偶然的机会查到了opencv原来有拼接的库,发现opencv处理配准之外还做了许多的操作,就这个机会查找了相关的资料,同时也研究了以下他的源代码,做一个简单的总结。 Stitching 因为OpenCV已经将算法进行了高度的封装,所以用起来跟OpenGL类似,遵循了一条管线进行处理。 上图是OpenCV官方网站中提供的流程图。 从这个图中我们也能看出这是一个很复杂的过程,源代码中提到了七个部分: Features Finding an 阅读详情

一、原理

线性混合操作:


这里α 表示两种图片的融合比例,这个g(x) 表示 融合图片中的像素点,f0(x) 和 f1(x) 分别表示背景和前景图片中的像素点。


二、API

C++: void addWeighted(InputArray src1, double alpha, InputArray src2, double beta, double gamma,OutputArray dst, int dtype=-1)

1、 第1个参数,输入图片1, 

2、第2个参数,图片1的融合比例

3、第3个参数,输入图片2

4、第4个参数,图片2的融合比例

5、第5个参数,偏差

6、第6个参数,输出图片

注意:src1与src2图片大小相等,类型(rows,clos,type)相同才可进行addWeighted函数操作。


三、代码

#include<opencv2/opencv.hpp>
#include<highgui.h>
#include<iostream>
using  namespace  cv;
using  namespace std;

int main(int argc,char**argv)
{
Mat src1,src2,std;
src1=imread("1.jpg");
src2=imread("2.jpg");
//addWeighted(src1,0.3,src2,0.7,0.0,std);
//add(src1,src2,std);
multiply(src1,src2,std);

namedWindow("img1",WINDOW_AUTOSIZE);
imshow("img1",src1);
namedWindow("img2",WINDOW_AUTOSIZE);
imshow("img2",src2);
namedWindow("blend demo ",WINDOW_AUTOSIZE);
imshow("blend demo",std);

waitKey(0);
return(0);
}


四、调试结果


C++下OpenCV学习笔记 ----图像叠加与混合 C++下OpenCV学习笔记 ----图像叠加与混合 文章目录 一.感兴趣区域:ROI 二.线性混合操作 三.计算数组的加权和:addWeighted函数 四.颜色通道的分离与合并 五.图像的亮度和对比度 阅读详情

相关推荐

OpenCV 图像叠加、混合

本文是OpenCV图像视觉入门之路的第9篇文章,本文详细的在图像上面进行了图像叠加图像混合等操作。

断点 3846

OpenCV3学习笔记(7):图像混合,addWeighted()

0.图像混合 通过addWeighted函数,可以将两张大小和通道相同的图片按照一定比例混合到一起,所有的比例之和为1。 void cv::addWeighted( InputArray src1, //图片1 double alpha, //混合比例 InputArray src2, //图片2,其大小和通道与1相同 double beta, //混合比例 double gamma, //偏差,每次计算加上该值 OutputArray dst, //输出图

龚建波 716

【Python opencv】图像的混合

图像混合就是将两张图像进行融合,使得它们看起来像是合成在一起的。这个过程通常通过在不同的像素位置进行加权平均来实现。比如,你可以将一张图像的透明度调低,并将另一张图像叠加在其上,这样你就可以看到两张图像的部分内容。图像混合在许多领域中有广泛应用,如图像编辑、视频处理、特效制作等。

m0_62599305的博客 1280

opencv3.0学习笔记【10/10】图像线性混合和ROI

C++: void Mat::copyTo(OutputArray m) const C++: void Mat::copyTo(OutputArray m, InputArray mask) const 这个函数可以复制图像到另一个图像或矩阵上,可选参数是掩码 由于叠加的图像大小不一定相等,比如我们这里把一张小照片加到一张大照片上 我们可以在大照片上设置一个和小照片一样大的感兴趣区域

xxxmy 1199

Linux Component概述和高通component的使用

为了让subsystem按照一定顺序初始化设备才提出来的。subsystem中由很多设备模块,内核加载这些模块的时间不确定。子系统内有些模块是需要依赖其它模块先初始化才能进行自己初始化工作(例如v4l2 subdev和v4l2 video device),这时就要用到component框架。例如v4l2 subdev和v4l2 video device中,谁依赖谁先创建?

lz_1990的专栏 1610

python cartopy绘制扇形区域图/cartopy绘制北极部分区域

实际上,这个问题原因还是由于投影转换的问题,在set_extend时,绘制的上下边界仍然是方形、未被正确投影的边界,与我们的set_boundary存在冲突,最根本的原因还是在于cartopy对于投影计算的一些缺陷。另外我们需要指出的是:**该方法不适用于极地投影,即NorthPolarStereo,由于NorthPolarStereo本身投影特性只需一个参数,本身并不适合。我们绘制极地投影时,同样也是使用set_boundary绘制圆形边界,那么当我们想要绘制扇形时,可以通过。请根据喜好自行选择,

weixin_43750300的博客 3212

《OpenCV3编程入门》第5章-学习笔记3-2初级ROI图像混合-线性混合操作

公式:dst = src1[I]*alpha+ src2[I]*beta + gamma; void addWeighted(InputArray src1, double alpha, InputArray src2, double beta, double gamma, OutputArray dst, int dtype=-1); 第一个参数,InputArray类型...

王博(Kings)的博客 1644

告别Quartus II的漫长等待:用VSCode+iverilog+GTKWave搭建你的轻量级Verilog仿真环境(2024保姆级教程)

本文详细介绍了如何利用VSCode、iverilog和GTKWave构建高效的Verilog/SystemVerilog开发环境,替代传统的Quartus II和ModelSim工具。通过2024年最新的保姆级教程,帮助开发者实现秒级启动、低资源消耗的轻量级仿真环境,显著提升数字电路设计的开发效率和调试体验。

weixin_33690963的博客 561

《OpenCV3编程入门》学习笔记5 Core组件进阶(二) ROI区域图像叠加&图像混合

第5章 Core组件进阶 5.2 ROI区域图像叠加&amp;图像混合 5.2.1 感兴趣区域ROI(region of interest) 1.定义ROI区域两种方法: (1)定义矩形区域Rect:指定矩形左上角坐标和矩形的长和宽 (2)指定感兴趣行或列的范围Range:Range是从起始索引到终止索引的一段连续序列 2. 示例:利用ROI实现图像叠加 #include&lt;opencv2/...

ccchenxi的博客 330

[OrCad电路板设计系统].Orcad.Pspice.9.2下载安装

Orcad.Pspice.9.2详细下载安装图文步骤1 安装前准备工作1.1 下载安装包1.2 解压2 安装时步骤2.1 安装文件2.2 破解文件3 安装完成 1 安装前准备工作 1.1 下载安装包 打开百度网盘APP 链接:https://pan.baidu.com/s/1cMFxHUvuh5iEhFVT-lvciQ 提取码:7m65 1.2 解压 解压下载好的安装包 2 安装时步骤 2.1 安装文件 1.点击Setup安装文件,出现警告对话框,告诉你应该关闭所有病毒防火墙,点击确定 2.进入安装界面,

weixin_48924581的博客 1万+

DAC8568控制器实战:如何用STM32实现多通道同步输出(附完整代码)

本文详细介绍了如何使用STM32微控制器驱动TI的DAC8568多通道DAC控制器,实现高精度的多通道同步模拟信号输出。内容涵盖硬件设计要点、SPI时序精准配置、驱动层命令构建,并重点解析了通过LDAC引脚实现同步更新的核心策略,提供了完整的代码框架和实战案例,帮助工程师快速解决多通道同步输出的工程难题。

weixin_29179311的博客 171

OpenCV3学习笔记(五)-----初级图像混合、图像对比度和亮度值调整、分离颜色通道之多通道图像混合、离散傅里叶变换(DFT)

颜色空间缩减算法: 第1步遍历图像矩阵的每一个像素; 第2步对像素应用公式: int divideWith=10; uchar table[256]; for (int i=0;i&lt;256;i++) table[i]=divideWith*(i/divideWith); LUT函数: Look up table操作------批量进行图像元素查找、扫描与操作图像。 M...

qq_37894023的博客 851

【学习体会】Lighttools8.4.0:矩形阵列光源+条形光源的光学仿真分析

在solidworks中设计了条形光源的基本结构: 由32*6个矩形led组成矩形光源阵列,如下所示 另存为step文件后,导入lighttools中,这里要设置模型的光学属性为:吸收体(机械) 因为我们设计的光源模型是一个整体,我们不能单个面的设置光源,比如说, 这样做的话并不会是这个面设置为光源,而是会把做一个模型都变成一个光源,如下 这显然不是我们想要的 那么,我们就在led位置上放置一个矩形面光源, 这样我们就放置好了一个面光源, 但是问题是,还有191...

LeonJin的博客 1万+

opencv3学习笔记(三)--------HighGUI图形界面初步-----imwrite()函数、初级图像混合、滑动条创建和使用、鼠标交互

在OpenCV中生成一个png图片,并写入当前工程目录下 OpenCV的命名空间:using namespace cv;(可不用敲cv::) Mat类:用于保存图像以及其他矩阵数据的数据结构,默认情况下其尺寸为0;            Mat srcImage=imread("1.jpg"); imread()函数:图像的载入------Mat imread(const string&a...

qq_37894023的博客 705

C++碰撞检测库FCL安装(MinGW,CMake)

FCL碰撞检测库、libccd\Eigen库编译配置,全流程问题记录

weixin_45650767的博客 4676

1998年高教社杯全国大学生数学建模竞赛 B 题:《灾情巡视路线》真题解析与 MATLAB 解决方案

🏆 本文已收录于专栏:《滚雪球学数学建模(含历年真题)》,持续更新最新及历年数学建模竞赛资料,每篇内容力求做到“问题讲透、模型讲清、代码可用、论文可参考”,帮助你从零开始逐步建立完整的数学建模知识体系。

**My Coding Family** 883

OpenCV3 之 图像叠加&图像混合

1. 图像叠加 通过一个图像掩膜(mask),直接将插入处的像素设置为logo图像的像素值 //----------------------------------【ROI_AddImage( )函数】---------------------------------- // 函数名:ROI_AddImage() // 描述:利用感兴趣区域ROI实现图像叠加 //----------------...

罗伯特祥的博客 3407

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

【opencv学习笔记】006之图像混合 addWeighted()函数详解

目录 一、前言 二、图像混合 1、什么是图像混合 1.图像混合介绍 2.算法原理 2、API:addWeighted() 1.函数原型 2.API参数解释 三、全部代码及结果展示 1、代码 2、运行效果图 一、前言 欠下的总是要还的,继续给大家更新有关于OpenCV的教程。 为什么每次开头都要先说这么一句话呢,就是为了激励自己,做一件事,不要拖,好好认认真真做下去,真的...

水亦心的博客 4734

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

OpenCV实现图像的混合

OpenCV实现图像的混合

qq_53545309的博客 1445

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

opencv之图像混合

目录 一. 前言 二、图像混合 ROI区域图像叠加 线型图像混合 算法原理 三、全部代码 一、前言 我们做图像处理的时候,有时候会遇到一种难题——想要获得一个理想图片,但是往往一张图片不能完全包含我们想要的东西,想要将两个图片的内容在同一张图片上展示出来,因此图像混合可以帮我们实现。像幻灯片翻页时设置的前后页缓慢过渡叠加效果,以及电影情节过渡时经常出现的画面叠加效果都运用了图像混合操作。接下...

weixin_44623637的博客 885

Opencv图像操作——图像遍历、图像ROI选取、图像混合

前言 Opencv图像操作与混合,用opencv实现对图像的修改 一、图像是什么? 在这一篇文章中,我们对图像已经有了一定的了解 https://blog.youkuaiyun.com/ivan_9/article/details/113059961 二、OpenCV中数据类型和常用数据类型对应 数据类型 opencv数据类型对应 Mat<uchar> CV_8U Mat<char> CV_8S Mat<ushort> CV_16U Mar<sh

ivan_9的博客 3127

OpenCV学习笔记(三):多通道图像分离、混合算子:split(),merge()

OpenCV示例学习(三):多通道图像分离、混合算子:split()、merge() #include <opencv2/opencv.hpp> #define BRG_BLUE_CHANNEL 0 #define BRG_GREEN_CHANNEL 1 #define BRG_RED_CHANNEL 2 using namespace cv; int main(int argc...

Leon_Chen的博客 812

【OpenCV】—ROI区域图像叠加&图像混合

(1)定义ROI(Rect)使用表示矩形区域的Rect。他指定矩形的左上角坐标(构造函数的前两个参数)和矩形的长宽(构造函数的后两个参数) 指定感兴趣行和列的范围(Range)。Range是指从起始索引到终止索引(不包含终止索引)的一连段连续序列。cRange可以用来定义Range 2、线性混合操作 g(x)=(1−a)fa(x)+af3(x) g(x)=(1-a)fa(x)+af3(x) g(x)=(1−a)fa(x)+af3(x) 我们通过在范围0-1之间改变alpha值,来对两幅图像(f0(

qq_44859533的博客 1934

opencv学习笔记五(图像混合)

opencv学习笔记五(图像混合)图像混合理论-线性混合操作相关API代码实现效果代码演示 图像混合 理论-线性混合操作 理论-线性混合操作的数学原理 :G(x)=(1-a)F(x)+aQ(x) 其中a表示某一图像所占权重,(1-a)表示另一图像所占权重,a的取值范围为0~1之间。 F(x)和Q(x)为参与混合的两幅输入图像,G(x)表示输出图像 G(x)表示通过对两幅图像的每个像素值做线性加权得到最终的输出图像 相关API C++ void addWeighted(InputArray src1,

吾名招财的博客 431

【Qt+opencv】ROI与图像混合

在计算机视觉和图像处理中,我们经常需要对图像的某一部分(也就是ROI,Region of Interest)进行操作。这些操作可能包括滤波、缩放、旋转等。同时,我们也可能需要将处理后的ROI与原图像进行混合,以达到特定的视觉效果。本文将介绍如何在Qt和OpenCV的环境下进行ROI的提取和操作,以及如何将ROI与原图像进行混合。通过本文,我们了解了如何在Qt和OpenCV的环境下进行ROI的提取和操作,以及如何将ROI与原图像进行混合。

m0_62599305的博客 1610

OpenCV-Python图像混合

学习图片见的数学运算,图像混合 最终达到的效果如下: 一、图片相加(改变图像的颜色) 对于两张图片的叠加,我们这里可以使用cv2.add()函数,但要保证两证图片的高、宽、通道数相同。 值得一提的是,numpy可以直接用 + 链接,但是这两种方法达到的效果可能不同: x = np.uint8([250]) y = np.uint8([10]) print(cv2.add(x, y)) # 25...

m0_46491438的博客 2034
上一篇: opencv学习笔记-2,图像颜色空间转换
下一篇: opencv学习笔记-4、调整图像亮度和对比度
xiaotingting_
博客等级 码龄9年 2粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值