我正在使用Emgu.CV执行一些基本的图像操作和合成。我的图像以
问题#1:当我使用
这是我试图以可视化方式完成的内容。有一个带有一些“透明孔”的城市图像和青蛙后面。这就是它应该看起来的样子:
这就是openCV生成的内容。
我如何在OpenCV中获得这种效果?并且它是否与调用
问题#2:有没有一种方法可以原地执行此组合,而不是在每次调用
注意:寻找Emgu.CV内的答案,因为我正在使用它来处理透视变形。
Image<Bgra,Byte>
的形式加载。问题#1:当我使用
Image<,>.Add()
方法时,无论alpha值如何,图像都会被混合在一起。相反,我想将它们叠加在彼此上方,并使用包含的alpha通道来确定应该如何混合图像。因此,如果我调用image1.Add(image2)
,则image2中的任何完全不透明像素都将完全覆盖image1中的像素,而半透明像素将根据alpha值混合。这是我试图以可视化方式完成的内容。有一个带有一些“透明孔”的城市图像和青蛙后面。这就是它应该看起来的样子:
![enter image description here](https://istack.dev59.com/Th19r.webp)
![This is what OpenCV (Emgu.CV) produces when I call "add"](https://istack.dev59.com/uCH7J.webp)
Add()
一样快?问题#2:有没有一种方法可以原地执行此组合,而不是在每次调用
Add()
时创建新图像?(例如,image1.AddImageInPlace(image2)
修改了image1
的字节?)注意:寻找Emgu.CV内的答案,因为我正在使用它来处理透视变形。