C 仅使用Y在YUV422中实现透明度

C 仅使用Y在YUV422中实现透明度,c,image-processing,transparency,yuv,C,Image Processing,Transparency,Yuv,假设我们有两个YUV422格式的图像,并假设值0x10的第二个图像Y字段是透明的,并合并到第一个图像上,Cb和Cr被覆盖 这种合并的产物会导致实体形状的丑陋边界(分割像素线效果)。是否有办法在边框上生成值的组合,以便平滑过渡?此问题并非特定于YUV4:2:2:,而是在使用二进制透明度时发生。最好的解决方案是使用四通道图像并包含一个。基本上,alpha通道表示每个像素的“不透明程度”。当两个具有alpha通道的图像重叠时,生成的结果看起来要好得多 如果您一直使用YUV4:2:2或无法添加alpha

假设我们有两个YUV422格式的图像,并假设值0x10的第二个图像Y字段是透明的,并合并到第一个图像上,Cb和Cr被覆盖


这种合并的产物会导致实体形状的丑陋边界(分割像素线效果)。是否有办法在边框上生成值的组合,以便平滑过渡?

此问题并非特定于YUV4:2:2:,而是在使用二进制透明度时发生。最好的解决方案是使用四通道图像并包含一个。基本上,alpha通道表示每个像素的“不透明程度”。当两个具有alpha通道的图像重叠时,生成的结果看起来要好得多


如果您一直使用YUV4:2:2或无法添加alpha通道,可以尝试使用低通滤波器平滑两个图像的过渡。这会影响边的定义,但看起来可能比什么都不做要好。

合并发生在我可以使用它做任何事情之后。第一幅图像在背景中独立变化,因此如果它是静态的,平滑将有所帮助,但在本例中不是。您知道(或通过编程确定)两幅图像的边界吗?这些图像大小相同,我不确定这里的边界如何关联。如果有帮助的话,这里描述的原理叫做屏幕显示。你能发布问题的屏幕截图吗?