我正在尝试对几张图像进行 alpha 混合,但遇到了一些问题。我有点开发别人的代码,所以我提前道歉可能没有意义,但我会尽可能清楚。
最初我们制作了两个不同的图,每个图包含 1 张图像。对于第一张图片,绘图是通过创建图形然后执行以下操作来制作的:
%part of initializing the figure
Fig.figim=image(double(zeros(RGBparam.height, RGBparam.width,3)));
...
%later we have a loop, then we do:
set(Fig.figim, 'CData', imresize(RGBparam.image,[RGBparam.height, RGBparam.width]);
图像的大小在(RGBparam.image)
哪里720x1280x3
对于第二张图像,我们对图像进行完全相同的初始化(除了我将在下面放置的 1 部分)并执行以下操作:
%the only different in initialization of the figure
Fig.figim=imagesc(double(zeros(RGBparam.height, RGBparam.width)));
...
%and here is the same loop again
set(Fig.figim, 'cdata', outImage)
图像的大小在(outImage)
哪里720x1280
。请注意维度之间的差异……一个是 2-D 矩阵,另一个是 3-D 矩阵(请注意,它仍然是 2-D 图像,它只有 RGB 颜色的这 3 个额外维度)。我想当我进行 alpha 混合时,我只是不知道如何处理这个问题。我猜我想在绘制它们之前组合图像,在之前进行 alpha 混合,然后只绘制最终的图形。不过我不知道该怎么做,因为对于我的第一张图像,它是 3-D 并且包括 RGB 通道,而我的第二张图没有!在 alpha 混合这两个图像的过程中提供下一步的任何帮助,然后绘制它们会很棒。谢谢!