我想要在彼此之上显示两张图像。一个图像是单个通道图像,第二个图像是RGB图像,但大部分区域是透明的。
如何在不同的功能中生成这两个图像。我知道只是将它们显示在彼此之上,我可以在调用cvShowImage()
时使用相同的窗口名称,但是当它们从不同的函数中绘制时不起作用。在尝试此操作时,我使用cvCvtcolor()
将二进制图像从单个通道转换为RGB,然后从另一个函数显示第二个图像。但这没效果。两个图像的尺寸,深度和通道数量相同(转换后)。
我想避免将一个图像传入第二个函数然后绘制它们。所以我正在寻找一个快速的肮脏技巧来显示这两个重叠的图像。
谢谢
编辑:
答案 0 :(得分:1)
无法“叠加”图像。 cvShowImage()
显示内存中的单个图像。你需要将它们混合/组合在一起。有几种方法可以做到这一点
您可以将一个复制到另一个的1或2个通道,可以使用AND,OR或XOR等逻辑运算,可以使用Add,Multiply和MultiplyScale等算术运算(这些运算会使大于255的值饱和)。所有这些也可以使用可选的蒙版图像完成,如blob图像
当然,您可能希望将其转换为第三个缓冲区,以免覆盖您的原件。
答案 1 :(得分:1)
答案 2 :(得分:0)