使用vs2017新建一个项目

混合A,B两张图的基础算法:

outColor = srcColor * srcAlpha + destColor * (1 - srcAlpha)

输出颜色 = 源颜色 * 源混合因子 + 目标颜色 * ( 1 - 源混合因子 )

这里scrAlpha从源图的Alpha通道获取

代码如下:

// alphablendimg.cpp: 定义控制台应用程序的入口点。
// #include "stdafx.h"
#include <opencv2/opencv.hpp> using namespace cv;
using namespace std; int main()
{
// 读取两张图片
Mat destImg = imread("backGround.jpg", -);
Mat srcImg = imread("foreGroundAsset.png", -);
// 取出A图片的Alpha值
Mat bgra[];
split(srcImg, bgra);
Mat outImage = Mat::zeros(destImg.size(), CV_8UC3); // 逐像素混合 A,B两张图的r,g,b颜色,混合公式 outColor = srcAlpha*srcColor + (1-scrAlpha)*destColor
unsigned char* fptr = reinterpret_cast<unsigned char*>(srcImg.data);
unsigned char* bptr = reinterpret_cast<unsigned char*>(destImg.data);
unsigned char* aptr = reinterpret_cast<unsigned char*>(bgra[].data);
unsigned char* outImagePtr = reinterpret_cast<unsigned char*>(outImage.data); int numberOfPixels = srcImg.rows * srcImg.cols * srcImg.channels();
int i, j;
for (j = ; j < numberOfPixels;)
{
float srcAlpha = (*aptr)/255.0; *outImagePtr = (*fptr)*srcAlpha + (*bptr)*( - srcAlpha); // Blue
outImagePtr++;fptr++;bptr++;
*outImagePtr = (*fptr)*srcAlpha + (*bptr)*( - srcAlpha); // Green
outImagePtr++;fptr++;bptr++;
*outImagePtr = (*fptr)*srcAlpha + (*bptr)*( - srcAlpha); // Red
outImagePtr++;fptr++;bptr++; fptr++; // 跳过Alpha通道
j += ; aptr++;
} imshow("alpha blended image", outImage);
waitKey();
cv::destroyAllWindows();
return ;
}
源图片:
目标图片:

混合效果:

 

图像处理:AlphaBlend混合两张图片的更多相关文章

  1. OpenCV入门:(四:混合两张图片)

    1. 原理 对两张图片使用如下公式可以得到两张图片的混合图片, 其中f0(x),f1(x)分别是图片1和图片2同一位置的像素点. 2. OpenCV中的AddWeight函数 函数和参数说明: ) s ...

  2. opencv_判断两张图片是否相同

    QQ:231469242 pip install opencv 如果找不到版本,去非官方下载opencv第三方包http://www.lfd.uci.edu/~gohlke/pythonlibs/ 下 ...

  3. Atitti 图像处理 图像混合 图像叠加 blend 原理与实现

    Atitti 图像处理 图像混合 图像叠加 blend 原理与实现 混合模式 编辑 本词条缺少信息栏,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! 混合模式是图像处理技术中的一个技术名词,不 ...

  4. HTML两张图片叠加问题的进一步修改

    要想两张图片叠加,只需在circle添加一个Position:absolute就OK了 以上几步,很多大侠前辈都已经说过,相信不用再啰嗦,我想说的是一种扩展,将示例放到右边,可能因为我悟性低,研究了一 ...

  5. Java 比较两张图片的相似度

    import java.awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO; /** * 比较两张图片 ...

  6. iOS把两张图片合成一张图片

    0x00 步骤 先读取两张图片把创建出CGImageRef 创建上下文画布 把图片依次画在画布指定位置上 从上下文中获得合并后的图片 关闭上下文 释放内存 0x01 代码实现 - (void)comp ...

  7. OpenCV两张图片的合并

    转载请注明出处..! http://blog.csdn.net/zhonghuan1992 OpenCV两张图片的合并 原理: 两张图片合并,想想图片是用一个个像素点来存储.每一个像素点有他的值. 那 ...

  8. 用python对比两张图片的不同

    from PIL import Image from PIL import ImageChops def compare_images(path_one, path_two, diff_save_lo ...

  9. java实现把两张图片合并(Graphics2D)

    package com.yin.text; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.i ...

随机推荐

  1. cisco网络设备IOS升级步骤

    step1:检查和备份================================================================4507R#write4507R#copy run ...

  2. 17.python内置函数2

    python内置函数1:https://www.cnblogs.com/raitorei/p/11813694.html # max,min高级玩法 # l=[1,3,100,-1,2] # prin ...

  3. TCP/IP Basic

    1.概述 TCP/IP起源于60年代美国政府遮住的一个分组交换网络项目,在当今被定义为互联网通信接口,TCP/IP主要分为4层,每一层负责不同的通信功能,这促成了一个协议族的诞生,而TCP/IP是一组 ...

  4. NOIP2009 压轴---最优贸易

    链接:https://ac.nowcoder.com/acm/contest/959/H来源:牛客网 C国有n个大城市和m条道路,每条道路连接这n个城市中的某两个城市.任意两个城市之间最多只有一条道路 ...

  5. 20191024-3 互评Alpha阶段作品——构建之法组

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2019fall/homework/9860 基于NABCD评论作品,及改进建议 1.根据(不限于)NABCD评 ...

  6. 【题解】CF1056F Write the Contest(三分+贪心+DP)

    [题解]CF1056F Write the Contest(三分+贪心+DP) 最优化问题的三个解决方法都套在一个题里了,真牛逼 最优解应该是怎样的,一定存在一种最优解是先完成了耗时长的任务再干别的( ...

  7. 小小知识点(二十四)什么是5G

    转自 https://www.ifanr.com/1149419 一个简单且神奇的公式 今天的故事,从一个公式开始讲起.这是一个既简单又神奇的公式.说它简单,是因为它一共只有 3 个字母.而说它神奇, ...

  8. Jpa自定义查询报错(Failed to convert from type [java.lang.Object[]] to type)

    Jpa自定义查询报错 问题背景 今天遇到一个奇怪的报错"Failed to convert from type [java.lang.Object[]] to type",这个报错 ...

  9. hdfs/hbase 程序利用Kerberos认证超过ticket_lifetime期限后异常

    问题描述 业务需要一个长期运行的程序,将上传的文件存放至HDFS,程序启动后,刚开始一切正常,执行一段时间(一般是一天,有的现场是三天),就会出现认证错误,用的JDK是1.8,hadoop-clien ...

  10. SEATA 分布式事务入门DEMO

    Simple Extensible Autonomous Transacation Architecture,seata是简单的.可扩展.自主性高的分布式架构 SEATA Server Configu ...