Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/147.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Opencv-不带cvAddWeighted的覆盖图像_C++_Image_Opencv - Fatal编程技术网

C++ Opencv-不带cvAddWeighted的覆盖图像

C++ Opencv-不带cvAddWeighted的覆盖图像,c++,image,opencv,C++,Image,Opencv,有大量教程介绍如何在opencv中混合两个图像: 但所有这些都是基于这个等式: 这意味着我将通过平均两幅图像来组合两幅图像,因此我将在两幅图像上降低强度 例如,设alpha=0.5,f0(x)=255,f1(x)=0。应用该方程后,结果图像g(x)=127。这不是我需要的。第一个图像应该保持不变。而透明度必须应用于第二种情况 我的问题是: 当第一图像f0(x)覆盖第一图像f0(x)时,不应改变第一图像f0(x),并且应将alpha应用于第二图像f1(x) 我不知道怎么做。有什么帮助吗?

有大量教程介绍如何在opencv中混合两个图像:

但所有这些都是基于这个等式:

这意味着我将通过平均两幅图像来组合两幅图像,因此我将在两幅图像上降低强度

例如,设alpha=0.5,f0(x)=255,f1(x)=0。应用该方程后,结果图像g(x)=127。这不是我需要的。第一个图像应该保持不变。而透明度必须应用于第二种情况

我的问题是:

当第一图像f0(x)覆盖第一图像f0(x)时,不应改变第一图像f0(x),并且应将alpha应用于第二图像f1(x)


我不知道怎么做。有什么帮助吗?

不幸的是,OpenCV不支持alpha通道。从
imread
文档:
请注意,在当前实现中,alpha通道(如果有)从输出图像中剥离。例如,如果
标志>0

有关使用imagemagick的可能解决方法,请参阅SO post


希望这是有帮助的

谢谢@mevatron为我指点ImageMagick。答案如下:复合-溶解50%meme1.png meme2.png result.png。在C++中使用MAGICK ++也可以。每个登陆这个帖子的人都应该阅读。